安装系统呢,难免会有各种问题存在,比如grub安装失败(虽然不是很常见,但是还是会出现)。今天奶牛就来说下对于双系统如何用windows引导起来已经安装好的但是引导没有安装成功的linux系统,这里以fedora为例,ubuntu哇,Arch Linux哇道理也是一样的。安装的情况是这样子的,前面都是正常的安装,然后分区挂载点选择好了之后就开始安装了,但是安装最后一步写入grub的时候提示:
- There was an error installing the bootloader.
- The system may not be bootable.
因为没有写入grub的引导,所以windows是可以正常启动的,进入windows后我们需要安装一个grub4dos。对于grub4dos的安装可以自行google求助,这里不讲,讲下如何手动引导进入linux系统。
- title Fedora 17
- root (hd0,4)
- kernel /boot/vmlinuz-3.3.4-5.fc17.x86_64 root=/dev/sda5
- initrd /boot/initramfs-3.3.4-5.fc17.x86_64.img
- boot
先进入grub4dos的引导,然后选择c进入命令行模式,输入root (hd0,然后按tab,看看自己的linux所在的分区情况。这里详细说下,对于只有根分区跟根分区与boot分区分离的两种情况的引导方式。
第一行root (hd0,4)是你的boot所在的分区,也就是有内核引导文件的分区,而kernel行root=后面的则是你的根所在的分区,而且sda后面的数字是比hd0后面的数字大1的。
这样子来说吧:情况1,只有/分区的时候,因为boot也在/分区下,所以root的进入的是同一个root,所以如上面的引导形式就可以正常引导了。情况2,有/boot分区与/分区的情况下,上面的命令行就需要改变了。比如你的boot在sda4,/在sda5,那么上面的形式应该变为:
- title Fedora 17
- root (hd0,3)
- kernel /vmlinuz-3.3.4-5.fc17.x86_64 root=/dev/sda5
- initrd /initramfs-3.3.4-5.fc17.x86_64.img
- boot
看到变化没有。仔细看下你就明白了。title下的root是boot的所在目录,而文件是由这个root决定的,在linux系统中,boot分区是挂载在根分区的boot文件夹下的,所以在boot分区中,并没有boot文件夹的。
手动的时候输入(hd0,tab可以看到分区的具体情况,kernel /后tab可以看到文件系统下的文件,避免问题,所以根据具体的文件来填写,上面只是范例,initrd行同理的。当两行都输入完成后就输入boot应该就可以正常启动了,当启动都正常后把正常的引导行写回menu.lst就好了。
当然,kernel行可以加一些其它的参数的,这里没有加,可以参考grub.cfg中的参数自行增加就可以了。