CentOS 6系统中/boot恢复被删除的/boot分区 简单介绍

在CentOS
6系统中,因为不小心或操作失误导致boot分区被删除,


遇到这种情况是否能够恢复被删除的boot分区呢?


  1.首先利用centos6镜像进入linux rescue救援模式。


  2.启动sshd服务,查看eth0获取的ip地址,然后用ssh secure shell 连接。

  

SSH Secure Shell 3.2.9 (Build 283)
  Copyright (c) 2000-2003 SSH Communications Security Corp - 
http://www.ssh.com/
  This copy of SSH Secure Shell is a non-commercial version.
  This version does not include PKI and PKCS #11 functionality.
  [[email protected] ~]# cd /boot //进入/boot分区
  [[email protected] boot]# ls //查看boot分区的内容
  config-2.6.32-71.el6.i686 symvers-2.6.32-71.el6.i686.gz
  grub System.map-2.6.32-71.el6.i686
  initramfs-2.6.32-71.el6.i686.img vmlinuz-2.6.32-71.el6.i686
  [[email protected] boot]# cd 。。//返回上层目录
  [[email protected] /]# rm -rf /boot/*//删除/boot分区所有内容
  [[email protected] /]# ls /boot//查看/boot分区内容为空
  [[email protected] /]# mount /dev/sr0 /mnt//挂载cdrom设备到/mnt目录下
  mount: block device /dev/sr0 is write-protected, mounting read-only
  [[email protected] /]# rpm -ivh /mnt/Packages/kernel-2.6.32-71.el6.i686.rpm 
--root=/ --

force //安装光盘的kernel软件包

 

 Preparing.。。 ########################################### [100%]
  1:kernel ########################################### [100%]
  [[email protected] /]# ls /boot //查看/boot分区内容
  config-2.6.32-71.el6.i686 System.map-2.6.32-71.el6.i686
  initramfs-2.6.32-71.el6.i686.img vmlinuz-2.6.32-71.el6.i686
  symvers-2.6.32-71.el6.i686.gz
  [[email protected] /]# mkdir /boot/grub//在/boot目录新建一个grub目录
  [[email protected] /]# touch /boot/grub/grub.conf//新建一个grub.conf配置文件
  [[email protected] /]# cp -rf /usr/share/grub/i386-pc/* /boot/grub/ 
//

把/usr/share/grub/i386-pc的所有内容拷贝到/boot/grub中。

  

[[email protected] /]# ls /boot//查看/boot分区内容
  config-2.6.32-71.el6.i686 symvers-2.6.32-71.el6.i686.gz
  grub System.map-2.6.32-71.el6.i686
  initramfs-2.6.32-71.el6.i686.img vmlinuz-2.6.32-71.el6.i686
  [[email protected] /]# ls /boot/grub/ //查看/boot/grub目录内容
  e2fs_stage1_5 iso9660_stage1_5 stage1 vstafs_stage1_5
  fat_stage1_5 jfs_stage1_5 stage2 xfs_stage1_5
  ffs_stage1_5 minix_stage1_5 stage2_eltorito
  grub.conf reiserfs_stage1_5 ufs2_stage1_5
  [[email protected] /]# fdisk -l //查看分区
  Disk /dev/sda: 21.5 GB, 21474836480 bytes
  255 heads, 63 sectors/track, 2610 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x000b1db4
  Device Boot Start End Blocks Id System
  /dev/sda1 * 1 13 102400 83 Linux//这个为/boot启动分区
  Partition 1 does not end on cylinder boundary.
  /dev/sda2 13 144 1048576 82 Linux swap / Solaris

  

Partition 2 does not end on cylinder boundary.
  /dev/sda3 144 2611 19819520 83 Linux //这个为/根分区
  [[email protected] /]# mount//查看所有挂载分区
  /dev/sda3 on / type ext4 (rw)//根分区
  /dev/sda1 on /boot type ext4 (rw)//boot分区为sda1
  devpts on /dev/pts type devpts (rw)
  tmpfs on /dev/shm type tmpfs (rw)
  proc on /proc type proc (rw)
  sysfs on /sys type sysfs (rw)
  /dev/sr0 on /mnt type iso9660 (ro)
  [[email protected] /]# grub//启动grub
  Probing devices to guess BIOS drives. This may take a long time.
  GNU GRUB version 0.97 (640K lower / 3072K upper memory)
  [ Minimal BASH-like line editing is supported. For the first word, TAB
  lists possible command completions. Anywhere else TAB lists the 
possible
  completions of a device/filename.]
  grub》 root (hd0,0) //首先find /grub/stage1查看/boot分区为(hd0,0)
  root (hd0,0)//设置/boot分区为/dev/sda1
  Filesystem type is ext2fs, partition type 0x83
  grub》 setup (hd0)//重新安装grub
  setup (hd0)

 

 Checking if “/boot/grub/stage1” exists.。。 no
  Checking if “/grub/stage1” exists.。。 yes
  Checking if “/grub/stage2” exists.。。 yes
  Checking if “/grub/e2fs_stage1_5” exists.。。 yes
  Running “embed /grub/e2fs_stage1_5 (hd0)”。。。 26 sectors are embedded.
  succeeded
  Running “install /grub/stage1 (hd0) (hd0)1+26 p (hd0,0)/grub/stage2 
