您的位置:首页 > 其它

ubuntu安装windows系统引导丢失修复

2014-12-31 10:16 309 查看
ubuntu 安装windows出现的grub丢失 (没有动分区)
(1)从U盘启动试用版ubuntu

(2)找到原有ubuntu系统分区,最后一个字段system ->是linux

sudo fdisk -l


(3)挂载系统所在分区

mount /dev/sda7 /mnt


(4)安装grub

grub-install --boot-directory=/mnt     /dev/sda


(5)重新启动,进入ubuntu 更新grub

sudo update-grub


ubuntu 安装windows出现的grub丢失 (动了分区,我这里合并了C,D盘)

一般情况下,出现以上情况基本可以恢复系统的引导。 但是这一次,我将原来的C,D盘合并重新安装了windows系统。当然原来F盘装的ubuntu系统引导信息就丢失了。然后我尝试做修复。同样采用以上的步骤。结果重新启动时。停留在 grub界面。然后我尝试用grub中的命令尝试手动引导,但是发现连root,kernel之类的命令不可用。

于是再次通过U盘启动盘进入试用版ubuntu.先更新了grub.

sudo apt-get install grub


然后再重新安装grub到sda.

sudo grub-install    /dev/sda

再重新启动,这下root, kernel之类的命令就可以用了。进入grub界面。grub>

开始手动引导原有ubuntu系统

root (hd0,6)


这里大家不要想当然,最好确认一下是不是自己的ubuntu分区。技巧是使用tab键,会自动补齐。如果(hd0,X)是你的ubuntu根分区的话,(hd0,x)/boot/ 这样可以访问到根目录的文件,看是否是正确的。找到了才有意义,因为内核镜像和文件系统找到才能正常启动。指定内核镜像,和文件系统

kernel /boot/vmlinux-xxx    ro root=/dev/sda7


这里就是指定linux内核镜像和真正文件系统的位置。这里看起来有点奇怪,在grub中明明找到的(hd0,6)这个分区,但是这里文件系统指定确又是/dev/sda7.   一般IDE硬件是用hd标识,SATA硬盘就用sd来标识。但是在grub中好像都是直接用的hd, 我的电脑上只有一块硬盘,这里就是hd0. 但是如果进了ubuntu去看的话,分区显示的都是/dev/sdaX。这些都是命令的细节,没必要死扣,能解决问题就行啦。这里root=/dev/sda7.我也是通过U盘启动盘进系统看到的。一开始我用root=/dev/hda6
 之类的来试,一直提示找不到。我的理解是grub也就是bootloader,所以当内核跑起来后,先是起来虚拟文件系统initrd, 然后再去加载真正的文件系统,所以他所识别的,自然是按他的命令来确定的。也就是这里传递的参数应该是/dev/sda7。继续:

initrd /initrd.img


这里指定虚拟文件系统的位置 ,这个位置也需要指定对。这个正确的一般可以启动到initramfs界面,如果上面真正的根文件系统指定错误的话。ubuntu下面用这个是通用的,这是一个软链接。

initrd.img -> boot/initrd.img-3.8.0-29-generic。 真正的文件还是在/boot目录下。以前完成就可以正式启动了。

boot


总结:要能正常启动系统,无非四个重要的点,找到系统存在分区,找到内核镜像位置,文件系统位置,虚拟文件系统位置,为什么要先跑个虚拟文件系统,google一下吧。

系统启动后,更新一下grub配置文件。

sudo update-grub


为了下次能自动引导, 最好是重新安装一下grub, 因为之前通过U盘启动系统安装的grub版本和当前系统的grub版本不一致,所以这里update-grub产生的引导信息,老的不一定能用,我这里就遇到这样的情况。所以干脆重新再安一次。

sudo grub-install /dev/sda


再重启应该就可以啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息