破坏的过程:
我的电脑是双系统,Windows8.1和Ubuntu14.04。。当时我在ubuntu下玩一些和硬盘有关的命令,用fdisk命令去对分区进行处理,当时就发现硬盘上还有几M的空闲空间,,就顺手把这空闲的空间给分区了,结果重启电脑ubuntu就进不去了,黑屏提示有rescue>,也在网上找了一些教程处理没多大用。。。
修复的过程:
一,也不能完全说是修复,,因为windows系统是完全恢复了,ubuntu却重新装了,如果重来一遍应该都不会重装^+^。。
在发现多数网上的教程无效后,,就试着制作了一个ubuntu live usb,就是可以从优盘启动ubuntu并可以试用,,这里把制作的过程说一下(有些图片不是本人提供的,引用自linux公社,但是亲试是一样的,故障可以参看下面的注意):
1,所需要的东西:UltraISO软件和ubuntu光盘镜像.iso文件。。
2,安装好UltraISO软件,并插入优盘,点击UltraISO的“文件”选项卡,打开.iso文件,然后点击“启动”选项卡--->写入硬盘映像,如图1所示。
图1 制作ubuntu live usb
接着会弹出一个窗口,如图2所示。
图2 选择写入硬盘映像的方式
在图2中(网上当的),硬盘驱动器选择你所使用的优盘(只有一个优盘的情况下会主动识别),映像文件:会主动识别,写入方式:一般选择默认的USB-HDD+,然后选择格式化,就是图2中被企鹅遮住的那部分,选择文件系统的格式为fat32。
图3 写入硬盘的引导扇区选择(注意别被非重点吸引了)
在格式化完成后,非常重要的一步(不然会制作的会无法启动),点击便捷启动-->写入新的驱动器引导扇区-->Syslinux,,最后点击写入,,等待完成即可。。
3,选择开机进入优盘,我的是联想电脑(不同的电脑可能不一样,注意观察开机的时候黑屏幕最下方的提示),,开机时按F2可以进行选择进入,,然后选择对应的优盘,按Enter键就可进入。
注意:
(1),如果出现优盘被占用的错误 警告,可以尝试这重新插优盘 或者 换一个版本的UltraISO来做。。
(2),制作成功,无法启动,打开U盘目录下的\syslinux\syslinux.cfg,将default vesamenu.c32注释为 # default vesamenu.c32。。
二,进入ubuntu live usb后,会有 try ubuntu 和install ubuntu的选项,就选择try ubuntu即可,,就可以进入到ubuntu的桌面环境来了,这时我使用的是网上推荐的linux下常用的数据恢复软件testdisk for linux,,我当时使用时的截图被我搞丢了,教程大家可以上网上找一下,,我所犯的主要错误就是在恢复分区的时候没有注意到主分区,,扩展分区,,主引导分区这些就匆匆的恢复了,,结果开机就是黑屏加一个下划线在动。。。。暂时就不再进入ubuntu live usb 使用testdisk了,,担心造成进一步的损坏。。
三,接着就决定使用windows的相关工具试试,,就使用了老毛桃的pe了,,把pe制作到优盘里,,开机进入优盘,进入pe的windows环境,这时数据大部分是可以拷出来出来的,,但是由于数量巨大就没有做。。pe中有一个分区软件,就打开了看看,,结果发现可以对分区进行修复,,就果断的使用了这一功能,,寻找分区然后恢复,,重启系统,,结果我的windows系统可以正常使用了,,但是ubunut依然进不去。。这时看到了希望了。。
四,ubuntu也不是完全进不去,,只是会显示filesystem error,,grub rescue> 这个也上网找了一些教程,,懒得看结果也没有修复成功。。于是就决定重新安装安装ubuntu,,就进入windows格式化ubuntu所占的分区,,在这是有一个分区同样又是几M的空间,,又不顺眼,,又把其删除了,,结果就是windows系统的D盘变成了RAW格式的,,也就打开时会显示无法读取,,格式错误,,需要格式化一类的消息,,在右键属性中,已用空间和未用空间都是0。也是找了很多办法想恢复D盘,,结果未果,,暂时就算了吧,,安装ubuntu吧(在我的某篇blog中有详细介绍)。。
五,安装完成后,,就进入windows继续对D盘处理。
D盘在磁盘管理里面查看格式是RAW,右键属性D盘显示可用0字节,已用0字节。。找了很多教程,有的说是进入安全选项,但是我没有成功。。最后还只找了一个数据恢复软件,,叫做超级硬盘数据恢复软件(SuperRecovery)解决的:
1,打开软件
图1 选择恢复丢失的分区
2,点击下一步
图2 选择相应的硬盘
3,继续点击下一步
图 3 再点下一步
4,完成后,会出来几个分区,选择需要恢复的分区,点下一步即可。。不过恢复的不是分区,而是目录结构与文件,把文件拷到另外一个分区。。最后把RAW格式的分区进行格式化,,新建分区,,再把文件复制回去,,各种软件就可以正常使用了。。
六,
1,Window下的D盘搞定以后,,这次再次进入ubuntu系统时,,出现图1所示的错误。
图1 错误信息
图1中的错误信息我以前见到过,但是没有修好过,这次很有信心,因为这次分区没有被破坏,只是grub出现了问题,可以轻易恢复的(本文讲述的是boot分区没有独立分出的)。
2,首先ls一下,
命令:grub rescue> ls 结果如图2所示,可以看到有很多分区,(hd0,msdos9),(hd0,msdos5),(hd0,msdos2)等。
图 2 ls结果
3,这时需要一个一个的试分区,从(hd0,msdos1)开始,msdosX表示各个分区,注意 msdos 与 数字 之间没有空格!命令:
grub rescue>ls (hd0,msdosX)/
,如果出现了如图3所示的信息,Filesystem is ext2 ,./ ../ lost+found 等一些信息说明找到了根目录,再注意观察一下有没有boot/ 。
图3 寻找boot
4,找到boot/后就可以开始进行修复了,msdosX中的X需要用到实际数字,就是上一步试出来的那个数字,例如图3中的是(hd0,msdos7),则所用命令:
grub rescue>set root=(hd0,msdos7)
grub rescue>set prefix=(hd0,msdos7)/boot/grub
grub rescue>insmod /boot/grub/i386-pc/normal.mod
grub rescue>normal
这时菜单就可以出现了,进入ubuntu之后还要进行一些工作,不然的话以后开机还会出现同样的问题。
在ubuntu中,调出终端,按Ctrl+Alt+T,输入命令($不用输入):
$sudo update-grub
重新启动试试是否已经可以正常进入ubuntu,如果不行的话,可以使用一下命令:
$sudo update-grub
$sudo grub-install /dev/sda
如有问题需讨论[email protected]
5,方法二:网上查的,没有试,不过认为可行,也是修复grub rescue>的
(1)在liveCD模式进入UBUNTU,插入光盘,选择try ubuntu就是。
(2)安装Boot-Repair,先联网,然后打开终端,输入如下命令:
$sudo add-apt-repository ppa:yannubuntu/boot-repair
$sudo sh -c "sed -i 's/trusty/saucy/g' /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list"
$sudo apt-get update
$sudo apt-get install -y boot-repair && boot-repair
(3)修复就是了,真是好简单。
总结:至此已经完全完成了,对于自己不小心搞的错误也付出了一天的时间来修理,不过也学到了很多东西。
1,gurb rescue环境下的命令解释。
set 设置环境变量
ls 查看设备
insmod 加载模块
root 指定用于启动系统的分区
prefix 设定grub启动路径
2,对boot loader的理解。