grub引导windwos与Linux

两块硬盘,安装双重引导系统,在windows的基础上安装Linux,误操作,将linux的boot loader装在了第二块硬盘上(windwos 的boot loader在第一块硬盘上),然后开机出现grub,只能通过grub手动引导系统

工具书上说,如果将linux的boot loader安装在装有Windows的硬盘上,则将会覆盖MBR,但实际操作表明,MBR并不会被覆盖,可能是装在了逻辑分区的第一个扇区上,或者其他;如果两个操作系统的boot loader没有在同一硬盘,才会出错,比如以上的情况,导致MBR被破坏,需要pe系统修复MBR,或者重装系统。

ps:后来发现的一个误区:

        如果无法开机(进入到windows桌面)则需要PE修复MBR,如果可通过grub进入windows系统,直接利用diskgenius修复MBR即可

否则就只能通过grub手动引导操作系统。

-grub引导windwos

直接在gurb命令窗口依次输入以下命令:

rootnoverify (hd0,0)    #(hd0,0)表示第一块硬盘的第一个分区
chainloader +1
boot    #引导命令
-grub引导Linux

grub引导Linux,需要找到/boot分区(如果有),/分区,找到内核以及内核映像。

首先你要清楚是否进行了/boot分区,是否对/boot单独进行分区,输入的命令会有不同,所以下面也分两种。

-独立/boot分区

输入以下命令:

root (hd    #Tab补全,这个命令是看你电脑有几块硬盘,标号从0开始

接下来找到装有Linux系统的硬盘分区

root (hd0,    #Tab补全,补全后显示的是此硬盘的分区信息 后面数字0x83表示普通linux分区,0x82为swap分区,unknown的话,可能是你的windows分区了

根据分区的号码,输入以下命令,一个一个去试,找到/etc/fatab,此文件中有linux系统的分区信息,而且此文件的位置即在/分区下,找到此文件,就找到/分区,你需要记录下/分区所在的硬盘位置,在引导的时候需要用

cat root (hd0,*)/etc/fatab
#*为你在上条命令中找到的分区号码,一个一个去试,如果找到/etc/fatab文件,会显示分区信息

找到/etc/fatab文件后,会显示分区信息,需要注意是否有LABEL=/boot字样,如果有的话表示/boot为独立分区,上面已经说过,要记下/etc/fatab文件所在的分区(即/分区),接下来开始找/boot分区,方法也是一个一个去尝试

root (hd0,*) #进入到第一块硬盘的*号分区
cat /vm  #Tab自动补全,如果出现补全内容,表示此分区即为/boot分区,同样需要记下分区号码

找到/,/boot分区之后,大功告成,开始输入一串命令来引导Linux

root (hd0,8)  //8为/boot分区号码
kernel /vm ro root=/dev/sda9
#/vm要Tab补全,找到的就是你的内核,ro 只读,
#root=/分区位置,这里要注意的是此号码是从1开始,把之前你记录好的/boot分区号码+1即可(因为hd0,*是从0开始计算)
initrd /in  #Tab补全,找到的是内核映像.img文件
boot  #启动Linux
-无/boot分区

其实跟上面原理、方法都一样,只是输入的命令小有差别而已,直接上命令

root (hd0,11)  #/分区位置,因为没有/boot,所以linux就在/分区下
kernel #/boot/vm ro root=/dev/sda12  #与之前有点差别,指定的是/分区下,/boot/vm...
initrd  /boot/in  #指定的位置是/分区下,/boot/in...

差不多就是这样,以上是菜鸟总结,如果有错误,欢迎指摘。



猜你喜欢

转载自blog.csdn.net/ivorybeach/article/details/80296874