大家好,又见面了,我是你们的朋友全栈君。
安装linux,vista/win7双系统后,怎么引导是个问题 理论上,可以从windows的boot loader引导linux,也可以linux的grub引导windows 但windows更霸道,经常霸占MBR,所以最好是linux不放MBR,然后从windows的boot loader引导linux 把linux装在自己的分区,不要在MBR 然后把linux分区的头512字节弄成一个文件,拷到boot loader所在的分区根下 dd if=/dev/sda1 of=/tmp/linux.bin bs=512 count=1 cp /tmp/linux.bin /media/你的window c分区 到windows上执行: bcdedit /create /d “GRUB” /application BOOTSECTOR 下面的{LinuxID}改为此命令输出的id bcdedit /set {LinuxID} device boot bcdedit /set {LinuxID} PATH \linux.bin bcdedit /displayorder {LinuxID} /addlast bcdedit /timeout 10
因为Win7(Vista同理)的激活方式是通过grub摸你OEM的Slic信息,所以主引导分区MBR被这个grub占用,以此才能激活WIn7。但是如果想同时安装Linux在别的分区,就会产生问题:grub不能往MBR添加,否则会破坏Win7的激活。 网上有一些复杂的方法,但是要输入一大堆命令行。这里提供自己摸索的最简单的无需命令行的方法。 而且重装win7或者linux都可以很容易修复。 1、正常安装Win7到C盘,并激活。 2、正常安装Linux到其他分区,最后要求写入grub时,选择Linux挂载点为/的分区!这一步很重要,因为grub写入linux所在分区不会将MBR的grub覆盖!3、这时Win7可以正常启动,但是没有选项来选择进入linux。下载easybcd这个软件,现在最新的是EasyBCD_2.0_Beta_-_Build_60,越新越好。 4、打开easybcd,在add/remove entry里面,选择linux,Type选择grub,在Name添加上你想要的名字,随便写一个如archlinux,Driver选linux所在的分区。这里选择的分区要和刚才安装linux时grub安装的位置一致。可能分区号Partition X与linux安装时的不一样,这里就要通过硬盘大小来确定哪一个。最后add entry保存好,view settings就可以看到两个选项了,一个是本来的win7,一个是刚刚建的。 5、重启,完成。 最后说一下启动顺序,计算机启动,读取MBR的grub(包含了win7激活信息的grub),然后执行win7的bootmgr,显示win7启动引导菜单,这时可以选择加入的archlinux引导项,进入linux分区的grub(这是和MBR互不相干的另一个grub),通过这个grub来引导linux,同时这个grub也可以在linux中直接修改。 核心思想就是linux的grub安装到非mbr的分区中,然后通过win7的bootmgr连接到这个linux的grub。 重装Win7后,可以再次使用easybcd来完成修复linux的grub。 重装linux后,还是将grub安装到linux分区,Win7无需改变即可。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182867.html原文链接:https://javaforall.cn