忍受不了OpenSUSE12.2华丽界面的诱惑,果断下载安装之。

现在是win8+OpenSUSE+各种各样的VHD启动。OpenSUSE的GRUB2可以引导win8,但是VHD就无法引导了。


我常用的系统是win8,并且平时要添加各种VHD启动来做测试,再加上对GRUB2不熟悉,所以决定用BCD来引导OpenSUSE。


用BCD引导OpenSUSE的好处是:既解决了linux的引导问题,也解决了随时添加VHD引导的问题,各种爽。

步骤:


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的启动项了。

Windows8/Windows7 BCD 引导Linux_第1张图片

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