partimageのリストアを使って40台コピーはうまくいったが,MBRのリストアはいろいろ面倒だったあげく,grubのstage1.5の部分がコピーされないことがわかった。しかたなくddコマンドでやったが,これならMBRの部分もddを使う方が簡単だ。
swapと桐動作のリンクだけ
0で埋める
# dd if=/dev/zero of=/dev/cciss/c0d0 bs=512 count=1
MBRの保存
# dd if=/dev/hda of=~/mbr bs=512 count=1 読み込んだブロック数は 1+0 書き込んだブロック数は 1+0
書き戻し パーティションテーブルを上書きしないためには446にする。
446+62+1=512の関係。
# dd if=~/mbr of=/dev/hda bs=446 count=1 読み込んだブロック数は 1+0 書き込んだブロック数は 1+0
grubのデータ。stage1はMBR。ここではパーティションテーブルも。
stage2は1.5のことだと思うが。seek=1でMBRをスキップ。countがないので,ファイルのある分がコピーされる
# cd /usr/lib/grub/i386-pc # dd if=stage1 of=/dev/fd0 bs=512 count=1 # dd if=stage2 of=/dev/fd0 bs=512 seek=1
これもgrub floppy
万一に備えて Grub 起動ディスクを作成することを強く勧めます。空のフロッピーディスクを挿入し以下のコマンドを実行してください。
dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1 dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1
63は1トラックとなる
# dd if=/dev/hda of=/mnt/back/mbr.img count=63 bs=512 ※ MBRのバックアップ # sfdisk -d /dev/hda > /mnt/back/sfdisk.out ※ パーティションテーブルのバックアップ
パーティションテーブルはこの場合は拡張部分のために必要か
書き戻しはファイルのデータの分だけ
# dd if=/mnt/back/mbr.img of=/dev/hda ※ MBRのリストア # sfdisk --force /dev/hda < /mnt/back/sfdisk.out ※ パーティションテーブルのリストア
countは62でもいいのだが,データのあるところをチェックしたところ,15あればよい模様
stage1.5
dd if=/dev/hda of=./vine38mbr2 skip=1 bs=512 count=15
# mkswap /dev/hda2 # swapon /dev/hda2
長年の疑問がとけた。でもなぜかはわからない。
NFSをマウントしてイメージを書き込み/読み込みした場合に、「imagefile locked」のエラーが出る場合 NFSマウントの時に、オプションで「nolock」をつける
# mount -o rw,nolock server:/share /mnt
知識をくれたページ:KNOPPIX/バックアップ(partimage)