本帖最后由 YMr6bnaR 于 2017-11-3 19:55 编辑
来到黑马学习不知不觉已2月有余,总体感觉这里的学习氛围还是不错的,一个集体的学习氛围其实很大程度上决定了一个人学习的状态,老师也比较负责,在休息的时候也会给我们补课…… 写感想不是我的擅长,话不多说,直接进入正题 以下文字针对windows和linux双系统的用户有帮助
前天由于电脑的突然断电,导致硬盘出现坏道,顺便说一句,突然断电对计算机的伤害确实比较大的 所以有条件的最好配一个ups,直接导致我的两个系统都进不去,windows系统进不去,是由于硬盘的坏道,而linux系统没进不去,是由于我在重装windows7系统的时候,对分区表的修改问题
定位不能启动的根源,并将其修复是非常耗费时间的,急着要用电脑,所以直接选择重装,win7 与其说是重装,不如说还原来的贴切,使用winpe系统进入,并还原,系统重装本身花不了多少时间,关键是自定义的软件,要装很久
接下来准备修复linux系统的启动问题,我的电脑引导加载程序是windows的boot manager,windows接着调用grub2,(注意,版本是2),以此来完成两个系统的启动,上一次和grub打交道还是在去年,印象有点模糊了 打开diskgenius,无法识别linux分区,扫描丢失分区也只能找到唯一的一个启动分区
直接通过easybcd,添加启动点,重新启动,发现进不去
直接进入了grub4dos命令行 执行ls命令也只能显示c盘下的文件
接着,通过livecd,或者U盘启动进入ubuntu,i浏览文件,居然根本就无法识别linux分区,使用gparted,整个硬盘显示未格式化
以下是重点,使用testdisk,这是一个命令行程序,可以完整识别整个硬盘分区,对硬盘分区进行必要的操作,并保存后,分区修复完成
重新进入windows系统,添加bcd入口,重启后分区可以识别 但是仍然不能进入系统,进入的是grub rescue界面
使用ls命令,罗列所有的磁盘分区信息 依次调用如下命令:X表示各个分区号码
grub rescue>ls (hd0,X)/boot/grub X是上边显示的各个数字
这个过程很枯燥,但是除非你记得linux启动区安装位置,否则只能一个一个尝试
当显示的不再是Unkown file system,表示该分区就是linux启动区(linux启动区因人而异,我的通常做法是/boot另外分区)
调用如下命令:
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod normal
grub rescue>normal
这四条命令中的前两条因人而异
至此,正常进入系统,该图显示的是gnome3
工作没有做完,进入Linux之后,在命令行执行:
sudo update-grub
还有一条,这是重点
如果你在网上搜索相关教程,接下来这条是
sudo grub-install /dev/sda
这条命令会覆盖硬盘mbr
但我有一个原则,能在最坏的情况下也能使电脑正常运行,所以我从不用grub引导windows,永远只用windows的boot manager引导linux
所以只安装到/boot分区,而非整个硬盘
执行
sudo grub-install /dev/sda7(该数字因人而异)
在正常情况下,总会报错
Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub-setup: error: will not proceed with blocklists.
在这里,我使用了--force参数
sudo grub-install --force /dev/sda7
至此,所有工作完成
说来简单,如果没有相关参考,很难进行
除了多用man命令
参考链接:
https://help.ubuntu.com/community/DataRecovery
https://ubuverse.com/recover-a-disk-partition-with-testdisk-and-gparted-live/
https://askubuntu.com/questions/139966/how-can-i-add-an-entry-for-ubuntu-to-the-windows-7-boot-menu
http://www.cnblogs.com/studyone/p/5500679.html
https://wiki.debian.org/BootLoader
|