P2Vはこちらの方法で行いました。この後、vmdkをova方式に変換してAWSに持って行ってました。 yomon.hatenablog.com
その際、せっかくなのでファイルシステムをext3からext4に変更したので、その手順です。
CentOS5をext3からext4に/(root)パーティションが結構ハマりポイントあったので誰かの参考になれば。
はじめに
CentOSの古いKernelはrootパーティションをext3でMountしにいくので、できればCentOS5の最新CentOS5.11に上げておいた方ば無難です。Kernelをリコンパイルしてext3を無効にする方法もあるよなのですが、試せてないです。
環境
こちらのLVMで着られているrootパーティションをext4に変更します。
# cat /etc/redhat-release CentOS release 5.11 (Final) # df -hT Filesystem Type サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 ext3 53G 18G 32G 37% / /dev/hda1 ext3 3.0G 98M 2.8G 4% /boot tmpfs tmpfs 3.7G 0 3.7G 0% /dev/shm
手順
ext4用のツールが入っているパッケージをインストールします。
# yum install e4fsprogs
fstabを変更しておきます。
# vi /etc/fstab #(変更前)/dev/VolGroup00/LogVol00 / ext3 defaults 1 1 /dev/VolGroup00/LogVol00 / ext4 defaults 1 1
ここがハマりポイントの一つです。initrdもext4用のモジュールが必要です。以下の通り組み込みます。
# mv /boot/initrd-`uname -r`.img{,.org} # mkinitrd -v --with=ext4 -f /boot/initrd-`uname -r`.img `uname -r` --省略 Adding module ext4 --省略
fuserコマンドでACCESSの項目が 「F」や「f」になっている(ファイルオープンしている)プロセスを停止、またはkillしていきます。
# fuser -v -m /
ファイルをオープンしているプロセスが消えたところで、rootパーティションをreadonlyでマウントし直します。
# mount -o remount,ro /
ext4を有効化し、整合性チェックをかけます。tune4fsは一瞬、e4fsckは時間がかかります。
# tune4fs -O extents,uninit_bg,dir_index /dev/mapper/VolGroup00-LogVol00 # e4fsck -fDC0 /dev/mapper/VolGroup00-LogVol00 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 3A: Optimizing directories Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/VolGroup00-LogVol00: ***** FILE SYSTEM WAS MODIFIED ***** /dev/mapper/VolGroup00-LogVol00: ***** REBOOT LINUX ***** /dev/mapper/VolGroup00-LogVol00: 211967/152320608 files (0.8% non-contiguous), 9451397/18611200 blocks
最後に再起動をかけます。
# reboot
無事にext4に変更されました。
# df -Th Filesystem Type サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 ext4 53G 18G 32G 37% / /dev/hda1 ext3 3.0G 101M 2.8G 4% /boot tmpfs tmpfs 3.7G 0 3.7G 0% /dev/shm
後は/bootがext3ですが、こちらも同じ方法で変換可能です。
fstabの/bootのファイルシステムをext4に直します。
# vi /etc/fstab
後はrootパーティションと一緒の手順です。すぐに完了すると思います。
# mount -o remount,ro /boot # tune4fs -O extents,uninit_bg,dir_index /dev/hda1 # e4fsck -fDC0 /dev/hda1 # reboot
# df -Th Filesystem Type サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 ext4 53G 18G 32G 37% / /dev/hda1 ext4 3.0G 101M 2.8G 4% /boot tmpfs tmpfs 3.7G 0 3.7G 0% /dev/shm
補則
CentOS5でext4を扱うにはext4用のコマンドを利用します。 例えばresize2fsはresize4fsといった感じです。
参考情報
fuserコマンドの説明 www.digitalocean.com
rootパーティションをext3からext4に変換 www.fractalizer.ru