(来自 Stack Overflow1)
我的电脑里有两个硬盘,第一个硬盘上安装了 Solaris 10u8,第二个硬盘上安装了 Opensolaris 2010.3 (dev onnv_134)。两个系统都使用 ZFS,并且都是独立创建的,zpool 名称为“rpool”。
在第一个磁盘上运行 Solaris 10u8 时,如何将第二个 ZFS 硬盘(在 /dev/dsk/c1d1s0)挂载到任意挂载点(如 /a)上进行诊断?
答案1
在 Solaris 10u8 下运行时,您将无法挂载在新的 OpenSolaris 版本上创建的 zpools。(snv_134)。由于 S10u8 和 snv_134 使用不同的 ZFS On Disk Pool 版本(IIRC15和22仅在运行 OpenSolaris 时,您才能够访问这两个卷(分别称为“两个卷”)。ZFS 向后兼容,但不向前兼容。此外,不支持在同一物理系统上拥有多个同名池('rpool')。您应该重命名其中一个。
要挂载第二个“rpool”卷,请在启动到 OpenSolaris 时执行以下操作:
# zpool import
Find the cXtXdX disk corresponding to your S10 rpool
# format -e
Find the UUID string corresponding to your cXtXdX disk
# zpool import <UUID> notjustrpool
Imports the other rpool and renames it to 'notjustrpool'
您还可以-m /mnt/point/
在 zpool import 语句后指定挂载点,但一旦重命名,它就会挂载为 /notjustrpool。具有自己的非嵌套挂载点(如 rpool/export)的子池可能会与您现有的挂载点发生冲突,因此一旦您导入了池,您就必须zfs set mountpoint=/export2 rpool/export
这样做。请注意,如果您仍想启动重命名的 rpool,则必须更新 grub menu.lst 以反映池名称的更改。
答案2
我从来没有这样做过,所以如果您有任何有价值的数据,我建议您在继续之前备份。我相信您必须使用该zpool import
命令。查看 zpool 手册页以获取有关导入和导出命令的更多详细信息。
还要注意,OpenSolaris 上的 ZFS 版本较新,很可能与 Solaris 10U8 不兼容。因此,您可能只能从 OpenSolaris 执行此操作,而不能反过来。您还应注意不要zpool update
在 Solaris 池的版本上运行命令。当它检测到较旧版本的 ZFS 时,它会建议您在运行任何 zpool 命令时执行此操作。