Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 认证 > Linux认证 > 正文

RHCE培训笔记——boot分区被清空的恢复方法

时间:2013-10-24 17:44 来源:未知 作者:51ou.com 阅读:

RHCE培训笔记——boot分区被清空的恢复方法

如果把系统/boot分区下的内容全部删除了,但是又不想重新安装系统,
是可以通过linux救援模式恢复boot分区的。

以下实验平台为CentOS 6.2。

root用户登录系统,使用rm –rf /boot命令删除/boot时,会被提未/boot无法被删除,
但/boot里面的所有数据都被删除了。

删除/boot分区后,重启系统,肯定连grub引导界面也没有了,只有一个“Error 5”的报错黑屏。

从系统光盘启动,选择“Rescue installed system”,即救援模式,回车进入,
后续启动过程中,选择默认的选项便是。

有一个步聚提示“Do you want to start the network interfaces on this system”,
选择yes或者no都没所谓,
本文为方便写文档,要使用ssh连接,所以选择了yes,并设置网络模式为dhcp。

最后选择“shell Start shell”,开启一个shell环境。

RHCE培训笔记——boot分区被清空的恢复方法

P-01

此时系统的当前目录是/mnt/sysimage,

用ifconfig可以看到系统自动获得了IP地址,但使用service sshd start命令无效,提示“unrecognized service”,

使用chroot命令切换当前目录为根目录,

RHCE培训笔记——boot分区被清空的恢复方法

操作过程如下:
 
[root@localhost ~]# ls /boot/
 
(注:可以看到此时的boot是个空目录)
 
 
 
[root@localhost ~]# ls /mnt/
 
[root@localhost ~]# mount /dev/cdrom /mnt
 
mount: block device /dev/sr0 is write-protected, mounting read-only
 
(注:加载光盘到/mnt下)
 
 
 
[root@localhost ~]# ls /mnt
 
CentOS_BuildTag  Packages                    RPM-GPG-KEY-CentOS-Security-6
 
EULA            RELEASE-NOTES-en-US.html    RPM-GPG-KEY-CentOS-Testing-6
 
GPL              repodata                    TRANS.TBL
 
images          RPM-GPG-KEY-CentOS-6
 
isolinux        RPM-GPG-KEY-CentOS-Debug-6
 
[root@localhost ~]# cd /mnt/Packages/
 
(注:进入到存放数据包的Packages目录)
 
 
 
[root@localhost Packages]# rpm -ivh --force kernel-2.6.32-220.el6.i686.rpm
 
Preparing...                ################### [100%]
 
  1:kernel                #################### [100%]
 
[root@localhost Packages]# ls /boot/
 
config-2.6.32-220.el6.i686        System.map-2.6.32-220.el6.i686
 
initramfs-2.6.32-220.el6.i686.img  vmlinuz-2.6.32-220.el6.i686
 
symvers-2.6.32-220.el6.i686.gz
 
(注:重新安装内核,使用--force选项,强制安装,可以看到此时/boot目录下有了内核文件等文件)
 
 
 
[root@localhost Packages]# grub-install --root-directory=/ /dev/sda
 
[root@localhost Packages]# ls /boot
 
config-2.6.32-220.el6.i686        symvers-2.6.32-220.el6.i686.gz
 
grub                              System.map-2.6.32-220.el6.i686
 
initramfs-2.6.32-220.el6.i686.img  vmlinuz-2.6.32-220.el6.i686
 
[root@localhost Packages]# ls /boot/grub/
 
device.map    ffs_stage1_5      minix_stage1_5    stage2          xfs_stage1_5
 
e2fs_stage1_5  iso9660_stage1_5  reiserfs_stage1_5  ufs2_stage1_5
 
fat_stage1_5  jfs_stage1_5      stage1            vstafs_stage1_5
 
