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

来源:互联网 发布:期货tick数据下载 编辑:程序博客网 时间:2024/05/15 12:20
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
再重启应该就可以啦。

0 0