ミラー環境でマスターの先頭潰して起動したらGRUBはちゃんとブートしてくれるかテスト
さて、最初のインターフェイスにドライブがない場合は、ドライブマッピングが変わってうまく起動できることはわかった。
ドライブがあるのに、そこから起動できない場合はどうなるのだろうか。
これ、昨日間違ってやっちゃったことと同じだけどね(^^;。
あの時は、sdbだった。
sdaではどうか?
まずはバックアップ。
root@redmine:~# dd if=/dev/sda of=mdr_sda.img bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 9.3881e-05 s, 5.5 MB/s root@redmine:~# dd if=/dev/sdb of=mdr_sdb.img bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 7.9434e-05 s, 6.4 MB/s
実行。
root@redmine:~# dd if=/dev/zero of=/dev/sda bs=512 count=1
再起動。
root@redmine:~# shutdown -r now
おお、ちゃんと上がってきた。
ドライブマッピングも正常。
root@redmine:~# ls -d /sys/bus/scsi/devices/?\:0\:0\:0/block/* | awk 'BEGIN { FS="/"} {print $8 "\t" $6}' sda 2:0:0:0 sdb 3:0:0:0
root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active (auto-read-only) raid1 sdb5[1] 5998528 blocks [2/1] [_U] md0 : active raid1 sdb1[1] 482384832 blocks [2/1] [_U] unused devices: <none>
MBRを書き戻す。
root@redmine:~# dd if=mdr_sda.img of=/dev/sda bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.00347861 s, 147 kB/s
書き戻しを確認。
root@redmine:~# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000f5f2 Device Boot Start End Blocks Id System /dev/sda1 1 60055 482384896 fd Linux raid autodetect /dev/sda2 60055 60802 5998593 5 Extended /dev/sda5 60055 60802 5998592 fd Linux raid autodetect
パーティションを再認識させるのに、ドライブを抜き差しする。
root@redmine:~# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/delete
[ 296.897402] sd 2:0:0:0: [sda] Synchronizing SCSI cache [ 296.897916] sd 2:0:0:0: [sda] Stopping disk [ 297.323307] ata3.00: disabled
ドライブを抜く。
[ 345.260316] ata3: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen [ 345.260432] ata3: irq_stat 0x00400040, connection status changed [ 345.260514] ata3: SError: { PHYRdyChg DevExch } [ 345.260600] ata3: hard resetting link [ 345.984026] ata3: SATA link down (SStatus 0 SControl 300) [ 345.984038] ata3: EH complete
ドライブを入れる。
[ 377.949502] ata3: exception Emask 0x10 SAct 0x0 SErr 0x4050002 action 0xe frozen [ 377.949618] ata3: irq_stat 0x00400040, connection status changed [ 377.949701] ata3: SError: { RecovComm PHYRdyChg CommWake DevExch } [ 377.949792] ata3: hard resetting link [ 387.968025] ata3: softreset failed (device not ready) [ 387.968111] ata3: hard resetting link [ 389.192041] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 389.212699] ata3.00: ATA-8: SAMSUNG HA500LJ, CW300-11, max UDMA7 [ 389.212706] ata3.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA [ 389.214844] ata3.00: configured for UDMA/133 [ 389.214858] ata3: EH complete [ 389.215058] scsi 2:0:0:0: Direct-Access ATA SAMSUNG HA500LJ CW30 PQ: 0 ANSI: 5 [ 389.215508] sd 2:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/465 GiB) [ 389.215668] sd 2:0:0:0: [sda] Write Protect is off [ 389.215675] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 389.215743] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 389.216160] sda: sda1 sda2 < sda5 > [ 389.250219] sd 2:0:0:0: [sda] Attached SCSI disk
なんか一発目は認識に失敗したみたいだけど、リセット入って認識した。
RAIDを再構築する。
root@redmine:~# mdadm --manage --add /dev/md1 /dev/sda5 mdadm: re-added /dev/sda5 root@redmine:~# mdadm --manage --add /dev/md0 /dev/sda1 mdadm: re-added /dev/sda1
とりあえず、リビルド中だが、正常に戻った。
root@redmine:~# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 sda5[0] sdb5[1] 5998528 blocks [2/2] [UU] md0 : active raid1 sda1[2] sdb1[1] 482384832 blocks [2/1] [_U] [>....................] recovery = 0.3% (1705728/482384832) finish=103.3min speed=77533K/sec unused devices: <none>