Linux学习之启动与内核管理

1:当Linux启动时内核文件不小心不在了导致系统起不来的解决方法。

我们这里以Centos6为例,其他版本的解决方法大同小异,内核文件一般在/root下,我们用 ll -h /boot/ 看到 vmlinuz-2.6.32-754.el6.x86_64 就是我们Linux的启动内核。在这里插入图片描述我们这里把这个文件删除,然后用reboot重启Linux系统,用于模拟工作中内核文件不小心删除了,导致系统起不来的情况。在这里插入图片描述现在我们可以Linux的启动界面显示这个提示,这就表示内核文件不在了。在这里插入图片描述
这时候我们按Ctrl+Fn+ALT+Insert键重启系统,进入重启页面,进入重启页面快速按下ESC键可以临时把启动菜单调出来,然后选择用哪个设备来引导,这时我们选用的是光盘引导(工作中有时候我们没有光盘,我们也可以用装有镜像文件的U盘代替,操作步骤大同小异),即第三项’CD-ROM Drive’,回车在这里插入图片描述这时我们看到’Rescue install system’即救援模式,选择此项,回车在这里插入图片描述我们这里语言和键盘选项直接默认ok回车就行在这里插入图片描述在这里插入图片描述网络选项这里我们选NO不配了,因为我们这里知道问题是内核的问题和网络无关。在这里插入图片描述我们到这一步选择Continue继续。在这里插入图片描述我们这里提示操作系统的根已经挂载到/mnt/sysimage下,我们接下来的步骤直接按回车到下一步。在这里插入图片描述在这里插入图片描述到这一步我们选择shell start shell 按回车开一个shell.在这里插入图片描述我们用df可以看到之前操作系统的根被挂载到/mnt/sysimage目录下,之前根下的/boot就被挂载到/mnt/sysimage/boot下,我们用ls可以看到目前boot下已经没有内核文件vmlinuz,所以导致我们的系统起不来,我们这里可以从光盘文件中拷一个过来,我们现在可以看到目前光盘/dev/sr0还没有挂载,我们这里用mkdir /mnt/cdrom临时创建一个目录挂载光盘,我们用ls /mnt/cdrom/isolinux/ 可以看到此光盘文件下就有我们需要的内核文件vmlinuz。我们现在用cp命令把这个内核文件拷到我们系统的/boot/目录下并根据格式重新改名,因为内核文件名的格式是vmlinuz-后面跟内核版本号,所以我这里直接用了uname -r ,接下来我们用ls /mnt/sysimage/boot/ -l 看到现在boot目录下已经有了内核文件且大小合适。接下来我们用exit 退出shell编辑。在这里插入图片描述接下来我们选择第三项reboot Reboot回车重启系统。接下来我们等待系统重启就行,至此当我们遇到Linux系统中内核文件被误删除导致系统无法启动的时的解决步骤已全部演示完毕。在这里插入图片描述

2:当不小心删除了ramdisk文件,导致操作系统无法启动的解决方法。

我们这里还是以Centos6为例,其他版本的解决方法大同小异,ramdisk文件一般在/root下,我们用 ll -h /boot/ 看到initramfs-2.6.32-754.el6.x86_64.img就是我们Linux的ramdisk文件。当这个文件被误删了,会导致操作系统的根挂载不上,从而导致系统无法启动。我们这里把这个文件删除,然后用reboot重启Linux系统,用于模拟工作中内核文件不小心删除了,导致系统起不来的情况。
在这里插入图片描述我们现在可以看到下面的错误提示,现在系统已经起不来了。在这里插入图片描述
接下来我们重启系统进入救援模式,前面步骤都和我们内核文件缺失导致系统无法启动的步骤一样,可以参考前面步骤。我们现在开一个shell在这里插入图片描述这里我们用chroot /mnt/sysimage/ 命令切换到我们操作系统的根,因为这个ramdisk文件是我们一开始安装操作系统生成的文件,而不是光盘镜像文件里的。所以我这里用mkinitrd 命令生成这个文件,命令的具体格式我们可以看截图。(注意,该文件名不能随意定义,因为在启动文件中是已经定义好的了)接下来我们看一下boot目录下这个文件有没有生成,最后我们退出shell。
在这里插入图片描述接下来我们选择第三项reboot Reboot回车重启系统。接下来我们等待系统重启就行,至此当我们遇到Linux系统中ramdisk文件被误删除导致系统无法启动的时的解决步骤已全部演示完毕。在这里插入图片描述

3:模拟当不小心删除了/boot下的文件,导致操作系统无法启动的解决方法。

这里以Centos6为例,第一步删除/boot/,可以看到下面提示boot目录目前正忙,无法删除。这只是因为目前boot目录正处于挂载情况下,但这里不影响我们的删除操作,我们用ls命令可以看到目前/boot/下没有任何文件了,再重启系统。我们就会发现系统无法启动。
在这里插入图片描述
我们这里进入救援模式,开一个shell,具体步骤我们和上面一样,我们这里就不做一一介绍了。
在这里插入图片描述
我们这里先用chroot /mnt/sysimage/ 命令切换到我们操作系统的根,我们看到目前boot目录下是空的,好了,我们这里该修复修复,我们这里先修复grub,我们这里用grup-install /dev/sda命令(这个命令可能需要等待一段时间,我们等一会进行了,小伙伴们不要以为卡住了所以又进行重启操作),我们可以看到boot目录下grub目录已经生成,打开grub目录可以看到该有的文件都生成了,唯独没有grub.conf文件,我们这里要自己写一个grub.conf
在这里插入图片描述grub.conf文件内容里的格式,可以参考其他网络资料,我这里写了一些最基础的,这个里面的root等于后面跟的根据自己的实际填,可以用df命令看到。在这里插入图片描述我们到这一步开始生成boot目录下内核文件,我们可以从光盘里复制一个内核文件到boot下。我们先用mount /dev/sr0 /mnt 命令挂载一下光盘,可以看到光盘目录下有一个内核文件vmlinuz,我们现在把他复制到boot目录下,可以看到boot目录下已经生成了一个vmlinuz ,现在我们缺一个放驱动的initramfs.img文件,我们可以用mkinitrd这个命令生成这个文件,注意我用这个命令的格式,不要用错。生成成功,我们可以看到boot下现在有这两个文件了,我们可以打开我写的grub.conf文件对一下文件名是否一样,这里文件名一定要一样否则会导致流程失败。我们可以看到我们这里文件名都一样,现在我们退出shell。
在这里插入图片描述退出shell后,我们这里选择reboot Reboot ,回车,等待系统重启在这里插入图片描述
我们这里看到系统重启,重启成功,到此,我们完成当工作中误删除boot,导致系统无法启动的所有解决步骤。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值