先週のおハマり
- ニューマシンをknoppixのCDで立ち上げる
- fdisk, mkfs, 適当なところにmount
- んで、sshdを上げる
- 隣のサーバで、tar -C / --exclude '/procとか/sysとか要らないとこ' -cpf - . | ssh new_machine 'tar -C / -xpf -' などとする
- あとは chroot /mnt/root grub-install とかすれば複製完了。
のはずが、
- grub-installが実行できない
この理由は簡単で、ブートしたknoppixはi386で、複製元になったサーバはx86_64だったため。とりあえず手元にあった x86_64なUbuntu Desktop Editionで起動してgrub-installしてOK。あとで、knoppix-x86_64-v5.1.1CD-20070412.iso を焼いた。(v5.3.1でx86_64なのはまだないっぽい)
で、ブーートしたら、UUID関係の個所でのきなみエラーが出たり意図しない動作。具体的にいうとこんな感じ。
- /etc/fstab : UUID=... をやめてデバイス名かLABEL=を使う
- /boot/grub/menu.lst : 同上
- /etc/blkid.tab : ファイルを削除して、blkidコマンドを実行して作り直す
と、
- /etc/udev/rules.d/70-persistent-{cd,net}.rules : これがあるとeth0のはずがeth1とかになるので消す。
で、ブーーートしたら、/ が read onlyになってる。おかしい。よく見たら
kernel: EXT3-fs: cannot change data mode on remount
って怒られてるし、たしかに mount -o remount,rw / できない。
「data mode」ってなんだろねーとしばらく悩んで、複製元サーバで実験的にジャーナリングのモードを変更したのを思い出した。
tune2fs -o journal_data_writeback /dev/sda1
で、ordered(デフォルト)からwritebackに変更してたのでした。
ニューマシンでmkfsするときはすっかり忘れてたのでファイルシステム的にはデフォルトのorderedなんだけど、(複製元サーバからコピーした)fstabにはdata=writebackと書いてあるので、モードが食い違ってremountが失敗してた次第。
いろいろハマった一週間。
あと一こ思い出した。tarでまるごとコピーかけて昼メシ行って帰ってきたら、コピー先のディスク食い潰しててびびった。/proc/kcoreはキケン!