学习了Linux的启动流程,为了加深理解,今天做了如下的实验:删除掉Linux系统在启动过程中比较重要的几个文件,查看启动时出现的现象。加深对知识的理解。学习机器因为某些文件的缺失的修复方式。
一、删除grub.conf
grnb.conf文件为系统在启动的时候,引导设备找到找到/boot后加载相应的内核和找到为加载根文件系统做准备的initramfs文件的。删除后无法引导系统找到内核。
删除文件后,系统启动是就停在这个画面,无法引导进入载入内核。这个时候可以通过在这个界面输入相应的命令;即grub.conf文件的相关配置进入下面的引导。前提你要记得配置的相关信息,如果不记得就需要其他的方式启动,在这里我们先就假装记得,用比较简单方式修复启动。
上面输入的四条命令就是grub.conf文件内的内容,让机器按照输入的命令进行系统的引导从而启动,这种方式在误删该文件后可以很便捷的让系统启动,启动后重新编辑grub.conf文件后就能恢复正常。前提是对系统的分区比较熟悉,能够记得/boot和/的挂载情况。
二、在没有/boot和/etc/fstab的情况下恢复系统
破坏之前要看清系统的内核版本以及系统的版本,准备一张相应版本的光盘,破坏后需要用光盘的救援模式进行恢复。当前系统的信息如下:
上图为系统磁盘的分区情况。
删除后启动将无法进行:
由于把/boot目录下的所有文件都删除了,所以无法用上述的方式恢复,这里用光盘的救援模式恢复。
选择第三项救援模式后,在提示选择语种和键盘模式后,跳过网络设置后进入如下的画面,做出相应的选择:
由于刚才将系统设备挂载配置文件/etc/fstab删除了,无法识别到Linux的分区。
选择第一个选项,进入救援环境:
由于在救援模式下无法识别高级磁盘设备,而/则是逻辑卷设备,所以通过命令“vgchange -ay”来激活逻辑卷设备(如果是CentOS5,要使用命令lvm scan,然后在使用lvm vgchange -ay才能激活),然后就能查看快设备。通过上面的信息挂载“/”,进入根,重建fstab文件。如下图:
在挂载“/”的时候一定要注意,挂载的目录要为“/mnt/sysimage/”,否则挂载后无法使用命令。编辑fstab如下:然后保存重启。
再次进入救援模式,不同的是能够识别到要救援的系统:
再次进入shell模式,使用“chroot /mnt/sysimage”切换根,然后挂载光盘,安装内核,安装的时候要使用–force强制模式。如图:
安装完成后就可以在看见/boot目录下面有内核和initramfs文件了:
下一步使用命令"grub-install –root-directory= / /dev/sda"(注意:这里后面的路径不是固定的,要看分区挂载情况,”=“后面跟的是/boot目录的父目录,后面的这是所在磁盘。)安装grub,然后创建编辑grub.conf文件:
保存退出重启后:
能够进入grub界面了。默认启动:
最后成功启动,修复完成。
原创文章,作者:王更生,如若转载,请注明出处:http://www.178linux.com/60540