Linux

複製硬碟 Solaris 8 (SunOS 5.8)

  • December 23, 2011

我有一個舊的 73gb SAS SCSI 驅動器,所以我插入了一個新的 73gb SAS SCSI,我想將所有內容從它複製到新驅動器。我想將 SCSI 硬碟驅動器 SD20 複製到 SD21。在 Solaris 中是否有一種簡單的方法可以實現這一點?我是一個紅帽 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 是從舊驅動器上安裝的唯一東西?!

由於某種原因,在 SDS 中將 c2t5d0s4 (/d001) 和 c2t5d0s5 (/d002) 設置為單向鏡像。也許有人在某個時候忘記了metattach另一個磁碟?

要完成您想要的,有兩種方法。

方法一

按照你的建議,dd可以使用。我將首先通過掛載並查看文件系統內容來驗證您不需要 c2t6d0s6 上的數據。

mount /dev/dsk/c2t6d0s6 /mnt

在磁碟的開頭還有兩個小分區。檢查metadb這些不是 SDS 要求的。如果它們已列出並且metadb 中的其他磁碟上有分區,請刪除它們:

metadb -d c2t6d0s0
metadb -d c2t6d0s1

然後你就可以dd用來複製了:

umount /d001
umount /d002
dd if=/dev/rdsk/c2t5d0 of=/dev/rdsk/c2t6d0

方法二

由於您已經配置了 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:欄位將顯示 Okay。

卸下舊驅動器

斷開鏡像的每個分區。

metadetach d7 d71
metadetach d8 d81

我不記得 Solaris 8 是否有cfgadm,但如果有,請執行:

cfgadm -al

檢查您要刪除的設備(可能是 c2::dsk/c2t5d0),然後取消配置:

cfgadm -c unconfigure c2::dsk/c2t5d0

然後將其刪除是安全的。

我如何驗證 /d001 和 /d002 是從舊驅動器安裝的唯一東西?!

很簡單:它們是磁碟上唯一的分區。(切片 2 是整個磁碟,而不是實際可用的分區。)

引用自:https://serverfault.com/questions/343207