6.实验:破坏grub2阶段即删除/boot/⽬录下所有⽂件

目的

启动系统时/boot/目录下的文件是进入grub2阶段的必要文件,删除boot目录下的所有文件后,修复。

前提

可用的centos6系统,centos6的iso系统安装文件。

实验步骤

1. 删除/boot/⽬录下所有⽂件

[root@centos6 ~]# ls /boot/
config-2.6.32-754.el6.x86_64  grub                                 lost+found                        System.map-2.6.32-754.el6.x86_64
efi                           initramfs-2.6.32-754.el6.x86_64.img  symvers-2.6.32-754.el6.x86_64.gz  vmlinuz-2.6.32-754.el6.x86_64
[root@centos6 ~]# rm -rf /boot/*	#强制删除/boot目录下所有文件、*代表所有
[root@centos6 ~]# ls /boot	#目录已经空了
[root@centos6 ~]# reboot	#重启

2. 使用光盘启动,进入救援模式

  1. 在VMware环境下是按esc键进入boot menu菜单在这里插入图片描述
  2. 这里选择第3项光盘引导
    在这里插入图片描述
  3. 选择第三项Rescue installed system
    在这里插入图片描述
  4. 语言English
    在这里插入图片描述
  5. 键盘us
    在这里插入图片描述
  6. 不需要配置网络,这里选择no
    在这里插入图片描述
  7. 尝试挂载损坏引导的系统中的根,选择Continue,回车确定
    在这里插入图片描述
  8. 已经挂载损坏系统上的根,回车确定
    在这里插入图片描述
  9. 确认把损坏引导系统的根挂载在/mnt/sysimage⽬录下,回车确定在这里插入图片描述
    10.进⼊shell,选择第1⾏后,选择Ok,回车确定
    在这里插入图片描述

3. 切根、安装grub

  1. 查看磁盘分区
    在这里插入图片描述

  2. 切换根

bash-4.1# chroot /mnt/sysimage/
  1. 安装grub
sh-4.1# cd /boot/
sh-4.1# pwd
/boot
sh-4.1# grub-install /dev/sda

在这里插入图片描述

4. 复制vmlinuz内核文件

  1. 挂载磁盘并拷贝vmlinuz内核⽂件
sh-4.1# mount /dev/cdrom /media	#临时挂载
sh-4.1# cp /media/isolinux/vmlinuz /boot/

注意:拷贝内核⽂件vmlinuz时,除了 /media/isolinux/vmlinuz所在的路径是内核⽂件,还有⼀个存放位置
是/mnt/Packages/kernel-2.6.32-754.el6.x86_64.rpm,只需把该⽂件解压即可,最后再介绍如何解压这个rpm内核
⽂件

  1. 查看
    在这里插入图片描述
  2. 使用mkinitrd命令生成initramfs.img文件
sh-4.1# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

5. 创建grub.conf⽂件

查看根⽬录在grub.conf应该写⼊的位置
在这里插入图片描述

这⾥查到root指定位置为/dev/sda2,当然也可⽤UUID代替其写为root=UUID=a7f98a2f-4404-b768-d6e1cbae0b5e

sh-4.1# ls /boot
grub  initramfs-2.6.32-754.el6.x86_64.img  vmlinuz
sh-4.1# vim /boot/grub/grub.conf
default=0
timeout=5
title redhat	##描述,不写此条,开机起不来
 root (hd0,0)
 kernel /vmlinuz ro root=/dev/sda2 rhgb quiet	#前边查到root指定位置为/dev/sda2、所以这里为/dev/sda2
 initrd /initramfs-2.6.32-754.el6.x86_64.img	#注意版本号 用这条命令写入":r! ls /boot/initra后面TAB自动补齐"
  1. 重启
sh-4.1# exit
bash-4.1# reboot 

系统启动恢复正常

  1. 解压内核⽂件 为了演⽰解压内核⽂件,先确认光盘已挂载
 [root@centos6 ~]# mkdir -p /data
 [root@centos6 ~]# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
  1. 把/mnt/Packages/kernel-2.6.32-754.el6.x86_64.rpm复制到/root/data⽬录下
[root@centos6 ~]# cp /mnt/Packages/kernel-2.6.32-754.el6.x86_64.rpm /data

6. 使⽤rpm2cpio命令解压

[root@centos6 ~]# cd /data/
[root@centos6 data]# ls
kernel-2.6.32-754.el6.x86_64.rpm  lost+found
[root@centos6 data]# rpm2cpio kernel-2.6.32-754.el6.x86_64.rpm | cpio -id	#解压内核
232594 blocks

此时,当前⽬录解压后,出现了boot、etc、lib三个⽬录,其中boot/vmlinuz-2.6.32-754.el6.x86_64这个就是带有内 核版本的内核⽂件了。 这个⽂件boot/vmlinuz-2.6.32-754.el6.x86_64和/boot/vmlinuz两⽂件是⼀样的,只不过是名字不同⽽已。 我们也看把/boot/vmlinuz改名为带有内核版本的⽂件:

[root@centos6 data]# mv /boot/vmlinuz /boot/vmlinuz-$(uname -r)

7. 同时修改grub.conf配置文件中,内核文件的名称

  [root@centos6 ~]# vim /boot/grub/grub.conf 
default=0
timeout=5
title redhat
        root (hd0,0)
        kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=/dev/sda2 rhgb quiet
        initrd /initramfs-2.6.32-754.el6.x86_64.img

完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值