1
パーティションとファイルシステムの設定
Debian で、現行の HDD (hda, Seagate 80GB) から新しい HDD (hdd, Seagate 250GB) にシステムを全て移動させた。自分への備忘録を兼ねてメモしておく。まずはパーティション設定。あまり凝らずに / 以外は /usr /var /home と言う構成
# cfdisk /dev/hdd
Disk Drive: /dev/hdd
Size: 250059350016 bytes, 250.0 GB
Heads: 255 Sectors per Track: 63 Cylinders: 30401
Name Flags Part Type FS Type [Label] Size (MB)
------------------------------------------------------------------------------
hdd1 Boot Primary Linux 1998.75
hdd5 Logical Linux 10001.95
hdd6 Logical Linux 5000.98
hdd7 Logical Linux 230998.77
hdd3 Primary Linux swap / Solaris 2056.32
各パーティションの filesystem を構築。初めは / も xfs で構築したのだが、どうもうまく起動させられなかったので面倒になって諦めて ext3 にしてしまった (fstab の / fstype を auto にして mkinitrd すれば良かったという噂もあるが後の祭)。正直、initrd についての知識はあまり無いのが敗因。
# mkfs -t ext3 /dev/hdd1
# mkfs -t xfs /dev/hdd5
# mkfs -t xfs /dev/hdd6
# mkfs -t xfs /dev/hdd7
# mkswap /dev/hdd3
# mkdir /target
# mount -t ext3 /dev/hdd1 /target
# cd /target && mkdir usr var home tmp proc sys
# mount -t xfs /dev/hdd5 /target/usr
# mount -t xfs /dev/hdd6 /target/var
# mount -t xfs /dev/hdd7 /target/home
2
ファイルシステムを rsync
後は淡々と /, /usr, /var, /home, を /target にコピー。/dev も rsync で行ける気もするがなんとなく不安で tar を使った。
# rsync -a /etc /lib /bin /sbin /boot /root /target
# cd /target && tar cf - /dev | tar xf -
# rsync -a /usr /home /var /target
一通りシステムのコピーが終わったら、サーバを single user mode で再起動。grub の場合は起動時の kernel 行に single と入れればいい。single user mode で起動したら必要なシステムを mount して最終的な sync を実行
# rsync -auv --delete /etc /lib /bin /sbin /boot /root /usr /home /var /target
同期後、/target/etc/fstab は必要に応じて編集しておく。
3
grub を再設定
続けて grub を設定してインストール
# grub-install --no-floppy --root-directory=/target /dev/hdd
error: stage1 not read correctly.
そりゃそうだ。 /target/boot/grub を一度消して再試行する
# mv /target/boot/grub /target/boot/grub.old
# grub-install --no-floppy --root-directory=/target/ /dev/hdd
Probing devices to guess BIOS drives. This may take a long time.
Due to a bug in xfs_freeze, the following command might produce a segmentation
fault when /target/boot/grub is not in an XFS filesystem. This error is harmless and
can be ignored.
Installation finished. No error reported.
This is the contents of the device map /target/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(hd0) /dev/hda
(hd1) /dev/hdd
問題無さそう。
4
initrd に xfs を入れる
今までは ext3 しか使っていないので、xfs module を initrd に組み入れておく必要がある
# echo 'xfs' >> /etc/mkinitrd/modules
# mkinitrd -o /target/boot/initrd.img-xfs
5
再起動
後は一度マシンを shutdown し、initrd を指定して起動。一応は問題なく動いているようだ。