Centos 7 - 将标准根分区迁移到LVM

Centos 7 - 将标准根分区迁移到LVM

我想将标准根分区(带有 xfs 文件系统的 Centos 7)迁移到 LVM 分区,不幸的是每次尝试都失败,并且重新启动后系统将无法启动(我怀疑 grub2 有问题)。以下是已执行的步骤和命令的列表。

  1. 附加新磁盘并创建新的 LVM 分区,其文件系统和大小与原始根分区相同。

  2. 挂载到新目录

    mount /dev/mapper/vg-root /mnt/nroot

  3. 使用 xfsdump 转储分区

    xfsdump -0uf /mnt/nroot.dump /dev/vda1

  4. 将分区恢复到临时目录

    xfsrestore -f /mnt/nroot.dump /mnt/nroot

  5. 重新挂载根分区

    umount /mnt/nroot

    mount /dev/mapper/vg-root /

    mount -o rw,remount /

  6. 编辑 fstab /etc/fstab 并将旧 UUID 更改为新根 UUID

  7. 重建 grub.cfg 文件

    grub2-mkconfig -o /boot/grub2/grub.cfg(UUID和挂载点正在改变)

  8. 重启

从旧磁盘挂载根分区后,操作系统将无法启动并出现 grub 错误。

我会寻求帮助和可能的错误。

答案1

  1. 也许我会从头开始,所以我的操作系统 Centos 7.3 状态如下

执行df -Th命令的结果

文件系统类型 已用大小 可用 使用% 安装于
/dev/vda1 xfs 30G 942M 30G 4% /
devtmpfs devtmpfs 901M 0 901M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 17M 904M 2% /运行
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs tmpfs 184M 0 184M 0% /运行/用户/1000

和文件 grub.cnf

[...]
menuentry 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10。 0-514.16.1.el7.x86_64-advanced-29342a0b-e20f-4676-9ecf-dfdf02ef6683'{
        加载视频
        设置 gfxpayload=保留
        insmod gzio
        insmod 部分_msdos
        安装 xfs
        设置 root='hd0,msdos1'
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 29342a0b-e20f-4676-9ecf-dfdf02ef6683
        别的
          搜索 --no-floppy --fs-uuid --set=root 29342a0b-e20f-4676-9ecf-dfdf02ef6683
        linux16 /boot/vmlinuz-3.10.0-514.16.1.el7.x86_64 root=UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 ro console=tty0 console=ttyS0,115200n8 crashkernel=auto console=ttyS0,115200 LANG=en_US .UTF-8
        initrd16 /boot/initramfs-3.10.0-514.16.1.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-8bd05758fdfc1903174c9fcaf82b71ca) 7 (核心)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-8bd05758fdfc1903174c9fcaf82 b71ca-高级- 29342a0b-e20f-4676-9ecf-dfdf02ef6683'{
        加载视频
        insmod gzio
        insmod 部分_msdos
        安装 xfs
        设置 root='hd0,msdos1'
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 29342a0b-e20f-4676-9ecf-dfdf02ef6683
        别的
          搜索 --no-floppy --fs-uuid --set=root 29342a0b-e20f-4676-9ecf-dfdf02ef6683
        linux16 /boot/vmlinuz-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca root=UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 ro console=tty0 console=ttyS0,115200n8 crashkernel=auto console=ttyS0,11520 0
        initrd16 /boot/initramfs-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca.img
}

