こんにちは、松尾です。
debianのシステムドライブを新しいHDDに置換しようと計画中です。 この機会にext3からext4にコンバートしようと思っています。 次の手順を考えています。
- debianをshutdown - 新しいHDDを接続 - GParted Live on USBを起動 (http://gparted.org/) - シェルからddでHDDまるごとコピー cat /proc/partition でデバイスを確認 dd if=/dev/sd? of=/dev/sd? bs=128k でコピー - 新しいHDDは256GB、古いHDDは160GB - 新しいHDD内のfstabのrootfsをext3からext4に書き換える - 次の起動はext3のパーティションをext4でマウントする (https://www.ibm.com/developerworks/jp/linux/library/l-anatomy-ext4/) - shutdown、古いHDDを取り出し、新しいHDDできるようBIOS,接続を調整 - 新しいHDDから起動、問題なければshutdown、再度GParted起動 - パーティションサイズを調整 - ext4にコンバート - tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sd?1 - e2fsck -pf /dev/sd?1 - e4defrag /dev/sd?1 (やったほうが良い?) (https://ubuntuforums.org/archive/index.php/t-1118295.html) (https://www.ibm.com/developerworks/jp/linux/library/l-ext4/) - 新しいHDDで起動(完了)
このファイルシステムを作ったのは5年ほど前で この頃はext3が標準フォーマットだったんだと思います。 # tune2fs -l /dev/sda1 | grep create Filesystem created: Fri Feb 18 20:34:30 2011
上の手順でokなのか、 他に何か(grub,initrdなど?)手順を追加したほうが良いのか、 もっとおすすめな簡単な方法がある、など アドバイスいただけないでしょうか よろしくお願いします。
こんにちは、松尾です。
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は調べてなかったら失敗したかもしれません。
同じようなことをやる方は少ないかもしれませんがご参考までに。 お騒がせしました。