总结一下/boot分区被删后的各种悲剧

来源:互联网 发布:怎么修改手机的mac地址 编辑:程序博客网 时间:2024/06/06 10:00

第一:

Ubuntu开机出现grub rescue的模式下修复
  
grub rescue >
网上给出的解决方案:
在此情况下,可以如下解决,并不用重新安装系统
 
第一步,找出你的Linux盘在那个分区以及grub目录在什么位置。
 
如果你还记得最好,忘了也无所谓,使用下面命令逐个试探即可:
 
grub rescue>ls
 
回车后,ls命令会列出所有磁盘分区信息,如:
 
hd0,4),(hd0,7),(hd0,8),(hd0,9)
 
循环使用如下命令,直至显示该分区所包含文件内容而不是unknown filesystem以及其他一些不正常信息
 
grub rescue>ls (hd0,0)/boot/grub
 
(查看了所有分区,没有一个分区有/boot文件)
 
第二步:
 
grub rescue>set  root=(hd0,8)
 
//括号里分区为上一步尝试成功的分区,即linux grub 所在分区
 
grub rescue>set  prefix=(hd0,8)/boot/grub
 
第三步:
 
grub rescue>insmod  normal.mod
 
网上有些insmod /grub/normal.mod的,我的Ubuntu 10.04并不成功
 
至此,应该退出了grub rescue模式,进入了熟悉的grub模式
 
第四步:
 
grub>normal
 
第五步:修复grub
 
进入Linux系统后,在命令行里
 
sudo  update-grub
 
第六步:
 
sudo grub-install /dev/sda              //sda是你的启动磁盘



第二:
继续搜,live cd 救援:
ubuntu用livecd修复grub2
 
首先用livecd启动,然后在终端下切换到root权限:(你不嫌麻烦的话可以跳过这一步,在一下的每一步前面加sudo)  www.2cto.com  
sudo -i
 
接下来找一找你ubuntu10.04所在分区,用:
 
fdisk -l
 
我的部分输出如下:
 
Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         914     7341673+  12  Compaq diagnostics
/dev/sda2   *         915        4967    32554359    7  HPFS/NTFS
/dev/sda3            4968        8006    24410767+  83  Linux
/dev/sda4            8007       19457    91980126+   5  Extended
/dev/sda5            8007       14085    48829536   83  Linux
/dev/sda6           14086       14328     1951866   82  Linux swap / Solaris
/dev/sda7           14329       14344      128488+  83  Linux
/dev/sda8           18485       19457     7815591    b  W95 FAT32
/dev/sda9           14345       18308    31839232   83  Linux
/dev/sda10          18308       18484     1413120   82  Linux swap / Solaris
 

下面挂载原系统的根目录:
 
mount /dev/sda9 /mnt
 
将/dev/sda9挂载到了/mnt下,当然你也可以选其他地方,这里注意如果你有单独为/boot分区的话,要单独挂载一次/boot,比如说 如果你原来的/boot挂载到/dev/sda12上了,那个你这里要再输入mount /dev/sda12 /mnt/boot。我这里没有把它单独分出来,所以就不需要了。
下面是最后一步了:
 
grub-install --root-directory=/mnt /dev/sda
 
这里我刚开始的时候自做主张的写成了grub-install –root-directory=/mnt /dev/sda9,同学们不要学我,- -!
 
如果看到
 
Installation finished.No Error Reported.
 
就表示已经成功啦!重启看看,熟悉的grub引导画面是不是又回来了?
悲剧的是我的出现的是grub>命令行界面
第三、继续搜:

一. Grub是一个非常好用的系统启动器,可以引导linux、dos、win、freebsd等多个系统。
二. 它引导的时候去寻找/boot/grub/menu.lst文件,把里面的启动列表显示出来供用户选择
但是如果grub出了问题,找不到menu.lst文件,就会出错,停留在grub>模式下。
别着急,即使到了这一步,也还是有办法可以进入系统的,这时候可以在命令模式下进行操作,这也是grub强大的地方,下面列出的命令,是进入系统必须的步骤:
root  (hd0,0)
kernel  /vmlinuz root=/dev/hda3

(悲剧又发生了:kernel命令找不到)搜了一下grub2不用kernel改用linux改为linux /vmlinuz root=/dev/hda3,悲剧继续:提示找不到文件)
boot

其中,root  (hd0,0)这一行是挂载启动分区,使得里面的内核文件可以被访问到。(hd0,0)指的是第一块硬盘的第一个分区,要视具体情况而定,填写自己的启动分区区号。

kernel  /vmlinuz root=/dev/hda3这一行加载系统内核,并且挂载根文件系统“/”,供读取文件用。/vmlinuz就是要挂载的系统内核,当然也可以写详细些,比如/vmlinuz-2.4.20-8,如果你知道自己的内核版本(或者通过按TAB键获得帮助)。root=/dev/hda3指定根分区“/”的位置,我的位置在/dev/hda3,所以我这样写,也是要根据自己的情况填写。

最后,boot这个命令是必须的,有了它就是说明按以上的参数启动系统了。

注意:虽说看起来很简单,只有简单的3行,但是有一些前提条件影响着你的执行结果,你必须知道自己的启动分区的位置,还有根分区“/”的位置,否则是进入不了系统的。

第四、继续搜:

linux下/boot目录丢失的恢复  

1,查看分区,boot分区是独立的,进入boot后删掉所有的文件

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

2,删除boot启动之后的启动画面,因为vmlinuz-*和initrd-*都在/boot目录下,所有是不可能手动指定内核的路径点

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

3,利用镜像按esc,进入rescue模式

root:

输入:linux rescue 找不到could not find kernel image:linux 彻底悲剧了这可怎么办啊(求大神解决)

4,提示当前的系统被挂载在/mnt/sysimage下边,系统会去查找/ect/fstab文件,如果有就会有下边的提示,如果没有会告诉你没有任何分区

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

5,使用chroot 来改变当前的操作路径,不然是对内存中的系统操作

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

6,建立一个目录/cdrom,将光驱挂载,查找kernel相关的包

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

如何知道/boot下边的内核文件是由哪个包生成的呢?在别的机器上用rpm -qf file来查询

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

7,强制安装内核包,要加参数--force强制安装,不然提示包已经安装

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

8,查看/boot目录,多文件了

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

9,但是删掉了/boot目录内容的时候也把grub的stage2删掉了,下边就需要安装grub了,如果是安装在mbr中用,路径用/dev/sda,如果是装在分区的superblock中,需要用/dev/sdax,x代表具体的分区。现在就发现多了grub目录了

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

10,但是grub目录中并没有grub.conf文件,也就是说系统启动还是无法找到正确的引导文件, linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

就需要编辑配置文件,添加如图所示行

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

11,重启就可以看到grub界面了,系统就可以启动了

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

linux下/boot目录丢失的恢复 - xuxd32 - xuxd32的博客

最后:
按第二:挂在完,插入u盘拷贝吧。悲剧又发生了cp: failed to preserve ownership for `/mnt/a/ets/linuxsoft/mysql-5.0.37': Operation not permitted
更改权限,cp + -r 最后重要资料基本复制出来了
参考资料:搜:


http://www.2cto.com/os/201306/217520.html
http://blog.csdn.net/mayabin/article/details/968497
http://xuxd32.blog.163.com/blog/static/4812193320091016102226668/
http://www.2cto.com/os/201212/176373.html

0 0