質問:ルート ファイル システムがいっぱいで、LVM ではありません。これを LVM である新しいパーティションに移動する必要があります。これはどのように達成できますか?
答え :
通常のディスク パーティション上の既存のルート ファイル システムを LVM ボリュームに変換する手順は次のとおりです:
1. 最初に LVM パーティションを作成します。
空きディスクを選択し、その上に LVM パーティションを作成します。
# pvcreate /dev/sdb1 # vgcreate vg_new_root /dev/sdb1 # lvcreate -L 4G -n lv0 vg_new_root
2. この新しい LVM パーティションを ext3 または ext4 (または必要に応じて) でフォーマットします。以下の例では、aext4 ファイル システムを作成します:
# mkfs.ext4 /dev/vg_new_root/lv0
3. 新しいマウント ポイントを作成し、そこに LVM パーティションをマウントします。
# mkdir /mnt/NEW_ROOT_PARTITION # mount /dev/vg_new_root/lv0 /mnt/NEW_ROOT_PARTITION
4. 「/」のすべての内容を、新しくマウントされたフォルダーにコピーします。
# tar -cvpf - --one-file-system --acls --xattrs --selinux / | tar -C /mnt/NEW_ROOT_PARTITION -xf # cp -aux /dev /mnt/NEW_ROOT_PARTITION
5. ファイルを編集します – /mnt/NEW_ROOT_PARTITION/etc/fstab 新しいルートを反映するには:
/dev/vg_new_root/lv0 / ext4 defaults 1 1
6. 新しいファイルシステムに chroot し、raid と lvm をサポートする initrd を作成する必要があります:
# mount --bind /dev /mnt/NEW_ROOT_PARTITION # chroot /mnt/NEW_ROOT_PARTITION # mount -t proc /proc /proc # mount -t sysfs /sys /sys
# vgscan # vgchange -ay # mkinitrd -v /boot/initrd-`uname -r`.lvm.img `uname -r`
# umount /sys # umount /proc # exit # mv /mnt/lv0/boot/initrd-`uname -r`.lvm.img /boot
7. /boot/grub/grub.conf を編集します 新しいルート /dev/vg_new_root/lv0 を指す . 「/boot」ディレクトリに古い initrd をバックアップし、新しい initrd の名前を既存のものに変更するか、grub.conf のエントリを編集します。
8.再起動
# shutdown -r now