问题
在CentOS/RHEL中, 根文件系统/ 使用率已经99% 并且不是 LVM。
我们需要将它移动到新的 LVM 分区。如何操作?
https://onitroad.com 更多教程
解决方法
将普通磁盘分区上的现有根文件系统转换为 LVM 卷的过程如下:
- 首先创建一个LVM分区:
选择一个空闲磁盘并在其上创建一个 LVM 分区。
# pvcreate /dev/sdb1 # vgcreate vg_new_root /dev/sdb1 # lvcreate -L 4G -n lv0 vg_new_root
- 使用 ext3 或者 ext4(或者根据需要)格式化这个新的 LVM 分区。
下面给出的示例创建 aext4 文件系统:
# mkfs.ext4 /dev/vg_new_root/lv0
- 创建一个新的挂载点,然后在其上挂载 LVM 分区:
# mkdir /mnt/NEW_ROOT_PARTITION # mount /dev/vg_new_root/lv0 /mnt/NEW_ROOT_PARTITION
- 将“/”的所有内容复制到新挂载的文件夹中:
# tar -cvpf - --one-file-system --acls --xattrs --selinux / | tar -C /mnt/NEW_ROOT_PARTITION -xf # cp -aux /dev /mnt/NEW_ROOT_PARTITION
- 现在编辑文件 /mnt/NEW_ROOT_PARTITION/etc/fstab 以反映新的根目录:
/dev/vg_new_root/lv0 / ext4 defaults 1 1
- 现在需要 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
编辑 /boot/grub/grub.conf 以指向新的根目录 /dev/vg_new_root/lv0 。
在“/boot”目录中备份旧的 initrd 并将新的 initrd 重命名为现有的或者编辑 grub.conf 中的条目。重启
# shutdown -r now
日期:2020-09-17 00:12:46 来源:oir作者:oir