考虑复制磁盘时,请牢记以下要点:
请勿使用此过程复制由卷管理器控制的磁盘。
将 UFS 文件系统数据从一个磁盘或系统复制到另一个磁盘或系统的主要方法是使用 ufsdump 和 ufsrestore 命令。有关使用这些命令的更多信息,请参见第 24 章,备份和恢复文件系统(概述)。
通过创建 Flash 归档文件并将其复制到目标系统,可以克隆系统。有关创建 Flash 归档文件的更多信息,请参见《Solaris 10 Installation Guide: Solaris Flash Archives (Creation and Installation)》。
如果要复制带有 EFI 磁盘标号的磁盘,请参见示例 29–2。
如果您仍在考虑使用 dd 命令复制磁盘,请牢记以下注意事项:
确保源磁盘和目标磁盘具有相同的磁盘几何参数。
检查磁盘中要使用 fsck 实用程序复制的 UFS 文件系统。
确保在使用 dd 命令复制磁盘时系统处于单用户模式。
成为超级用户或承担等效角色。
(可选)创建 /reconfigure 文件,以使系统能够在重新引导时识别要添加的目标磁盘(如有必要)。
# touch /reconfigure |
关闭系统。
# init 0 |
将目标磁盘连接到系统。
引导系统。
ok boot -s |
# dd if=/dev/rdsk/device-name of=/dev/rdsk/device-name bs=block-size |
表示主磁盘设备的重叠片,通常为片 2。
表示目标磁盘设备的重叠片,通常为片 2。
用于标识块大小,如 128 KB 或 256 KB。较大的块大小可以缩短复制磁盘所用的时间。
有关更多信息,请参见 dd(1M)。
检查新的文件系统。
# fsck /dev/rdsk/device-name |
挂载目标磁盘的根 (/) 文件系统。
# mount /dev/dsk/device-name /mnt |
转到 /etc/vfstab 文件所在的目录。
# cd /mnt/etc |
使用文本编辑器编辑目标磁盘的 /etc/vfstab 文件,以引用正确的设备名称。
例如,将 c0t3d0 的所有实例都更改为 c0t1d0。
转到目标磁盘的根 (/) 目录。
# cd / |
取消挂载目标磁盘的根 (/) 文件系统。
# umount /mnt |
关闭系统。
# init 0 |
从目标磁盘引导至单用户模式。
# boot diskn -s |
目标磁盘不需要 installboot 命令,因为引导块是作为重叠片的一部分进行复制的。
取消配置目标磁盘。
# sys-unconfig |
系统在取消配置后即会关闭。
再次从目标磁盘引导,并提供其系统信息,如主机名、时区等。
# boot diskn |
引导系统后,以超级用户身份登录以验证系统信息。
hostname console login: |
本示例说明如何将主磁盘(带有 VTOC 标签) /dev/rdsk/c0t0d0s2 复制到目标磁盘 /dev/rdsk/c0t2d0s2。
# touch /reconfigure # init 0 ok boot # dd if=/dev/rdsk/c0t0d0s2 of=/dev/rdsk/c0t2d0s2 bs=128k # fsck /dev/rdsk/c0t2d0s2 # mount /dev/dsk/c0t2d0s2 /mnt # cd /mnt/etc # vi vfstab (Modify entries for the new disk) # cd / # umount /mnt # init 0 # boot disk2 -s # sys-unconfig # boot disk2 |
在以前的 Solaris 发行版中,片 2 (s2) 用于表示整张磁盘。在带有 EFI 标签的磁盘上,必须使用稍有不同的过程来克隆或复制大于 1 TB 的磁盘,以使克隆磁盘的 UUID 具有唯一性。如果没有为克隆磁盘创建新的标签,则其他软件产品在遇到重复的 UUID 时可能会损坏带有 EFI 标记的磁盘上的数据。
例如:
克隆带有 EFI 标记的磁盘。例如:
# dd if=/dev/rdsk/c0t0d0 of=/dev/rdsk/c0t2d0 bs=128k |
传输要复制到 fmthard 命令中的磁盘的 prtvtoc 输出,以便为克隆磁盘创建新的标签。例如:
# prtvtoc /dev/rdsk/c0t0d0 | fmthard -s - /dev/rdsk/c0t2d0 |
有关 EFI 磁盘标签的更多信息,请参见带有 EFI 磁盘标号的多 TB 磁盘支持。