HDDの複製を行う。ddコマンドで複製するために、同じサイズのセクター数でgpartを行う。
gpart destroy -F da0
part add -s 1024 -t freebsd-boot da0
gpart add -s 148896768 -t freebsd-ufs da0
gpart add -s 7403628 -t freebsd-swap da0
gpart add -s 156198513 -t freebsd-ufs da0
gpart show da0
=> 34 312499933 da0 GPT (149G)
34 1024 1 freebsd-boot (512K)
1058 148896768 2 freebsd-ufs (71G)
148897826 7403628 3 freebsd-swap (3.5G)
156301454 156198513 4 freebsd-ufs (74G)←余った分はddしない。
次にddで複製する。
dd if=/dev/ada0p1 of=/dev/da0p1 bs=512
dd if=/dev/ada0p2 of=/dev/da0p2 bs=1024
ddコマンドの途中でCtrl+Tを押すと途中経過を表示する。
load: 0.23 cmd: dd 1137 [running] 418.51r 1.63u 40.00s 6% 1216k
834704+0 records in
834704+0 records out
854736896 bytes transferred in 418.514165 secs (2042313 bytes/sec)
・
・
dd: /dev/ada0p2: Input/output error
bsの値を調整中。bs=4096でも途中で止まる。職場ではbs=512でしか動作しなかった。
FreeNASに接続したUSB_HDDを2本でddした際に。
/var/log/messagesには
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): Retrying command
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): READ_DMA. ACB: c8 00 22 07 6c 40 00 00 00 00 00 00
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): CAM status: ATA Status Error
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): ATA status: 51 (DRDY SERV ERR), error: 40 (UNC )
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): RES: 51 40 00 08 6c 00 00 00 00 00 00
Jun 5 05:51:25 ****** kernel: (ada0:ata2:0:0:0): Error 5, Retries exhausted
bs=512でも止まる。今思うとconv=noerror,syncを足していないから。失念。
dd: /dev/ada0p2: Input/output error
dd: /dev/ada0p2: Input/output errorが時々あるものの
現在dd進行中。20GB
dd if=/dev/ada0p2 of=/dev/da0p2 bs=1024 conv=noerror,sync
スライスの3と4は複製しない。newfsのみ
newfs /dev/da0p3
newfs /dev/da0p4