ubuntu12.04 grub无法写入MBR。ubuntu12.04和win7双系统。(待解决)

今天在已经有win7的台式机上安装ubuntu12.04.安装完成后,重启,没有提示grub,直接就进入win7了。

用U盘安装盘引导进入启动的grub菜单。用命令手动引导,是可以引导进入ubuntu12.04的。

在grub按e进入命令模式,引导命令如下:

grub>linux (hd1,msdos2)/boot/vmlinuz-3.2.0-23-generic root=/dev/sda2
grub>initrd (hd1,msdos2)/boot/initrd.img-3.2.0-23-generic
grub>boot

因为我是U盘引导的,所以我的hd1对应了真正的物理硬盘。这里的盘符,和分区(hdx,msdosx),替换为你们自己的。

引导进入ubuntu12.04没有问题。猜想是grub没有安装到MBR里面。


sudo dd if=/dev/sda of=mbr.img bs=512 count=1
sudo update-grub
sudo grub-install /dev/sda


备份mbr更新grub,安装到MBR。重启电脑。

但是却并没有如预期的那样,grub还是没有安装到MBR,重启依旧直接进入win7。

再次进入ubuntu12.04试试。

witch grub-setup 发现

grub-setup不存在。

grub-install按理说最终是要调用grub-setup把第一阶段引导安装到指定的设备的。

估计是安装盘里的grub有问题。

源码编译安装grub。

apt-get source grub2
cd grub2-1.99
./configure --prefix=/usr
make
sudo make install
sudo update-grub
sudo install-grub /dev/sda

重启,grub出现,能引导进linux,但是引导win7会Windows failed to start错误,错误代码0xc00000e。

还好备份了mbr,进入linux恢复mbr。

sudo dd if=mbr.img of=/dev/sda bs=446 count=1

重启,进入win7。

暂时先用easyBCD增加grub2入口。通过win7的bootloader来引导grub2。以后想个办法用grub2把win7给引导了。




你可能感兴趣的:(ubuntu12.04 grub无法写入MBR。ubuntu12.04和win7双系统。(待解决))