Solaris 10 10/08 发行说明

文件系统

Solaris 10 发行版中存在下列文件系统错误。

使镜像 ZFS 根池中的主磁盘脱机

请勿使镜像 ZFS 根配置中的主磁盘脱机。系统将无法从镜像根池配置中已脱机的磁盘引导。

解决方法:要分离一个镜像根磁盘以便进行更换,或者要使该磁盘脱机,请从池中的另一个镜像磁盘引导。选择下列方法之一:

当目标文件系统为 ZFS 且语言环境为日文 EUC 时,lucreate 会失败 (6750725)

如果您使用 lucreate 命令创建 ZFS 根文件系统,且 LOCALE 设置为非英文语言环境,则创建 ZFS 转储卷会失败。将显示以下错误消息:


ERROR: Unable to determine dump device for boot environment <{c1t1d0s0}>.
ERROR: Unable to create all required file systems for boot environment <zfsUp6>.
ERROR: Cannot make file systems for boot environment <zfsUp6>.

解决方法:请选择以下解决方法之一:

将 UFS 转换成 ZFS 后,boot -L 不起作用 (6741743)

使用 Solaris Live Upgrade 将 UFS 根文件系统转换成 ZFS 后,未将 bootlst 命令复制到正确的位置。该错误将导致 boot -L 命令不起作用。将显示以下错误消息:


Evaluating: boot -L
The file just loaded does not appear to be executable.
Boot device: /pci@1f,0/pci@1/scsi@8/disk@1,0:a  File and args: 

Can't mount root

Error in Fcode execution !!!
Evaluating: boot
The file just loaded does not appear to be executable.

解决方法:bootlst 命令从 /platform/`uname -m`/bootlst 复制到 /root pool/platform/`uname -m`/bootlst。例如,如果根池是 rpool,请键入以下命令:


# cp -p /platform/`uname -m`/bootlst /rpool/platform/`uname -m`/bootlst

x86: 无法使用 reboot 命令引导 32 位内核 (6741682)

使用下列命令在 32 位模式下引导系统时,bootadm 命令无法建构具有正确格式的 GRUB 菜单项:

因此,系统将在 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 可能会创建非法的根池 (6740164)

在将设备连接到根池以便创建镜像根池时,如果将整个磁盘添加到池,则 zpool attach 可能会创建非法的根池。必须使用磁盘片而不是整个磁盘来创建 ZFS 根池。如果尝试从添加到镜像根池的整个磁盘引导,则系统将无法引导。

解决方法: 请执行以下步骤:

  1. 从池中分离磁盘。例如


    # zpool detach rpool c0t2d0
  2. 将磁盘标号更改为 VTOC (SMI) 标号。例如:


    # format -e
    .
    .
    .
    Select disk c0t2d0
    format> label
    [0] SMI Label
    [1] EFI Label
    Specify Label type[0]:0
    Ready to label disk, continue? yes
    format> quit
  3. 将磁盘片重新添加到池中,以创建镜像根池。例如:


    # zpool attach rpool c0t2d0s0

另请参见zpool attach 命令不复制 bootblock 信息 (6668666)

SPARC: Solaris Live Upgrade 不创建 menu.lst 文件 (6696226)

在 SPARC 平台上,需要在根池的数据集中创建 menu.lst 文件。不会显示任何错误消息。

解决方法:手动创建 menu.lst 文件。例如,如果 ZFS 根池 rpool 中有两个 ZFS 引导环境 zfs1008BE 和 zfs10082BE,则键入下列命令:


# mkdir -p /rpool/boot
# cd /rpool/boot
# vi menu.lst

menu.lst 文件中添加下列条目:


title zfs1008BE
bootfs rpool/ROOT/zfs1008BE
title zfs10082BE
bootfs rpool/ROOT/zfs10082BE

zpool attach 命令不复制 bootblock 信息 (6668666)

如果使用 zpool attach 命令将磁盘添加到 ZFS 根池,则不会将 bootblock 信息复制到新添加的磁盘中。该问题不影响在初始安装时创建的镜像 ZFS 根池。系统不会从镜像根池中的备用磁盘引导。

解决方法:请选择以下解决方法之一:

x86: ata 在引导过程中超时 (6586621)

在 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 尚不可用时临时使用。


使用 ZFS 传统挂载时,执行 zoneadm install 失败 (6449301)

