Solaris 10 发行版中存在下列文件系统错误。
虽然对 native (Solaris 10) 区域执行附加操作可以成功,但是对标记区域执行附加操作会失败。将显示以下错误消息:
zone mount operation is invalid for branded zones. Cannot generate the information needed to attach this zone. |
解决方法:对于非 native 标记区域,使用 attach -F 命令。有关此过程的更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》。
使用下列命令在 32 位模式下引导系统时,bootadm 命令无法建构具有正确格式的 GRUB 菜单项:
reboot kernel/unix
reboot -- -r
因此,系统将在 64 位模式下引导。出现错误的 menu.lst 文件可能显示为:
findroot rootfs0 kernel /platform/i86pc/kernel/unix module /platform/i86pc/boot_archive |
在上例中,内核行未包含多引导信息,因此是不正确的。不会显示任何错误消息。
解决方法:手动编辑 /boot/grub/menu.lst 文件,添加以下信息:
title Solaris 10 10/08 findroot rootfs0 kernel /platform/i86pc/multiboot kernel/unix module /platform/i86pc/boot_archive |
完成这些更改后,系统将在 32 位模式下引导。
您对 menu.lst 文件所做的更改在每次系统重新引导后都持续有效。
也可以在引导时编辑 GRUB 菜单,添加 kernel/unix 引导参数,如下例所示:
grub edit> kernel /platform/i86pc/multiboot kernel/unix |
通过在引导时编辑 GRUB 菜单所做的更改在系统重新引导后不再有效。
有关更多信息,请参见《系统管理指南:基本管理》中的“在基于 x86 的系统上修改引导行为”。
如果使用 zpool attach 命令将磁盘添加到 ZFS 根池,则不会将 bootblock 信息复制到新添加的磁盘中。该问题不影响在初始安装时创建的镜像 ZFS 根池。系统不会从镜像根池中的备用磁盘引导。
解决方法:请选择以下解决方法之一:
在 SPARC 系统上,指定备用磁盘设备并安装引导信息。例如:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
在 x86 系统上,指定备用磁盘设备并安装引导信息。例如:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
在 Intel 多处理器系统上,ata 驱动程序可能会在系统引导过程中超时。当根设备所在的驱动器具有绑定到传统 ata 驱动程序的 HBA 控制器时,会出现这样的超时。在系统引导过程中,这样的超时会导致暂时挂起、硬挂起或出现紧急情况,控制台上会出现类似如下的消息:
scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort request, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort device, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset target, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): |
解决方法:请选择以下解决方法之一:
为了避免性能下降,解决方法 3 或 4 只应在解决方法 5 尚不可用时临时使用。
解决方法 1: 如果系统上有 AHCI,请在 BIOS 中启用它。启用此设置会要求重新安装 Solaris OS。
解决方法 2: 在其中的控制器不使用 ata 驱动程序的磁盘上安装 Solaris。
解决方法 3: 在 BIOS 设置中禁用 MP,以便只有一个处理器处于活动状态。
解决方法 4: 在 Solaris 中禁用 MP,以便只有一个处理器处于活动状态。从 Grand Unified Bootloader (GRUB) 菜单中执行以下步骤:
键入 e 编辑选定的 Solaris 项。
导航到以 kernel 开头的行。
键入 e 切换到 GRUB 编辑模式。
将 -kd 附加到该行。
按 Enter 键接受更改。
键入 b 使用选定的 Solaris 项进行引导。
在 kbmd 提示符下,键入以下命令:
use_mp/W 0 :c |
如果执行系统引导,则继续执行步骤 10。否则,请安装 Solaris 10 10/09 软件。
在安装结束时,请重新引导系统。重复步骤 1 至 7。
为了使所做的更改永久生效,以便不必在后续的引导过程中重复上述步骤,请执行以下操作:
在完成系统引导之后成为超级用户。
打开 /etc/system 文件。
添加以下行:
set use_mp = 0 |
解决方法 5: 禁用微代码更新。键入以下命令:
# mv /platform/i86pc/ucode /platform/i86pc/ucode.disabled |
在系统引导之后,可以手动调用微代码更新:
# ucodeadm -u /platform/i86pc/ucode.disabled/intel-ucode.txt |
如果最初为非全局区域配置了使用 `add fs 子命令挂载的 ZFS 文件系统,并指定了 mountpoint=legacy,则后续区域安装会失败。将显示以下错误消息:
ERROR: No such file or directory: cannot mount </zones/path/root/usr/local> in non-global zone to install: the source block device or directory </path/local> cannot be accessed |
解决方法: 安装了非全局区域后,添加对 ZFS 文件系统的访问权限。
ZFS 旨在成为与 POSIX 兼容的文件系统,并且在大多数情况下,ZFS 与 POSIX 兼容。但是,存在两种 ZFS 不能达到 POSIX 兼容测试标准的边界情况:
更新 ZFS 文件系统容量统计信息。
修改达到容量极限的文件系统的现有数据。
相关 CR:
6362314
6362156
6361650
6343113
6343039
6742203
如果使用 fdisk -E 命令修改 ZFS 存储池使用的磁盘,该存储池将不可用,并可能导致 I/O 故障或系统出现紧急情况。
解决方法:
请勿使用 fdisk 命令修改 ZFS 存储池使用的磁盘。如果要访问 ZFS 存储池使用的磁盘,请使用 format 实用程序。通常情况下,不应修改文件系统正在使用的磁盘。
以下是 Brightstor ARCserve Backup 产品存在的一些问题。
BrightStor ARCserve Backup (BAB) Client Agent for UNIX (Solaris) 可用于备份和恢复 ZFS 文件。
但在备份过程中不保留 ZFS NFSv4 样式 ACL。将保留传统 UNIX 文件权限和属性。
解决方法:如果要保留具有 NFSv4 样式 ACL 的 ZFS 文件,请使用带有 -p 选项的 tar 命令或带有 -P 选项的 cpio 命令将 ZFS 文件写入一个文件。然后,使用 BAB 备份 tar 或 cpio 归档文件。
如果在运行 Solaris 10 6/06 发行版之前版本的系统(不具有 embedded_su 修补程序)中添加 Solaris 10 10/09 发行版中的 SUNWzfsg 软件包,则 ZFS Administration 应用程序向导无法完全正常工作。
如果尝试在没有 embedded_su 修补程序的系统上运行 ZFS Administration 应用程序, 您将只能浏览 ZFS 配置。将显示以下错误消息:
/usr/lib/embedded_su: not found |
解决方法:
在运行 Solaris 10 6/06 发行版之前版本的系统中添加 embedded_su 修补程序 (119574-02)。
对于一个使用 Solaris iSCSI 软件启动器连接的目标设备,如果主机的文件系统 I/O 出现了紧急情况,该 I/O 可能无法刷新或同步该目标设备。这种无法刷新或同步的情况可能导致文件系统损坏。不会显示任何错误消息。
解决方法:
使用日志文件系统(如 UFS)。从 Solaris 10 开始,缺省情况下启用 UFS 日志记录功能。有关 UFS 的更多信息,请参见《系统管理指南:设备和文件系统》中的“Solaris 10 发行版中文件系统方面的新增功能”。
将 NFSv4 服务器从 Solaris Express 6/05 升级到 Solaris Express 7/05 或更高版本(包括所有 Solaris 10 更新)之后,程序可能会遇到 EACCES 错误。另外,各目录可能错误地显示为空。
要避免这些错误,请卸载,然后重新挂载客户机文件系统。在卸载失败的情况下,可能需要通过使用 umount -f 强制卸载文件系统。另外,也可以重新引导客户机。
如果使用不同的 Solaris 10 早期版本在网络中安装客户机和服务器,则 NFSv4 访问控制列表 (ACL) 功能可能无法正常运行。使用这些功能的受影响的 ACL 功能和命令行实用程序如下所示:
acl()
facl()
getfacl
setfacl
有关这些功能和实用程序的更多信息,请参见它们各自的手册页。
例如,在包含下列配置的网络中可能观察到错误:
运行 Solaris 10 Beta 软件的客户机
运行 Solaris 10 软件的服务器
下表说明对于不同的 Solaris 10 发行版,客户机-服务器配置中的 ACL 功能的结果。
操作 |
客户机 S10 OS |
服务器 S10 OS |
结果 |
---|---|---|---|
获取 ACL |
S10 Beta |
S10 OS |
创建 ACL * |
获取 ACL |
S10 OS |
S10 Beta |
正常运行 |
设置 ACL |
S10 Beta |
S10 OS |
正常运行 |
设置 ACL |
S10 OS |
S10 Beta |
错误: EOPNOTSUP |
解决方法: 要使 NFSv4 ACL 功能正常,请在服务器和客户机上完全安装 Solaris 10 OS。
在当前 Solaris 10 版本中,NFSv4 访问控制列表 (ACL) 的 Solaris 实现现在与 RFC 3530 规范兼容。不过,在使用 Solaris 10 Beta 2 或 Beta 1 版本的 NFSv4 客户机上发生错误。这些客户机不能在使用当前 Solaris 10 发行版的 NFSv4 服务器中创建文件。将显示以下错误消息:
NFS getacl failed for server_name: error 9 (RPC: Program/version mismatch) |
解决方法: 无。
mkfs 命令可能无法在具有某一特定磁盘几何参数 (disk geometry) 且大小超过 8 GB 的磁盘上创建文件系统。由此得到的柱面组大小对于 1 KB 碎片来说太大。柱面组的大小过大意味着在一个块中无法容纳多余的元数据。
将显示以下错误消息:
With 15625 sectors per cylinder, minimum cylinders per group is 16. This requires the fragment size to be changed from 1024 to 4096. Please re-run mkfs with corrected parameters. |
解决方法: 改用 newfs 命令。或者,如果使用 mkfs 命令,请指定较大的碎片大小(如 4096)。
系统在大小大于或等于 1 TB 的分区上不能生成转储。如果系统中存在此类设备,则在系统引导后,在发生系统紧急情况后可能发生下列问题:
系统不保存转储。
将显示以下消息:
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
解决方法: 将系统的转储设备大小配置为小于 1 TB。