前言
前文中我们熟悉了linux的启动流程,如果在启动过程中文件丢失或者损坏了怎么办呢?难道只有重装系统这一条路吗?那我们不是成了普通网管了吗?作为专业的运维工程师,我们需要掌握如何快速修复系统启动。
实验1: 破坏/boot/grup/下的文件——-stage2 阶段 不影响启动
mv /boot/grub /app———-移走左右文件保留grub.conf
实验2:破坏/dev/sda 前446字节,和启动相关
查看MBR
破坏grub的第一阶段 stage1
重启后系统会自动直接进光盘界面,进入救援模式切根:chroot /mnt/sysimage
安装grub:grub-install/dev/sda—–不止修复stage1 1.5、2统统修复。(第一种方法)
实验3:破坏mbr后续的数据——-stage1.5
用光盘引导,切根(第二种方法恢复)
1、/mnt/sysimage
2、grub
3、root (hd0,0)
4、setup (hd0)——依赖于/boot/grub/下的文件
这个时候重复实验1这时候已经起不来了,重新安装grub后第二阶段和刚开始的已经不是同一个文件了。
这时候还需要保留stage2这个文件 就可以启动了
实验4:制作启动项/etc/grub.conf -> ../boot/grub/grub.conf
1、default=0
代表默认选择第一个
2、红色边框为复制添加部分
3、可以在title前或者initrd后面加入口令,可以加密
生成方法:
加密算法2:ssha512算法 更安全
4、内核参数 /proc/cmdline,可进行修改quiet是隐藏内核的启动过程,删除可以看到内核过程
实验5:删除/boot/grub/grub.conf,修复
注意:必须事先知道root在哪,支持tab健补全。
实验6:删除/boot/grub目录
报错信息
进入光盘救援模式: 1、chroot /mnt/sysimage
2、grub-install /dev/sda
3、sync
4、手动写一个grub.conf文件
实验7:删除/boot
包含内核文件vmlinuz、虚拟文件系统 inittrd、grub
重启错误信息
1、进入光盘模式
chroot
/mnt/sysimage
mount
/dev/sr0 /mnt
2、恢复vmlinuz文件——–光盘复制内核包 在光盘中isolinux文件夹中,不在packages中
(第二种方法rpm -ivh /mnt/packages/kernel… –force—————-安装内核包)
3、恢复initramfs
mkinitrd /boot/initramfs.img `uname -r`
4、恢复grub—————grub-install /dev/sda
5、编辑grub.conf
实验8:删除/sbin/init
1、看到这个界面输入a
2、添加init=/bin/bash 指定系统不用默认的init启动 指定bash启动
3、查询到文件来自于的包组
4、试图创建发现是只读,也无法挂载光盘,需要重新挂载根
重新挂载根
挂载光盘
5、安装包
综合实验9:删除/etc/fstab和/boot 两个文件 恢复
1、进入光盘救援模式
这个时候光盘也无法挂载根,找不到分区
2、使用fdisk -l
/dev/sda 、blkid 可以看到磁盘信息
3、创建文件,然后每个分区试图挂载,找到根和boot
4、创建创建文件,不支持vim,写完退出重启一下 重新进救援模式,实现自动挂载,不要手动挂载
5、直接安装内核包
6、安装grub
grub-install /dev/sda
编辑grub.conf文件
技巧:可是要vim直接读入名字,无需手写”r!”
总结:通过以上实验,对基本的故障都能恢复,结合启动过程,对linux应该会有一个更深层次的了解。
原创文章,作者:eleven,如若转载,请注明出处:http://www.178linux.com/86073