windows 7 引导Netbsd[最新,GUID分区表]

NetBSD的安装、升级、更新等日常问题请在这里讨论。

版主: lionux

回复
wkx9dragon
锌 Zn
帖子: 493
注册时间: 2010-02-02 18:00

windows 7 引导Netbsd[最新,GUID分区表]

帖子 wkx9dragon » 2012-10-07 8:31

windows 7 启动netbsd 和openbsd差不多,关键是启动文件。
基本步骤:
1、产生启动文件[老方法,现在不好使了,如果是早期windows和netbsd,并且不使用guid分区表,依然有效]
1.1)最早的,最传统的方法,对openbsd依然有效。
dd if=/dev/rwd0a of=NetBSD.pbr bs=512 count=1

1.2)NetBSD 网站标准方法,对guid分区表失效了,挺复杂的。
[原址:http://www.netbsd.org/ports/i386/faq.html#dual_boot]
devel# rm -f nbmbr [nbmbr 只是个名字,可以自己随便起名,我起名NetBSD.pbr]
devel# touch nbmbr
devel# fdisk -BF -c mbr_ext ./nbmbr
fdisk: primary partition table invalid, no magic in sector 0
fdisk: Cannot determine the number of heads
Update the bootcode from /usr/mdec/mbr_ext? [n] y
Boot selector configuration:
Timeout value (0 to 3600 seconds, -1 => never): [-1..3600 default: 10]
Select the default boot option. Options are:
0: The first active partition
1: Harddisk 0
2: Harddisk 1
3: Harddisk 2
4: Harddisk 3
5: Harddisk 4
6: Harddisk 5
7: Harddisk 6
8: Harddisk 7
Default boot option: [0..8 default: 0] 2
We haven't written the MBR back to disk yet. This is your last chance.
Should we write new partition table? [n] y
如果你的硬盘是大硬盘,并且是guid分区,呵呵,告诉你,在“fdisk -BF -c mbr_ext ./nbmbr”会失败的。

1.3)[“隐藏的够深的吧!我刚想到的方法,与大家分享一下。”]
从freebsd得到启发,freebsd的启动文件,不用自己建立了,在安装时候,已经放在/boot 目录里了,
在咱们x86和x64电脑系统里,有个文件叫“boot1”,就是它了。那NetBSD中有没有现成的呢?肯定是有,
在哪了呀?从“[ 1.2)里的 mbr_ext受到启发 ]”,找到它所在的目录。[ /usr/mdec ],隐藏的够深
的吧!!!,发现有一堆文件,比如boot,bootxxxx_msdos,mbr_ext,等等,发现有一个文件叫 gpmbr.bin,
很小的,[直觉就是它了,还有一个备选“bootxxxx_msdos”,还没试过,呵呵。],把它复制出来,改名为
NetBSD.pbr,和Openbsd.pbr,FreeBSD.pbr文件名统一了。


2、产生windows 7 启动菜单。
2.1)建立windows 7 实模式启动
C:\Windows\system32> bcdedit /create /d "NetBSD x64" /application bootsector

2.2) 激活实模式启动设备
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device boot

2.3)指定实模式启动文件位置
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} path \NetBSD.pbr

2.4)指定实模式启动文件所在盘[分区]
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device partition=c:

2.5) 把启动选项放在最下面
C:\Windows\system32> bcdedit /displayorder {0154a872-3d41-11de-bd67-a7060316bbb1}

wkx9dragon
锌 Zn
帖子: 493
注册时间: 2010-02-02 18:00

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 wkx9dragon » 2012-10-08 19:07

坑爹的freebsd 9.1 rc2 刚装完就死机了,然后电脑开不了机了。把机箱电源关了,才开的机。而且,freebsd 不知怎么回事,把win7 启动的netbsd 替换了!!!!。重新安装netbsd都不行呀!!!由于他的问题,netbsd的 gpmbr.bin,mbr,boot,复制到win7下,启动都不行了,试了试bootxxx_ffsv2,启动了,又学了一招。

wkx9dragon
锌 Zn
帖子: 493
注册时间: 2010-02-02 18:00

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 wkx9dragon » 2012-10-09 9:28

一个思考,怀疑“gpmbr.bin”只是一个分区表指标,实际还是需要netbsd 的引导器来引导,所以才会出现freebsd 被调用的情况。freebsd 新安装器,默认会修改netbsd,也就是硬盘零磁道的信息。今早又安装了一遍freebsd 9 rc2,freebsd 运行正常,没有问题。怀疑是死机问题还是acpi造成的。netbsd 6.0 RC2 acpi 在我的电脑上终于可以用了。usb 问题,不想折腾了,换usb端口了,插鼠标和键盘的usb口[1.0],看来netbsd和freebsd都懒得解决了。[都3.0了!!!,1.0 out !]。
不知道,为什么我的帖子,我自己修改不了。(郁闷,也不知道,怎么操作的,给自己锁定了)
新的win7 引导 netbsd ,方法是:
复制 /usr/medc/bootxxx_ffsv2 [如果你的netbsd 根目录是ffsv2 文件系统,ffsv1没试过!] 到 win7 目录下,最好是C盘根目录下。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 leo » 2012-10-11 3:12

多谢分享经验!

woodelf
钛 Ti
帖子: 33
注册时间: 2010-09-01 11:23

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 woodelf » 2012-10-11 18:28

有几个问题我不太理解:
第一,Windows 7也是安装在纯GPT吗?那应该是采用了UEFI的引导方式,FreeBSD和NetBSD都还没有UEFI引导支持,如果和Windows一起安装在同一块GPT硬盘,我觉得引导会混乱。
第二,以前曾经试过,FreeBSD和NetBSD无法安装到同一块硬盘,查过资料说是两者的bsdlabel版本不兼容,对于硬盘分区的标识也不同,先安装的那个会无法引导。OpenBSD和NetBSD的bsdlabel是兼容的。
第三,想请教下把NetBSD安装到GPT并且从GPT引导的方法。从搜索资料来看,只能手动进shell把几个sets解压到目标分区。很可惜,NetBSD安装光盘至今都无法在我的笔记本启动,内核加载完就立刻重启了,无论加什么启动参数都无效。

wkx9dragon
锌 Zn
帖子: 493
注册时间: 2010-02-02 18:00

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 wkx9dragon » 2012-10-14 18:15

不好意思,前两天出差了。
现在回答你的问题:
1、windows 7 x64 ultimate 是装在纯gpt分区上,不知什么时候,装机把分区表改成guid的了。
2、我的电脑是09年买的,比较老了,不是uefi主板。
3、netbsd和freebsd不在一个分区,我好像没有那么装过,一般都是openbsd,netbsd,win7一个硬盘。
4、不知道对不对,如果光盘能都启动,并且找到硬盘的化,gpt引导应该没有问题,就是手动复制文件到windows引导目录下,启动就可以了
5、你说的uefi引导启动的问题,肯定是前段时间,吵得沸沸扬扬的,windows在主板里设限,不让任何别的os的启动的问题。这就不只是bsd的了,防linux是主因,bsd是躺着也中枪呀!

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

回复: windows 7 引导Netbsd[最新,GUID分区表]

帖子 lionux » 2012-12-17 23:41

win7可以安装eadybcd引导其他系统。

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 5 访客