Linux bootF分区被清空的恢复步骤

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

以下实验平台为CentOS 6.2。

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

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

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

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

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

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

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

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

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

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

操作过程如下:

[[email protected] ~]# ls /boot/

(注:可以看到此时的boot是个空目录)

[[email protected] ~]# ls /mnt/

[[email protected] ~]# mount /dev/cdrom /mnt

mount: block device /dev/sr0 is write-protected, mounting read-only

(注:加载光盘到/mnt下)

[[email protected] ~]# 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

[[email protected] ~]# cd /mnt/Packages/

(注:进入到存放数据包的Packages目录)

[[email protected] Packages]# rpm -ivh --force kernel-2.6.32-220.el6.i686.rpm

Preparing...                ########################################### [100%]

1:kernel                 ########################################### [100%]

[[email protected] 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目录下有了内核文件等文件)

[[email protected] Packages]# grub-install --root-directory=/ /dev/sda

[[email protected] 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

[[email protected] 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/里直接拷贝过来)

在上面列出的/boot/grub数据中,发现,关键的grub.conf文件并没有。需要手动创建——这个很考验记忆力,如果每个系统都对grub.conf文件作了备份,就好了,当然,也可以从其他同版本的系统中拷贝过来,修改一下便可用——这是里手动创建一个。

[[email protected] Packages]# cd /boot/

[[email protected] boot]# touch grub/grub.conf

[[email protected] 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

[[email protected] boot]# echo vmlinuz-2.6.32-220.el6.i686 >> grub/grub.conf

[[email protected] boot]# echo initramfs-2.6.32-220.el6.i686.img >> grub/grub.conf

(注:在/boot/grub下创建grub.conf文件,将vmlinuz和initramfs文件的文件写入到grub.conf文件中)

[[email protected] 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所示)

以上设置完成后,卸载光盘,重启系统

[[email protected] boot]# umount /dev/cdrom /mnt

umount: /mnt: not mounted

[[email protected] boot]# eject

[[email protected] boot]# init 6

init: Failed to connect to socket /com/ubuntu/upstart: Connection refused

[[email protected] boot]# reboot

shutdown: Unable to shutdown system

[[email protected] boot]#

Broadcast message from [email protected]

(/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所示;

修复结束后,系统会自动再次重启,正常进入到登录界面。

时间: 2024-10-22 14:05:39

Linux bootF分区被清空的恢复步骤的相关文章

《Linux菜鸟入门2》系统恢复和selinux  

selinux的初级管理 1.什么是selinux Selinux:内核级加强型防火墙 2.如何管理selinux级别 selinux开启或者关闭 vim /etc/sysconfig/selinux selinux=disabled   关闭状态 selinux=Enforcing   强制状态 selinux=Permissive   警告状态 getenforce       查看状态 当selinux开启时 setenforce 0|1   更改selinux运行级别 3.如何更改文件安

Linux系统分区与注意事项

好久没有发博客了,接下来会把暑假学习的陆陆续续整理到博客上来,原本是想先整理python的,但刚好手头在学这个,就先整理了. 这篇博客时Linux学习的开篇,以前都是用到什么命令就了解一下,这周系统学习了一下常用的命令和相关知识,发现解决了很多之前的困惑,先从Linux的分区和安装的概念说起. Linux安装前要经历四个步骤,分别是:分区,格式化,定义设备文件名,挂载 1.分区 Linux的分区有三种:主分区,扩展分区和逻辑分区. 主分区最多只能有四个: 扩展分区最多有一个,主分区加扩展分区最多

linux磁盘分区

32位系统与64位系统区别? 1.设计初衷不同: 32位系统最开始视为普通用户设计的: 64位系统是为了科学运算与大运算. 2.配置不同 32位上无法装64位系统,硬件不支持: 64位上可以装32位,但是无法发挥最大性能. 3.运算速度不同 4.寻址能力不同 64位最大的物理内存是128G,甚至是16TB的虚拟内存: 32位理论上物理内存是4G,如果想用更大的内存,需要用INTEL,PAE内核支持,超过4G内存. 5.软件普及不同: Linux下看系统版本 Cat  /etc/redhat-re

如何设置Linux swap分区

看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下.什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用.Swap的原理是一个较复杂的问题,需要大量的篇幅来说明.在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节.众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理

Linux 系统分区

合理的系统分区,便于后期管理和提高文件的搜索速度 分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四 个,SCSI,SATA,USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个,不用说大家也知道…..所以主分区从sdb1开始到sdb4,逻辑 分区从sdb5开始,(逻辑分区永远从sdb5开始…)设备名可以使用fdisk –l查看 前言: Linux系统分区结构和windows是有很大区别的 以前初识Linux时,

linux下分区大小改变及fdisk应用

linux下分区大小改变及fdisk应用 实例解说Linux中fdisk分区使用方法 一.fdisk 的介绍 fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具:本人译的不太好,也没有看中文文档:其实就是分区工具. fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux .fat32. linux .linux swap .fat16 以及其实类Unix类操作系统的文件系统等:当然我们

怎么设置Linux swap分区?方法教程

如何设置Linux swap分区 看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下. 什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用.Swap的原理是一个较复杂的问题,需要大量的篇幅来说明.在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节.众所周知,现代操作系统都实现了“虚拟内

企业生产场景下如何对Linux硬盘分区

生产环境: 硬件:华硕PC机,4 Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz,内存4G: 任务:生产场景下如何对Linux硬盘分区,安装CentOS6.9版本,搭建公网环境: 技巧:U盘安装.生产场景分区 1.背景   添加一台新电脑,目前该主机是裸机,没有安装任何操作系统.在安装操作系统之前,先要分区,在这里作者是按企业生产场景环境来分区的,对硬盘分区之前,我们先梳理磁盘分区的相关知识. 2.磁盘分区知识:    为什么硬盘要分区,因为我们要告诉操作系统,从

linux磁盘分区格式化、挂载,文件系统

一.硬盘分区&格式化&挂载 RHEL5强制刷新分区表 partprobe /dev/sdb RHEL6强制刷新分区表 partx -a /dev/sdb 1.创建文件系统:挂载分区&格式化 mkfs.TAB 查看当前系统可创建分区类型 [[email protected] ~]# mkfs. mkfs.cramfs  mkfs.ext3    mkfs.vfat    mkfs.ext2    mkfs.msdos 格式化第一个分区   mkfs.ext3 /dev/sdb1 创建