删除/boot/*并且删除/etc/fstab文件以及init程序的恢复实验

进入救援模式
不同就是删除/etc/fstab文件之后系统无法对根进行自动挂载,我们需要手动挂载根,这个根是你自己起的名字,比如我们起一个名为/mnt/tmp,那它就是之前系统自动挂载的/mnt/sysimages
还要挂载boot
fdisk -l 查看
sda4是扩展分区,不会是根,sda5是swap分区,也不会是根,sda1是boot的,也不是根
这里写图片描述
还有sda2,sda3如果我们不知道谁是根可以一个个去挂载试试,先建立一个挂载点mkdir /mnt/tmp
这里写图片描述
所以根在/dev/sda2上,下面我们就可以手动挂载根了,这也是此实验真正的第一步
1.mkdir /mnt/tmp
mount /dev/sda2 /mnt/tmp
因为此环境下不支持vim,我们只好用cat > 重定向,接下来要把挂载写入到文件里,以免下次重启挂载丢失,还要重新挂载根,很麻烦
cat > /mnt/tmp/etc/fstab (说明: /mnt/tmp相当于正常系统下的根/)
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 0
/dev/sda3 /app ext4 defaults 0 0
/dev/sda5 swap swap defaults 0 0
sda3和sda5可写可不写
exit
exit
reboot
再次进入救援模式(上面的步骤才只是挂载根,才修复好一个问题,还有一个问题没解决)
df 查看,根已经挂载成功
修复boot ,用一个和实验一中恢复boot不同的方法(rpm安装)
1.先挂载光盘 mkdir /mnt/cdrom 建立一个挂载点
mount /dev/sr0 /mnt/cdrom
2.rpm -ivh /mnt/cdrom/Packages/kernel-2.6…(版本号,) –root=/mnt/sysimage/ –force 特别说明:在这里我们还没有切根,所以就要指定 –root=/mnt/sysimage/ ,如果已经切根了就不用指定了,直接rpm安装,这里我们第三步才开始切根,所以在这要先指定一下
红色部分代表安装到我们这里的根下,因为我们现在在这里的根是/mnt/syaimages/,所以要特别指定而且还要指定强制安装(原因是本身就有只不过丢了一部分)
这里写图片描述
ls /mnt/sysimage/boot 查看boot下的东西恢复了
3.chroot /mnt/sysimage/
4.grub-install /dev/sda2 注意:这一步必须切根以后才能做
ls /boot/grub 查看grub也已恢复,同样和实验一中一样没有grub.conf文件,
sync
sync
sync 同步
这里写图片描述
但是我们在这个界面写入的东西是不会保存到文件中的,所以机器起来之后我们还是要写grub.conf文件
vim /boot/grub/grub.conf
这里只写了基本内容,还有很多可以写入
这里写图片描述
vim模式下直接生成
这里写图片描述
直接生成uuid
这里写图片描述
做完以上步骤重启虚拟机就好了
现在如果 我们把init程序破坏了该如何修复呢(比如我们把init移动到了别的目录下)?
这里写图片描述
init是系统启动时的第一个启动程序 ,移动或破坏之后就会出现以下情况
这里写图片描述
怎么解决?
方法一:在grub.conf文件里图中位置添加一个内核参数
这里写图片描述
方法二:用/bin/bash去代替/sbin下的init程序,这样的话计算机启动的时候加载的是bash,bash至少可以敲命令,所以启动之后再去把init找回来 mv /app/init /sbin/
这里写图片描述
思考:如果是把init删除了该如何恢复?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值