title: centos删除swap分区重启后无法进入系统
date: 2020-04-13 18:28:05
tags: [centos,linux]
category: 运维

简介

最近想把生产服务器通过jumpserver(堡垒机)进行管理,通过模板新建了台虚拟机。启动后发现虚拟机有swap分区(之前创建模板时没改好),把swap关闭并删除,随带升了下linux kernel 重启发现无法启动了。

简要就是把swap分区删除了,重启后系统无法进入了。

现象

我还在想难道升级内核挂了??不应该阿,都升级了10几台了也没看哪台无法进入系统。

通过vmware控制台,查看到了虚拟机无法启动的相关日志,果不其然,发现是swap分区无法找到。

system-start-fault-swap

解决

由于linux启动是通过/boot/grub2/grub.cfg配置文件加载的,里面包含硬盘信息。

因此我们可以在选择boot界面上进行手动更改启动项

boot菜单临时修改grub

在终端输入init 6 按下回车,进行重启。重启完成后我们可以看到类似这个界面,这里是系统boot界面。

进入grub配置

system-boot-menu

选中的内核会有白色背景,这里已第一个内核进行讲解。选择对应内核按下键盘上的 “e”

grub-cfg

修改grub配置

按下后跳转到类似下面的内容,通过键盘方向键往下移动。查看到启动时启用的硬盘及分区,

system-disk

这里我们可以看到 rd.lvm.lv=centos/swap这个是LV硬盘的swap分区,然后已经被我删除了,所以导致无法进入系统。

接下来只要在启动项把rd.lvm.lv=centos/swap 删除即可进入系统。(这一步只是临时修改grub)

remove-swap

确认无误后按下键盘上的 “Ctrl + x”,注意需要同时按下。

system-start-ok

永久修改grub

这样就能正常进入系统后,需要将grub启动项更改为永久。

修改grub配置文件

cat /etc/default/grub

grub-cfg
看到这里是不是发现很熟悉,没错。这一块就是你刚刚修改临时boot界面grub启动项的配置。

rd.lvm.lv=centos/swap,删除即可

cp /etc/default/grub /etc/default/grub.bak
sed -i "s#rd.lvm.lv=centos/swap##" /etc/default/grub
cat /etc/default/grub

modify-grub-cfg

重新生成grub

sudo grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub2 配置 

init-grub

验证

init 6

这里就不再次讲解如何进入启动项
check-grub

已经可以正常进入系统了。

system-start-ok

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