Windows下BCD引导Open SUSE实现双系统

之前我转载了一篇Windows下BCD引导Ubuntu实现双系统无缝切换的博文,里面说的引导opensuse没有成功,这里原作者有一篇关于opensuse的博文,不过我还是没能弄好,真是技术不到家啊*_*,顺便也转过来!原文在这里,下面开始:

步骤:

 

1.  硬盘安装OpenSUSE(我这里是OpenSUSE12.2),在安装的时候,记得不要选择自动配置,同时手动分出一个/boot分区,并且选择将GRUB2安装在指定的/boot分区。/boot分区不需要很大,100MB足矣。至于如何在安装opensuse时分区我就不说了,反正一切小心,避免弄丢windows的分区。此时你可以记下/boot分区所在的挂载点,比如我的是/sda2

 

2.  安装完成后,重启就会发现Windows 和 Linux 系统都是由GRUB2引导的,这时进入OpenSUSE,然后在终端下输入:

 

dd if=/dev/sda2 of=suse.bin bs=512 count=1

 

(这个命令需要root权限来执行,我一般是先输入su,然后输入密码,之后的操作都是处在root权限下了。)

 

这条命令的含义:

if 就是input file,输入文件的意思(我猜的)

of就是output file,输出文件的意思(还是猜的)

Bs就是 block size,块的大小(还是猜的)

count就是次数,表明要复制数据块的次数(还是猜的)

 

if=/dev/sda2   这个sda2就是/boot所在的分区,根据自己的情况修改。(这个地方最容易出错

of=suse.bin   ”of= “后面跟的是路径+文件名,如果像我这样写的话,suse.bin文件就在当前命令所在的文件夹下面,你可以可以加上自己的路径比如 of=/home/suse.bin 。这样的话suse.bin就在home文件夹下面了。其中suse.bin文件名和扩展名随便写,二进制级别的复制,注意不要用中文。

 

3.  把生成的suse.bin复制到windows的分区下,如果没有加载windows分区的话,也可以复制到U盘。多复制几份,以后用得着。

 

4.  重启选择进入windows8,将刚才的suse.bin复制到C盘根目录,其他分区也可以,这里以C盘根目录为例。

 

以管理员身份打开CMD,然后输入以下命令创建实模式启动项:

Bcdedit /create /d "OpenSUSE" /application bootsector

此时会得到一长串的GUID,这里以123456为例,复制一下。后面要用到三次.

 (插叙一条:此时如果创建不成功,提示什么无法创建启动配置集之类的话,进入磁盘管理,把C设为活动分区就好。)

再次输入命令指定分区设备:

Bcdedit /set {123456} device partition=c:

 这里的C:是因为susu.bin放在了c根目录。

 

再再次输入指定启动路径:

Bcdedit /set {123456} path \suse.bin

Path 参数后面跟的是suse.bin的路径,因为前面已经指定了启动分区是C,而我们的suse.bin又在C根目录,所以这里就是\suse.bin

 

最后再加一条命令把这个启动项顺序调整为最后,我觉得不加这条也行,但是不加这条的命令的话,通过bcdedit命令查看启动项的时候没有刚才添加的那个opensuse启动项,不晓得为什么。

Bcdedit /displayorder {123456} /addlast

 

5.  上面的操作完成后在CMD中输入bcdedit 可以查看启动项已经添加成功,重启就会看到由BCD引导的OpenSUSE的启动项了。

Windows下BCD引导Open SUSE实现双系统

 

============================================================

如果已经安装了OpenSUSE,但是后来重装了Windows后MBR重写了,则可以选择使用winhex这个软件来在Windows下打开物理硬盘,然后导出Linux启动分区的前512个字节,做成启动文件。


转载于:https://my.oschina.net/penics/blog/188401