openEuler修改根目录VG、LV名及系统启动失败问题处理

本文详细描述了在openEuler22.03LTSSP2系统中,修改VolumeGroup(vg)和LogicalVolume(lv)名称后可能导致启动失败的过程,包括查看设备、修改配置文件(如fstab、grub、grub2.cfg),以及遇到的问题和解决方法。


前言

在使用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修改/boot/grub2/grub.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.修改完成后配置

legacy执行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、grub.cfg。

### 扩容欧拉操作系统根目录的方法 在欧拉操作系统中,扩容根目录通常涉及逻辑卷管理(LVM)和文件系统调整。以下是具体操作方法: #### 1. 检查当前磁盘和分区情况 首先需要确认当前的磁盘空间分配以及逻辑卷的状态: ```bash df -hT lsblk vgdisplay lvdisplay ``` 这些命令可以帮助了解现有磁盘、逻辑卷组(VG)和逻辑卷(LV)的信息[^1]。 #### 2. 添加新磁盘或扩展现有磁盘 如果系统已经挂载了额外的磁盘空间或者通过虚拟机管理器扩展了磁盘容量,则需要初始化新的磁盘分区并将其加入现有的卷组: ```bash fdisk /dev/sdX # 替换 sdX 为实际新增磁盘设备 partprobe /dev/sdX pvcreate /dev/sdXn # 替换 sdXn 为新创建的分区 vgextend openeuler /dev/sdXn # 将新分区加入到卷组 openeuler 中 ``` #### 3. 扩展逻辑卷 接下来扩展逻辑卷以利用新增的空间: ```bash lvextend -l +100%FREE /dev/mapper/openeuler-root ``` 此命令将把卷组中的所有剩余空间分配给根逻辑卷[^2]。 #### 4. 调整文件系统大小 根据文件系统的类型执行不同的命令来调整文件系统大小: - **ext4 文件系统**: ```bash resize2fs /dev/mapper/openeuler-root ``` - **xfs 文件系统**: ```bash xfs_growfs /dev/mapper/openeuler-root ``` 确保文件系统已被正确挂载,并且可以在线调整大小。 #### 5. 验证扩容结果 最后验证根目录是否已成功扩容: ```bash df -hT / ``` #### 6. 处理可能的错误 如果在扩容过程中遇到磁盘 I/O 错误或其他问题,可能需要检查文件系统完整性或恢复卷组配置: ```bash fsck /dev/mapper/openeuler-root vgcfgrestore openeuler ``` 使用 `fsck` 工具修复文件系统错误,或者通过 `vgcfgrestore` 恢复卷组配置[^3]。 --- ### 注意事项 - 在执行任何磁盘操作之前,请确保备份重要数据。 - 如果不确定当前文件系统类型,可以通过 `df -hT` 命令查看。 - 对于 xfs 文件系统,无法缩小文件系统,因此扩容时需谨慎规划空间。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值