我想将标准根分区(带有 xfs 文件系统的 Centos 7)迁移到 LVM 分区,不幸的是每次尝试都失败,并且重新启动后系统将无法启动(我怀疑 grub2 有问题)。以下是已执行的步骤和命令的列表。
附加新磁盘并创建新的 LVM 分区,其文件系统和大小与原始根分区相同。
挂载到新目录
mount /dev/mapper/vg-root /mnt/nroot
使用 xfsdump 转储分区
xfsdump -0uf /mnt/nroot.dump /dev/vda1
将分区恢复到临时目录
xfsrestore -f /mnt/nroot.dump /mnt/nroot
重新挂载根分区
umount /mnt/nroot
mount /dev/mapper/vg-root /
mount -o rw,remount /
编辑 fstab /etc/fstab 并将旧 UUID 更改为新根 UUID
重建 grub.cfg 文件
grub2-mkconfig -o /boot/grub2/grub.cfg
(UUID和挂载点正在改变)重启
从旧磁盘挂载根分区后,操作系统将无法启动并出现 grub 错误。
我会寻求帮助和可能的错误。
答案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 } [...]
- 在下一步中,我将 /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)';菲; [...]
- 最后,我创建并迁移到 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 状态。有任何想法吗?