(注:重装grub到/boot,
 
# grub-install --root-directory=/ /dev/sda
 
命令中--root-directory=/,指的是/boot的相对路径, --root-directory的值也可以为空,即
 
# grub-install --root-directory= /dev/sda
 
系 统将会在/boot下生成一个grub文件夹,并在里面存放grub文件,如果写成--root-directory=/boot,
系统将会在/boot 下生成了一个boot文件夹,再在里生成一个grub文件夹,
即grub文件存放在了/boot/boot/grub/目录下,这是不对的。
 
以上/boot/grub/中的数据,其实也可以从/usr/share/grub/i386-RedHat/里直接拷贝过来)
 

此时再使用service sshd start命令,可以正常开启ssh服务。

这下可以使用SSH Secure Shell Client远程访问上面系统了,主要是为了方便拷贝命令及结果
(要是全部手敲,那要死人了~)


在上面列出的/boot/grub数据中,发现,关键的grub.conf文件并没有。需要手动创建——这个很考验记忆力,
如果每个系统都对grub.conf文件作了备份,就好了,当然,也可以从其他同版本的系统中拷贝过来,
修改一下便可用——这是里手动创建一个。
 
[root@localhost Packages]# cd /boot/
 
[root@localhost boot]# touch grub/grub.conf
 
[root@localhost boot]# ls
 
config-2.6.32-220.el6.i686        symvers-2.6.32-220.el6.i686.gz
 
grub                              System.map-2.6.32-220.el6.i686
 
initramfs-2.6.32-220.el6.i686.img  vmlinuz-2.6.32-220.el6.i686
 
[root@localhost boot]# echo vmlinuz-2.6.32-220.el6.i686 >> grub/grub.conf
 
[root@localhost boot]# echo initramfs-2.6.32-220.el6.i686.img >> grub/grub.conf
 
(注:在/boot/grub下创建grub.conf文件,将vmlinuz和initramfs文件的文件写入到grub.conf文件中)
 
 
[root@localhost boot]# vim grub/grub.conf
 
default=0
 
timeout=10
 
title CentOS 6
 
        root (hd0,0)
 
        kernel /vmlinuz-2.6.32-220.el6.i686 ro root=/dev/mapper/vg_itpro-lv_root quiet
 
        initrd /initramfs-2.6.32-220.el6.i686.img
 
(注:编辑grub.conf内容,注意,“title CentOS 6”是没有“=”的,并保存退出;
 
建议使用vim而不是vi,因为vim着色,比较易知道自己的输入是否出错,当然,ssh远程看不到着色;
 
如果忘了root=/dev/mapper/vg_itpro-lv_root,可以通过df –h命令查看,如图P-03所示)
 
以上设置完成后,卸载光盘,重启系统
 
[root@localhost boot]# umount /dev/cdrom /mnt
 
umount: /mnt: not mounted
 
[root@localhost boot]# eject
 
[root@localhost boot]# init 6
 
init: Failed to connect to socket /com/Ubuntu/upstart: Connection refused
 
[root@localhost boot]# reboot
 
shutdown: Unable to shutdown system
 
[root@localhost boot]#
 
Broadcast message from root@localhost.localdomain
 
        (/dev/pts/0) at 15:31 ...
 
The system is going down for reboot NOW!
 
以上init 6无效,reboot也无效,说明援救模式下,这两个命令都不可用,
 
需要到本地系统里,使用exit命令退出shell,
 
然后选择“reboot  Reboot”选项重启系统(如图P-01所示)。
 
 
 
第一次重启,速度比较慢,有一个较长时间的修复过程,如图P-03所示;
 
修复结束后,系统会自动再次重启,正常进入到登录界面。

RHCE培训笔记——boot分区被清空的恢复方法

相关阅读:《Linux操作系统专题》 http://www.51ou.com/browse/spe/

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《RHCE培训笔记——boot分区被清空的恢复方法》技术文章,《RHCE培训笔记——boot分区被清空的恢复方法》详细使用和说明,有时《RHCE培训笔记——boot分区被清空的恢复方法》可能不完善、敬请谅解!如果《RHCE培训笔记——boot分区被清空的恢复方法》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片