[...]
  1. 在下一步中,我将 /boot 分区从 /dev/vda1 迁移到单独的分区(根据https://docs.hytrust.com/DataControl/Admin_Guide-4.0/Content/Books/Admin-Guide/Linux-Root-Swap-Drive-Encryption/Creating-Boot-Partition-RHEL-CentOS-7.htm
文件系统类型 已用大小 可用 使用% 安装于
/dev/vda1 xfs 30G 1.1G 29G 4% /
devtmpfs devtmpfs 901M 0 901M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 17M 904M 2% /运行
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/vdc1 xfs 1020M 144M 877M 15% /boot
tmpfs tmpfs 184M 0 184M 0% /运行/用户/1000

它工作正常,/boot/grub2 中的 grub.cnf 如下所示:

[...]
menuentry 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10。 0-514.16.1.el7.x86_64-advanced-29342a0b-e20f-4676-9ecf-dfdf02ef6683'{
        加载视频
        设置 gfxpayload=保留
        insmod gzio
        insmod 部分_msdos
        安装 xfs
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root b526cf02-6566-4a91-8027-13b3800d177f
        别的
          搜索 --no-floppy --fs-uuid --set=root b526cf02-6566-4a91-8027-13b3800d177f
        linux16 /vmlinuz-3.10.0-514.16.1.el7.x86_64 root=UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 ro console=tty0 crashkernel=auto console=ttyS0,115200
        initrd16 /initramfs-3.10.0-514.16.1.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-8bd05758fdfc1903174c9fcaf82b71ca) 7 (核心)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-8bd05758fdfc1903174c9fcaf82 b71ca-高级- 29342a0b-e20f-4676-9ecf-dfdf02ef6683'{
        加载视频
        insmod gzio
        insmod 部分_msdos
        安装 xfs
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root b526cf02-6566-4a91-8027-13b3800d177f
        别的
          搜索 --no-floppy --fs-uuid --set=root b526cf02-6566-4a91-8027-13b3800d177f
        linux16 /vmlinuz-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca root=UUID=29342a0b-e20f-4676-9ecf-dfdf02ef6683 ro console=tty0 crashkernel=auto console=ttyS0,115200
        initrd16 /initramfs-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca.img
}
if [ "x$default" = 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (核心)' ]; then default='CentOS Linux 的高级选项>CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)';菲;
[...]
  1. 最后,我创建并迁移到 LVM 根目录,所有使用的命令都是我之前粘贴的。

额外命令

$ 挂载/dev/mapper/vg00-root/
$ mount -o rw,重新安装/
$ cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(日期 +%m-%d-%H%M%S).bak
$ dracut -f -v
$ grub2-mkconfig -o /boot/grub2/grub.cfg

所以 df -hT 命令显示:

文件系统类型 已用大小 可用 使用% 安装于
/dev/mapper/vg00-root xfs 30G 2.1G 28G 7% /
devtmpfs devtmpfs 901M 0 901M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 17M 904M 2% /运行
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/vdc1 xfs 1020M 179M 842M 18% /boot
tmpfs tmpfs 184M 0 184M 0% /运行/用户/1000

并在文件 grub.cnf 中指令更改为:

menuentry 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10。 0-514.16.1.el7.x86_64-高级-c81176da-6e61-44f0-afbc-93df72820140'{
        加载视频
        设置 gfxpayload=保留
        insmod gzio
        安装 LVM
        安装 xfs
        设置根='lvmid/T33gzF-WKVs-rUjx-Pieh-rZIU-pna5-JXF6bF/f0wezp-3C1o-03mr-CfaC-ZlAY-LyKH-Zcx8fg'
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root --hint='lvmid/T33gzF-WKVs-rUjx-Pieh-rZIU-pna5-JXF6bF/f0wezp-3C1o-03mr-CfaC-ZlAY-LyKH-Zcx8fg ' c81176da-6e61-44f0-afbc-93df72820140
        别的
          搜索 --no-floppy --fs-uuid --set=root c81176da-6e61-44f0-afbc-93df72820140
        linux16 /boot/vmlinuz-3.10.0-514.16.1.el7.x86_64 root=/dev/mapper/vg00-root ro console=tty0 crashkernel=auto console=ttyS0,115200
        initrd16 /boot/initramfs-3.10.0-514.16.1.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-8bd05758fdfc1903174c9fcaf82b71ca) 7 (核心)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-8bd05758fdfc1903174c9fcaf82 b71ca-高级- c81176da-6e61-44f0-afbc-93df72820140'{
        加载视频
        insmod gzio
        安装 LVM
        安装 xfs
        设置根='lvmid/T33gzF-WKVs-rUjx-Pieh-rZIU-pna5-JXF6bF/f0wezp-3C1o-03mr-CfaC-ZlAY-LyKH-Zcx8fg'
        如果 [ x$feature_platform_search_hint = xy ];然后
          搜索 --no-floppy --fs-uuid --set=root --hint='lvmid/T33gzF-WKVs-rUjx-Pieh-rZIU-pna5-JXF6bF/f0wezp-3C1o-03mr-CfaC-ZlAY-LyKH-Zcx8fg ' c81176da-6e61-44f0-afbc-93df72820140
        别的
          搜索 --no-floppy --fs-uuid --set=root c81176da-6e61-44f0-afbc-93df72820140
        linux16 /boot/vmlinuz-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca root=/dev/mapper/vg00-root ro console=tty0 crashkernel=auto console=ttyS0,115200
        initrd16 /boot/initramfs-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca.img
}
if [ "x$default" = 'CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (核心)' ]

但现在当我重新启动服务器系统时,它会以旧的 /root 分区启动,并且处于 RO 状态。有任何想法吗?

相关内容