场景根据不同,方法不同,比如是公司的大型服务器linux系统,个人的pc或者虚拟机Linux系统
遇到的场景有:系统原来的sda磁盘划分完了,此时想划分一个新的磁盘分区出来,用作其他组件的服务,尝试通过减少相关的逻辑 lvm 磁盘大小:
lvs
lvreduce -L -500G /dev/VolGroup00/LogVol03
vgs
vgdisplay
pvdisplay
resize2fs -f /dev/mapper/VolGroup00-LogVol03 1000G
通过删除lv卷,减少分区大小,但是重启系统报错,进不去系统了。
服务器主要步骤:
1、挂在光驱,原始的centos镜像
2、按F11或者其他提示的按键进入修复模式
3、使用以下的命令进行修复;
在使用CentOS 7时,突然想重新加个LV,就在VG 里LV create了个新的LV 名为data;随后看到有lvrename命令,就又重命名为centos_data了,紧接着mkfs.ext4,挂载到/data,一切正常。
本该到此就结束了,可是看着root这个lv名字不好看,就继续lvrename了root这个lv的名字为centos_root;这个lv的实际挂载点是linux的关键点/路径。
然后手糙执行了reboot命令,结果重起开启失败了。
想来想去,应该是fstab出错了,无法找到/挂载点的LV,导致系统引导出错了。
如何修复呢?大致尝试了如下几种途径。
-
硬盘启动进入Resume模式,结果失败,因为不能挂载以前的/ 到 Resume模式的/mnt/sysimage路径下,还是因为fstab读取的问题,resume模式就没能按原有的fstab文件找到该挂载的LV。
-
用CentOS DVD完整版镜像ios文件制作U盘启动,重新进系统,按新安装方式重新读取磁盘LV信息,想通过图形界面,重新命名LV回到以前的名称。这种方法行不通,新的安装方式,不能修改已有CentOS的文件系统LV名称。
-
下载CentOS Live DVD安装镜像iso,制作U盘启动,进入系统,最小化安装向导(或切换至第二个虚拟桌面)。桌面右键进入终端命令行,su - root,不需要密码,进入root环境,执行lvs,vgs发现能看到之前的LV信息,再执行lvrename把centos_root改回root,然后sync保存,reboot重起……终于一切照旧了,系统重新引导正常,什么也没有丢失,避免了一次没必要的重做系统。
总结下来,非/挂载点,只需要在lvrename后,修改fstab即可;但/挂载点,因为被grub.cfg信息用到,所以需要修改fstab并修改grub.cfg文件。