/grub/grub.conf”。。。 succeeded
  Done.
  grub》 quit//退出

  3.重新reboot启动系统进入grub界面测试


  4.查找find /grub/stage1然后找到/boot分区为(hd0,0),指定kernel,initrd,
boot启动系统成功。


  5.系统启动成功,然后进入系统重新写/boot/grub/grub.conf文件。


  6.[[email protected] /]# vi /boot/grub/grub.conf配置文件如下:


  最后填写grub.conf文件内容

  default=0 //默认菜单为第一个

  timeout=6//等待时间为6秒

  title mylinux //启动标题为mylinux

  root (hd0,0) //boot所在分区为/dev/sda1

  kernel /vmlinuz-2.6.32-71.el6.i686 ro root=/dev/sda3 rhgb
quiet//kernel所在位置以只读模式挂载/dev/sda3根分区rhgb quiet为安静模式不显示内核信息。

  initrd /initramfs-2.6.32-71.el6.i686.img//加载initrd镜像。

  7.最后进入linux rescue重建一个grub


  8.最后启动界面如下


  上面就是CentOS 6恢复被删除boot分区的方法介绍了,步骤有些长,如果觉得麻烦的话可以重装系统,同样能恢复boot分区。

时间: 2024-08-04 03:46:21

CentOS 6系统中/boot恢复被删除的/boot分区 简单介绍的相关文章

Linux系统中如何添加及删除网关

Linux系统中如何添加及删除网关 如何添加网关: 1.临时添加网关 route add default gw x.x.x.x 临时加网关,马上生效 2.永久添加网关: vim /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=x.x.x.x 或者 vim /etc/rc.local .. route add default gw x.x.x.x 注意: 加网关只能加你已经有的路由网段里的一个IP才行 加网关可以不用指定子网掩码(因为是已有的一个

jquery删除指定li元素简单介绍

jquery删除指定li元素简单介绍:本章节介绍一下如何利用jquery删除指定的li元素,虽然比较简单,但这也是比较常见的操作,可能很多初学者还是不够了解,下面就通过代码实例介绍一下如何实现此功能,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.sof

详解CentOS 7系统中MBR引导扇区恢复方法

MBR引导扇区介绍 MBR位于物理硬盘的第一个扇区(512字节),该扇区又称为主引导扇区(MBR扇区),除了包含系统引导程序的部分数据外,还包含整个硬盘的分区表记录.当主引导扇区发生故障时,将可能无法进入引导菜单,或者因无法找到正确的分区位置而无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态. MBR 扇区故障恢复 下面将通过示例介绍对MBR扇区进行备份.模拟破坏.修复的过程.由于 MBR 扇区中包含了整个硬盘的分区表记录,因此该扇区的备份文件必须存放到其他的存储设备中. dd命令--用指定

Linux系统通过extundelete恢复已删除的数据

我们都知道windows系统有个回收站,凡是被删除的文件都可以通过回收站来恢复数据,即便是按住shift键永久删除了,也有很多数据恢复软件可供使用.那么Linux下如果数据被删除了,又该如何恢复呢,Linux系统可没有回收站,只能通过数据恢复软件来解决了.Linux系统有很多开源的数据恢复工具,例如:debugfs.R-Linux.ext3grep.extundelete等,那么我要给大家介绍的是extundelete,这款工具是用来恢复ext格式(ext3.ext4等)的文件系统被误删除的数据

双系统(win8.1+ubuntu14.04)删除win下分区导致grub rescue解决方案

几个grub rescue下的命令的含义: set 设置环境变量 ls 查看设备 insmod 加载模块 root 指定用于启动系统的分区 prefix 设定grub启动路径 操作流程: 1.  先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue>ls 会罗列所有的磁盘分区信息,比方说: (hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1) 2. 然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字 之间没有空格

java中String、StringBuffer和StringBuilder的区别(简单介绍)

简单介绍 java中用于处理字符串常用的有三个类: 1.java.lang.String 2.java.lang.StringBuffer 3.java.lang.StrungBuilder 三者共同之处:都是final类,不允许被继承,主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着,且考虑到防止其中的参数被参数修改影响到其他的应用. StringBuffer是线程安全,可以不需要额外的同步用于多线程中; StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但

安卓中的数据存储方式以及ContentProvider的简单介绍

1.介绍android的数据存储方式 File存储 sharedPrefrence存储方式 conmtentprovider sqlitedatabase 网络存储 2.请介绍下ContentProvider是如何实现数据共享的 安卓中如果想将自己应用程序的数据暴露给其他的应用程序的时候就需要创建内容提供者.第三方可以通过contentResolver来访问该provider 3.为什么要使用ContentProvider?它和sql的实现上有什么差别? ContentProvider屏蔽了数据

java类中的static成员变量和static方法简单介绍,持续补充

一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方法 1.静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员:如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量 2. 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量 3. 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法 注

Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法:

---------------------------------------------------------------------------------------------------------------------------------------- QTime::QTime() 默认构造函数,构造一个时,分,秒都为0的时间,如00:00:00.000(午夜) QTime::QTime(int h, int m, int s=0, int ms = 0) 构造一个用户指定时