前言
在使用openEuler操作系统时,有时会遇到修改根目录VG(Volume Group)和LV(Logical Volume)名后,系统启动失败的问题,特总结以下解决方法。
一、系统版本
系统:openEuler 22.03 (LTS-SP2)
启动方式:uefi、legacy
二、实施步骤
1.查看vg、lv名称
[root@test01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─vg2-lv2_root 253:0 0 26G 0 lvm /
└─vg2-lv2_swap 253:1 0 3G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part /apps
sdc 8:32 0 10G 0 disk
├─vg1-lv_var_log 253:2 0 2G 0 lvm /var/log
└─vg1-lv_apps_log 253:3 0 8G 0 lvm /apps/logs
sr0 11:0 1 3.5G 0 rom
[root@test01 ~]# vgscan
Found volume group "vg1" using metadata type lvm2
Found volume group "vg2" using metadata type lvm2
[root@test01 ~]# lvscan
ACTIVE '/dev/vg1/lv_var_log' [2.00 GiB] inherit
ACTIVE '/dev/vg1/lv_apps_log' [<8.00 GiB] inherit
ACTIVE '/dev/vg2/lv2_swap' [3.00 GiB] inherit
ACTIVE '/dev/vg2/lv2_root' [<26.00 GiB] inherit
2.修改vg、lv名称
修改vg2名称为vg3,修改lv2_xxxx名称为lv3_xxxx
[root@test01 ~]# vgrename vg2 vg3
Volume group "vg2" successfully renamed to "vg3"
[root@test01 ~]# lvrename /dev/vg3/lv2_swap /dev/vg3/lv3_swap
Renamed "lv2_swap" to "lv3_swap" in volume group "vg3"
[root@test01 ~]# lvrename /dev/vg3/lv2_root /dev/vg3/lv3_root
Renamed "lv2_root" to "lv3_root" in volume group "vg3"
3.修改/etc/fstab
[root@test01 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Nov 4 10:42:55 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/vg2-lv2_root / ext4 defaults 1 1
UUID=8617346b-f351-468d-9c30-6c545c8239c9 /boot ext4 defaults 1 2
/dev/mapper/vg2-lv2_swap none swap defaults 0 0
/dev/sdb1 /apps xfs defaults 0 0
/dev/vg1/lv_var_log /var/log xfs defaults 0 0
/dev/vg1/lv_apps_log /apps/logs xfs defaults 0 0
[root@test01 ~]# sed -i 's/vg2-lv2_root/vg3-lv3_root/g' /etc/fstab
[root@test01 ~]# sed -i 's/vg2-lv2_swap/vg3-lv3_swap/g' /etc/fstab
[root@test01 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Nov 4 10:42:55 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/vg3-lv3_root / ext4 defaults 1 1
UUID=8617346b-f351-468d-9c30-6c545c8239c9 /boot ext4 defaults 1 2
/dev/mapper/vg3-lv3_swap none swap defaults 0 0
/dev/sdb1 /apps xfs defaults 0 0
/dev/vg1/lv_var_log /var/log xfs defaults 0 0
/dev/vg1/lv_apps_log /apps/logs xfs defaults 0 0
[root@test01 ~]#
4.修改/etc/default/grub
[root@test01 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/vg2-lv2_swap rd.lvm.lv=vg2/lv2_root rd.lvm.lv=vg2/lv2_swap cgroup_disable=files apparmor=0 crashkernel=512M"
GRUB_DISABLE_RECOVERY="true"
[root@test01 ~]# sed -i 's/vg2-lv2_swap/vg3-lv3_swap/g' /etc/default/grub
[root@test01 ~]# sed -i 's|vg2/lv2_root|vg3/lv3_root|g' /etc/default/grub
[root@test01 ~]# sed -i 's|vg2/lv2_swap|vg3/lv3_swap|g' /etc/default/grub
[root@test01 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/vg3-lv3_swap rd.lvm.lv=vg3/lv3_root rd.lvm.lv=vg3/lv3_swap cgroup_disable=files apparmor=0 crashkernel=512M"
GRUB_DISABLE_RECOVERY="true"
5.legacy修改/etc/grub2.cfg;uefi修改/boot/efi/EFI/openeuler/grub.cfg
替换文件vg、lv名为新vg、lv名,以legacy修改/etc/default/grub为例:
[root@test01 ~]# sed -i 's/vg2-lv2_root/vg3-lv3_root/g' /etc/grub2.cfg
[root@test01 ~]# sed -i 's/vg2-lv2_swap/vg3-lv3_swap/g' /etc/grub2.cfg
[root@test01 ~]# sed -i 's|vg2/lv2_root|vg3/lv3_root|g' /etc/grub2.cfg
[root@test01 ~]# sed -i 's|vg2/lv2_swap|vg3/lv3_swap|g' /etc/grub2.cfg
6.修改完成后配置
执行grub2-mkconfig -o /boot/grub2/grub.cfg后报错(如下),无报错直接强制重新reboot -f
[root@test01 ~]# mount -a
[root@test01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
/usr/sbin/grub2-probe: error: failed to get canonical path of `/dev/mapper/vg2-lv2_root'.
遇报错则执行如下,执行完成后强制重启reboot -f,启动后查看修改成功。
mount /dev/mapper/vg3-lv3_root /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys/ /mnt/sys
mount --bind /run/ /mnt/run
mount --bind /boot/ /mnt/boot
cat << EOF | chroot /mnt
grub2-mkconfig --output=/boot/grub2/grub.cfg
exit
EOF
umount /mnt/boot
umount /mnt/run
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt
[root@test01 ~]# reboot -f
[root@test01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─vg3-lv3_root 253:0 0 26G 0 lvm /
└─vg3-lv3_swap 253:1 0 3G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part /apps
sdc 8:32 0 10G 0 disk
├─vg1-lv_var_log 253:2 0 2G 0 lvm /var/log
└─vg1-lv_apps_log 253:3 0 8G 0 lvm /apps/logs
sr0 11:0 1 3.5G 0 rom
三、启动失败
可能原因:上述配置文件没有修改到位,系统重启过程中卡住
解决办法:
1、重启后在这个界面按e,可能会让输入username,这里输入root,默认密码为openEuler#12
2、修改如下位置vg、lv为新名称,按ctrl+x进入系统。
3、进入系统后将未修改完或修改错误的地方改好后,执行grub2-mkconfig -o /boot/grub2/grub.cfg
后重启。
总结
vgrename、lvrename修改名称后,还需要修改fstab、grub、grub2.cfg或grub.cfg。