我有一个旧的 73gb SAS SCSI 驱动器,所以我插入了一个新的 73gb SAS SCSI,我想将所有内容从中克隆到新驱动器。我想将 SCSI 硬盘驱动器 SD20 克隆到 SD21。在 Solaris 中有没有简单的方法可以完成此操作?我是 Red Hat Linux 用户。我不熟悉 Solaris。
如果无法做到这一点,那么我必须克隆该驱动器上的实际数据。
当我运行格式时,我得到了这个:
0. c1t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000020378deaf4,0
1. c1t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf22de9f,0
2. c2t5d0 <QUANTUM-ATLAS10K3_73_WLS-020W cyl 31014 alt 2 hd 8 sec 579>
/pci@8,700000/scsi@6,1/sd@5,0
3. c2t6d0 <QUANTUM-ATLAS10K3_73_WLS-020W cyl 31014 alt 2 hd 8 sec 579>
/pci@8,700000/scsi@6,1/sd@6,0
我认为 2 是旧驱动器(我想要从中克隆),3 是新驱动器(我想要克隆到的驱动器)
当我查看 2 的分区图(验证)时,我得到:
Part Tag Flag Cylinders Size Blocks
0 unassigned wm 0 0 (0/0/0) 0
1 unassigned wm 0 0 (0/0/0) 0
2 backup wu 0 - 31013 68.50GB (31014/0/0) 143656848
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 - 11318 25.00GB (11319/0/0) 52429608
5 unassigned wm 11319 - 31013 43.50GB (19695/0/0) 91227240
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0
当我查看 3 的分区图(验证)时,我得到:
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 56 128.92MB (57/0/0) 264024
1 swap wu 57 - 113 128.92MB (57/0/0) 264024
2 backup wu 0 - 31013 68.50GB (31014/0/0) 143656848
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 114 - 31013 68.25GB (30900/0/0) 143128800
7 unassigned wm 0 0 (0/0/0) 0
df -k 命令的输出:
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d1 5040814 2947078 2043328 60% /
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
/dev/md/dsk/d3 5040814 1959374 3031032 40% /var
swap 6968984 24 6968960 1% /var/run
swap 6969040 80 6968960 1% /tmp
/dev/md/dsk/d7 25815139 4844450 20712538 19% /d001
/dev/md/dsk/d8 44918294 21617527 22851585 49% /d002
/dev/md/dsk/d4 5040814 3897382 1093024 79% /opt
我相信,基于 2 的分区图(上面),/d001 和 /d002 是从旧磁盘(我想要从中克隆)挂载的唯一分区。
如果我无法直接克隆硬盘,那么也许我可以在 3 上创建与 2 相同的分区映射,并将数据从 /d001 和 /d002 复制到新驱动器,这引出了我最大的疑问:我如何验证 /d001 和 /d002 是唯一从旧驱动器安装的东西?!
答案1
由于某种原因,c2t5d0s4 (/d001) 和 c2t5d0s5 (/d002) 在 SDS 中设置为单向镜像。也许有人metattach
在某个时候忘记了另一个磁盘?
为了实现您的目标,有两种方法。
方法 1
正如您所建议的,dd
可以使用。我首先将通过安装 c2t6d0s6 并查看文件系统内容来验证您不需要 c2t6d0s6 上的数据。
mount /dev/dsk/c2t6d0s6 /mnt
磁盘的开头还有两个小分区。检查metadb
这些分区是否不是 SDS 所要求的。如果列出了它们,并且磁盘上有分区其他元数据库中的磁盘,删除它们:
metadb -d c2t6d0s0
metadb -d c2t6d0s1
然后您将能够使用dd
克隆:
umount /d001
umount /d002
dd if=/dev/rdsk/c2t5d0 of=/dev/rdsk/c2t6d0
方法 2
由于您已经配置了 SDS,因此您可以使用它来完成镜像。
首先需要复制分区表:
prtvtoc /dev/rdsk/c2t5d0s2 | fmthard -s - /dev/rdsk/c2t6d0s2
然后创建元设备:
metainit d72 1 1 c2t6d0s4
metainit d82 1 1 c2t6d0s5
然后将这些附加到现有的镜子上:
metattach d7 d72
metattach d8 d82
警告:元设备 d71 已由 SDS 记录错误并已进入维护状态。它可能会拒绝复制此分区。
定期检查镜像是否同步:
metastat
您将在每个正在重建的子镜像旁边看到进度。State:
重建完成后,该字段将显示“OK”。
移除旧驱动器
断开每个镜像分区。
metadetach d7 d71
metadetach d8 d81
我不记得 Solaris 8 是否有cfgadm
,但如果有,请运行:
cfgadm -al
检查要删除的设备(可能是 c2::dsk/c2t5d0),然后取消配置它:
cfgadm -c unconfigure c2::dsk/c2t5d0
然后就可以安全地将其移除。
我如何验证 /d001 和 /d002 是否是从旧驱动器安装的唯一东西?!
简单:它们是磁盘上唯一的分区。(第 2 个分区是整个磁盘,而不是实际可用的分区。)