こんにちは、松尾です。
debianのシステムドライブを新しいHDDに置換+ext4へコンバートを行いました。 次の手順でうまくいきました。
- debianをshutdown - 新しいHDDを接続 - GParted Live on USBを起動 (http://gparted.org/) - gpartedでコピー先にパーティションテーブルを作成する - gpartedでシステムドライブのパーティションをコピーする - システムパーティション(/dev/sda1) - swapパーティション(/dev/sda5) - gpartedでパーティションのサイズなどを調整する - gpartedでbootフラグを付ける(省略可?) - ext4にコンバート - ターミナルを起動, sudo suでrootに - tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sd?1 - gpartedでfsck - grub2書き込み - mount /dev/sd?1 /mnt - mount --bind /dev /mnt/dev - mount --bind /proc /mnt/proc - chroot /mnt - update-grub2 - grub-install /dev/sd? - shutdown、GParted Live終了 - 古いHDDを取り出し、新しいHDDと入れ替え - 新しいHDDで起動 - 新しいHDD内の/etc/fstabのrootfsをext3からext4に書き換える - 念のためgrub2書き込み - update-grub2 - grub-install /dev/sda - initfsのアップデート - update-initramfs -u - 再起動を試す(完了)
[注] - ext4ドライバでext3をrwできる - initfsのアップデートは後でもok - /etc/fstabの書き換えは変更後でもok ext3と書いていてもext4としてマウントされるようだ - https://mag.osdn.jp/15/11/04/153000 Linuxカーネル4.3リリース、ext3ドライバが廃止され ext4ドライバでのサポートに変更される - チェック $ find /lib/modules/`uname -r` -print | grep ext3 $ find /lib/modules/`uname -r` -print | grep ext4 /lib/modules/4.6.0-1-amd64/kernel/fs/ext4 /lib/modules/4.6.0-1-amd64/kernel/fs/ext4/ext4.ko $ lsinitramfs /boot/initrd.img-`uname -r`* | grep ext3 sbin/fsck.ext3 $ lsinitramfs /boot/initrd.img-`uname -r`* | grep ext4 lib/modules/4.6.0-1-amd64/kernel/fs/ext4 lib/modules/4.6.0-1-amd64/kernel/fs/ext4/ext4.ko - initfsにfsck.ext4がないため hdd入れ替えた後起動時に次のエラーが出る(ただしちゃんと起動する) fsck: error 2 (No such file or directory) while executing fsck.ext4 for /dev/sda1 fsck exited with status code 8 - Gparted Liveでgrub2の書き込み時にメッセージが出ていたがokだった (私の環境では偶然うまくいって大丈夫だっただけかもしれない)
今まではドライブの全コピーで済ませていたので ファイルシステムの変更はかなりドキドキでした。 grubとinitfsは調べてなかったら失敗したかもしれません。
同じようなことをやる方は少ないかもしれませんがご参考までに。 お騒がせしました。