如果最初为非全局区域配置了使用 `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 和 UNIX/POSIX 的兼容问题

ZFS 旨在成为与 POSIX 兼容的文件系统,并且在大多数情况下,ZFS 与 POSIX 兼容。但是,存在两种 ZFS 不能达到 POSIX 兼容测试标准的边界情况:

  1. 更新 ZFS 文件系统容量统计信息。

  2. 修改达到容量极限的文件系统的现有数据。

相关 CR:

fdisk -E 可能会在不发出警告的情况下清理 ZFS 所使用的磁盘 (6412771)

如果使用 fdisk -E 命令修改 ZFS 存储池使用的磁盘,该存储池将不可用,并可能导致 I/O 故障或系统出现紧急情况。

解决方法:

请勿使用 fdisk 命令修改 ZFS 存储池使用的磁盘。如果要访问 ZFS 存储池使用的磁盘,请使用 format 实用程序。通常情况下,不应修改文件系统正在使用的磁盘。

ZFS 及第三方备份产品的问题

以下是 Brightstor ARCserve Backup 产品存在的一些问题。

BrightStor ARCserve Backup Client Agent for UNIX (Solaris) 和 ZFS 支持

BrightStor ARCserve Backup (BAB) Client Agent for UNIX (Solaris) 可用于备份和恢复 ZFS 文件。

但在备份过程中不保留 ZFS NFSv4 样式 ACL。将保留传统 UNIX 文件权限和属性。

解决方法:如果要保留具有 NFSv4 样式 ACL 的 ZFS 文件,请使用带有 -p 选项的 tar 命令或带有 -P 选项的 cpio 命令将 ZFS 文件写入一个文件。然后,使用 BAB 备份 tarcpio 归档文件。

在每个向导开始时,ZFS GUI 应检查 /usr/lib/embedded_su (6326334)

如果在运行 Solaris 10 6/06 发行版之前版本的系统(该系统中没有 embedded_su 修补程序)中添加 Solaris 10 10/08 发行版中的 SUNWzfsg 软件包,则 ZFS Administration 应用程序向导无法完全正常工作。

如果尝试在没有 embedded_su 修补程序的系统上运行 ZFS Administration 应用程序, 您将只能浏览 ZFS 配置。将显示以下错误消息:


/usr/lib/embedded_su: not found

解决方法:

在运行 Solaris 10 6/06 发行版之前版本的系统中添加 embedded_su 修补程序 (119574-02)。

发生紧急情况时无法同步文件系统 (6250422)

对于一个使用 Solaris iSCSI 软件启动器连接的目标设备,如果主机的文件系统 I/O 出现了紧急情况,该 I/O 可能无法刷新或同步该目标设备。这种无法刷新或同步的情况可能导致文件系统损坏。不会显示任何错误消息。

解决方法:

使用日志文件系统(如 UFS)。从 Solaris 10 开始,缺省情况下启用 UFS 日志记录功能。有关 UFS 的更多信息,请参见《系统管理指南:设备和文件系统》中的“Solaris 10 发行版中文件系统方面的新增功能”

从某些 Solaris Express 或 Solaris 10 发行版升级需要重新挂载文件系统

将 NFSv4 服务器从 Solaris Express 6/05 升级到 Solaris Express 7/05 或更高版本(包括所有 Solaris 10 更新)之后,程序可能会遇到 EACCES 错误。另外,各目录可能错误地显示为空。

要避免这些错误,请卸载,然后重新挂载客户机文件系统。在卸载失败的情况下,可能需要通过使用 umount -f 强制卸载文件系统。另外,也可以重新引导客户机。

NFSv4 访问控制列表功能可能无法正常运行

如果使用不同的 Solaris 10 早期版本在网络中安装客户机和服务器,则 NFSv4 访问控制列表 (ACL) 功能可能无法正常运行。使用这些功能的受影响的 ACL 功能和命令行实用程序如下所示:

有关这些功能和实用程序的更多信息,请参见它们各自的手册页。

例如,在包含下列配置的网络中可能观察到错误:

下表说明对于不同的 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 NFSv4 客户机与 NFSv4 服务器之间的访问问题

在当前 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 命令在非常大的磁盘上创建文件系统可能会失败 (6352813)

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 的设备上系统故障转储失败 (6214480)

系统在大小大于或等于 1 TB 的分区上不能生成转储。如果系统中存在此类设备,则在系统引导后,在发生系统紧急情况后可能发生下列问题:

解决方法: 将系统的转储设备大小配置为小于 1 TB。

使用 smosservice 命令添加 OS 服务导致出现磁盘空间不足的消息 (5073840)

如果使用 smosservice 命令将 OS 服务添加到 UFS 文件系统,会显示没有足够可用磁盘空间的消息。此错误特定于贴有 EFI 标签的磁盘上的 UFS 文件系统。

解决方法: 完成以下解决方法。

  1. 应用 SMI VTOC 磁盘标签。

  2. 重新创建文件系统。

  3. 重新运行 smosservice 命令。