多系统引导

多系统并存

修订:此处各法仅适合单硬盘装多个系统,多硬盘(每个盘上都有系统)的话,请参考本文结尾之附录 BingoSek提供方法,经sayboy测试有效!


四种方法:

。Grub解决单硬盘FreeBSD+双Win+n个Linux多系统启动
http://www.freebsdchina.org/forum/viewtopic.php?t=7774


。使用基本的Fdisk

其实如果仅仅是Windows和FreeBSD 共存。那么可以很简单,不需要考虑任何多系统启动的问题(根据现在情况,大多数人都用的是Win2000/XP,因此此段文字指的Windows就是Win2000或者XP专业版--Home版,功能缺失,不在此文字范围):

1。先装好Windows ,再装好FreeBSD(如何安装,不在此说明,假如你连安装都作不料,那么这些资料你就不用看拉),装BootManger 时,选不安装(NONE)。

2。FreeBSD的 Fdisk里面,“激活--SetBoot”BSD所属分割。取消Windows系统分区的 "Boot"状态。保存后,下次启动,默认就是FreeBSD。

3。在FreeBSD的 Fdisk里面,“激活--SetBoot”Windows系统分区,取消FreeBSD系统分区的 "Boot"状态。保存后,下次启动,默认就是Windows。

4。Windows里,“控制面板”--> “计算机管理”-->“磁盘管理器”-->将FreeBSD所属分区设为“启动分区”,下次启动默认就是FreeBSD。

注:假如是Win9x/ME 那么第4步,需要使用Win98启动盘启动,使用fdisk 来改变分区的活动(激活)状态。基本原理同上,具体做法,自己做。

。使用FreeBSD自带的BootManger。

先装Windos,然后装FreeBSD ,装BootManger 时选(MBR),应该是可以的了。
启动会有提示,BootManger是自动识别系统的,但是不能设置的。


实际上,不建议FreeBSD初学者就装多系统。因为FreeBSD的分区和大多数系统都不同。

建议初学者,另找/借/买 个闲置的硬盘来装。

不建议使用VM或VPC等的虚拟软件,因为对于初学者,无法区分/解决 到底是VM(VPC)问题还是 FreeBSD的问题。

附录:Grub的多硬盘,多系统的解决方法。

感谢 BingoSek提供方法,经sayboy测试有效!感谢job提供的MAP的详细用法。2004-09-01

讨论原贴:
http://www.freebsdchina.org/forum/viewtopic.php?t=14432

本例,是以系统安装了两个硬盘(IDE1主,IDE1从)为例:

BingoSek 写到:

这个应该是grub的解决方法,使用map来解决问题:
Dear Mr. Ghosh,

DOS/Windows OS can usually be booted from the first hard disk only.
However, if you want to boot Windows from a hard disk other than the
first, you can simply change the hard disk's BIOS number to make Windows
"believe" it resides on the first hard disk. This can be achieved in the
Grub configuration with the comand map.
To do this, open the file /boot/grub/menu.lst with an editor of your
choice and edit or append the following section:

title windows
root (hd1,0)
makeactive
chainloader +1
map (hd0) (hd1)

map (hd1) (hd0)

Save the file menu.lst. Could be a help. Check it out !!



Koushik Ghosh wrote:
>
> Hi all,
> can you help me configuring the grub in multiple harddisk, I have two
> one is 10GB(hdc) and another is 4GB(hda). I have Linux(RH on the 4GB
> harddisk (hda) and windows 2000 prof in 10GB(hdc).
>
> Koushik Ghosh.
> Chinsurah, Hooghly, India.
> E - Mail ID [EMAIL PROTECTED]
> Home Page
http://koushik.fateback.com/
>
> _______________________________________________
> ilugd mailing list
> [EMAIL PROTECTED]
>
http://frodo.hserus.net/mailman/listinfo/ilugd
_________________




sayboy 写到:

使用
title windows
root (hd1,0)
chainloader +1
map (hd0) (hd1)
map (hd1) (hd0)
引导成功!
两个map必须全写!


job提供的MAP的详细用法:
(这是job多次修订过的最终版(2004-09-06),感谢job的辛苦)
job 写到:

绝对是可以引导多块硬盘的。我自己的机器就是在 hda 上面装的 Linux ,在 hdc 上面装的是 dos 和 win2000.(主要是 hdc 40G ,是公司的硬盘, hda 是我自己的,并且,hda 是后来接上去的。win2000 dos 所在硬盘没有做过任何改变。不影响工作的关键数据)。在 hda 上面装的 grub , 用它引导linux 和 win2000。
只要注意的使用 map , makeactive ,chainload +1 .这些命令的使用。只要写对了,就没有问题。可以在 grub 启动以后, 按键盘 c 进入命令模式,依次敲入你的 配制。最后敲 boot 。一次次试验,写对了配制,就能引导,写错了,也就显示一个错误信息,也不会死机,可以重新继续敲命令。不用每次进入 Linux 或 FreeBSD 改 grub.conf 。grub 的命令行方式和 bash 很像,同时也是支持按 TAB 键自动补全的,很方便的。可以在不起动系统的情况下,浏览,查看linux 分区里面的目录,文件哈。(cat 命令)多尝试,多看资料,没有问题的。
毕竟,我的机器上确实这样作到了。
同时,我家里的机器,也用的 grub 引导的 Linux 和 FreeBSD.分别是不同的硬盘。都没有问题。


查阅了 grub 官方网站上的手册,结合自己的使用实践, map 指令是可以只用一个的。但通常情况下,写 两个 map 是更可靠的。
grub 官方网站上对于 map 指令的解释(自己翻译的 ,见笑):
首先,要明确一点,grub 是依照系统 BIOS 而确定的设备号,从0开始。设备名需要用()括起来。例如:(hd0,1) 。其中,hd 表示一个硬盘设备,fd表示一个软盘设备。第一个整数表示设备号。故,第一块硬盘被标为 hd0,第二块硬盘被标为 hd1。依次类推;第二个整数表示分区号(或者 BSD 术语中的 PC slice 号),也是从0开始的。因此, (hd0,1) 表示了第一块硬盘的第2个分区。

又: (hd0,4) 表示了第一块硬盘的第一个扩展分区。
(hd1,a) 表示了第二块硬盘上的一个 BSD 分区。如果需要指明具体哪一个 PC slice ,你需要写成类似下面的样子 (hd1,0,a)。如果没有指明 slice 号,grub 将寻找第一个含有一个 a 分区的slice。

然后,解释下 map 的用法。
map (diskA) (diskB) :
映射驱动器 diskB 到 驱动器diskA。仅在链式装载其他的操作系统时需要使用,比如 Dos, Windows,当它们不在第一个启动驱动器的时候需要。对于依赖 BIOS 确定驱动器顺序的系统才有作用。还是比如: Dos,windows。
例如:
map (hd1) (hd0)
map (hd0) (hd1)
这个命令交换了第一个硬盘和第二个硬盘的顺序。
我的使用实例:
第一块物理硬盘装的 Linux ,grub 和 Linux 装在一个硬盘。第二块物理硬盘装的 Windows2000。我的grub 的 grub.conf 内容为:
# Magiclinux
root (hd0,0)
kernel /vmlinuz-2.4.20-1.1 ro root=LABEL=/
initrd /initrd-2.4.20-1.1.img
# Windows 2000
root (hd1,0)
map (hd1) (hd0)
chainloader +1

因为 Windows 只能从第一个硬盘启动,并且它又是依赖 BIOS 确定硬盘顺序的。所以,我用 map (hd1,hd0) 把我的第 二 块物理硬盘映射到第一块硬盘。这个在 BIOS 里面改成第二块硬盘启动电脑是一样的作用。

还有一台机器,第一块物理硬盘装的 windows98 ,第二块物理硬盘装的是 Linux,grub 和 Linux 装在一个硬盘。使用 grub 启动机器,所以在 BIOS 里面交换了硬盘逻辑顺序,用第二块硬盘启动。这个会影响 windows 确定磁盘。所以grub里面要再交换硬盘顺序,把第一个物理硬盘,也就是放 windows98的那个变为第一个硬盘。 这次 grub.conf 的内容:

# Magiclinux
root (hd0,0)
kernel /vmlinuz-2.4.20-1.1 ro root=LABEL=/
initrd /initrd-2.4.20-1.1.img
# Windows 98
root (hd1,0)
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
# FreeBSD
root (hd1,1,a)
kernel /boot/loader

这样,把硬盘的顺序第一块和第二块,通过两次映射调了个个,消除了 BIOS 里改变启动顺序的影响,还原了 windows 从第一块硬盘启动的环境。所以,成功启动了。我的爱机第一块物理硬盘还有 FreeBSD。装在第 2 个主分区。

最后,放一个 grub 官方手册里面引导 FreeBSD 的写法,我的爱机也是参照这个写的。想来,作为 FreeBSD 的爱好者,这个也是很有用的。
# For Booting FreeBSD
title FreeBSD
root (hd0,2,a)
kernel /boot/loader

FreeBSD 是用自己的 loader 引导自己的。所以,上面这个配置意思是装载第一块硬盘的第 三 个 PC slice 的 a 分区里的 FreeBSD 的 kernel loader。


简单的描述一下 grub 的用法:
title
   是告诉 grub 显示一个什么样的列表标头。
root (hd0,1)
   是告诉 grub 操作系统内核所在位置在第 1 块硬盘,第 2 个分区。普通人装 linux 分一个 /boot ,就会是这种。
root (hd0,0,a)
   类推,是告诉引导第一块硬盘上第一个 slias 上的 a 分区。 FreeBSD 必须是这种 3 个参数。这种写法跟它的分区方式有关。
  map (diskA) (diskB) :
映射驱动器 diskB 到 驱动器diskA。
makeactive  
   是让 grub 把 root 命令中描述的物理磁盘的那个分区变成活动分区
  chainloader +1 
   将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1作为文件名。由于 grub 不能直接启动 Dos , Windows,必须使用链式装载。
kernel :
当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的指明的根文件系统(就是 root 指令确定的那个)中载入。
initrd file ... :
加载一个 linux 格式的 ram 盘 (ram disk) 启动映象当内核为了完全引导而需要某些模块时,这是必需的。 
boot
   是依照之前这些命令所要求的参数,启动机器的
rootnoverify device [hdbias]:
与 root 命令类似,区别在于不去做挂载该分区的尝试。对于操作系统在磁盘中 grub 所能读取的范围之外的情况下非常有用。

基本上,我们常用的就是这些命令。足够引导 我们遇的到的系统了。包括 FreeBSD linux windos dos.其他的由于个人硬件条件所限,没有尝试过。





。使用GAG引导FreeBSD + Windows XP等。

感谢sayboy的贡献。

sayboy的原文《使用GAG引导FreeBSD+Windows XP》在此:
http://www.freebsdchina.org/forum/viewtopic.php?t=18654

sayboy 写到:

如果你已有多个系统,而且切换时还在使用BIOS -> First Boot Device -> 修改 -> F10 -> Y 试一试这个吧!GAG
启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(MasterBoot Record),在系统完成启动测试后,如果系统是从MBR启动,则BIOS(Basic Input/Output System)将控制传送给MBR。然后存储在MBR中的这段程序将运行。这段程序被称为启动管理器。它的任务就是将控制传送给操作系统,完成启动过程。有许多可用的启动管理器,下面我说一下我如何使用GAG (initials, in spanish, of Graphical Boot Manager)完成引导FreeBSD+Windows XP的过程。
我的硬盘及分区:
IDE1 主-20G,整盘安装FREEBSD。
IDE1 从-光驱。
IDE2 主-120G,主分区5G,Windwos XP,扩展分区115G,逻辑分区分为15G+100G。
IDE2 从-120G,主分区120G。
已有系统的朋友跳过步骤1.2.
1.安装freebsd
仅使用20G硬盘,设BIOS启动项为HDD-0,安装时出现选择使用何种方式引导系统时BootMgr,Standard,None三项,请选择Standard或None,建议使用Standard。这样即使不使用引导器,我们也可以在BIOS中设置启动FreeBSD(例如,我设置First Boot Device为HDD-0).
2.安装Windows
仅使用120G硬盘,设BIOS启动项为HDD-1,安装XP。这样即使不使用引导器,我们也可以在BIOS中设置启动XP(例如,我设置First Boot Device为HDD-1).
3.你可以从http://gag.sourceforge.net/download.html这里得到GAG4.5。
4.在XP下解开ZIP,插入一张空白软盘,运行 install_XP.cmd 这样我们得到了用来安GAG的软盘。用这张软盘引导系统,都出来了,哈!图形还是蛮亲切的哦。这里要注意的是目前GAG支持键盘的使用,想用鼠标的话,你问作者吧。^_^ 接下来我们要简单的配置一下它:键入S,进入配置界面
A. Add a new Operating System - 添加一个操作系统的引导项
B. Delete an Operating System - 删除一个操作系统的引导项
C. Save in Floppy - 将配置保存在软盘
D. Save in Hard disk - 将配置保存在硬盘
E. Boot timer —— 设置等待时间及默认启动的操作系统
F. Setup password —— 设置用户密码
G. Hide primary partitions - 设置要隐藏的主分区
H. Return to main menu - 返回选择操作系统主页面
A.B.如果软盘启动后GAG没有识别出你全部的操作系统或对GAG默认配置的名称,密码,图标不满意,请使用这个选项手工添加。使用A-Z选择要修改的操作系统,使用1-8选择要添加的操作系统的硬盘。输入主页面中显示的操作系统名称(小于15个字符),输入用户密码(可忽略跳过),选择主页面中显示的操作系统图标。返回看一看效果,不满意。。再来一遍吧。
C.D.保存在哪里?随便你了,我是弄在硬盘上了。
E.输入等待用户响应的时间(单位是秒,忽略为0),输入规定时间用户无响应时默认启动的操作系统。
F.G.不说啦。
注:
1.我很少使用一块硬盘安装多系统,原因有两个:一,我有足够的硬盘。二,我讨厌在引导出现问题时,先紧张修复其中的一个系统,是否能弄好另外一个看运气了(当然这和我的水平有很大关系^_^)
2.感谢Jeffgao的推荐,我很喜欢这个小东西。^_^
3.写这个是源于likuku的建议并感谢它提供例文供我抄袭!虽然文章很简单,没有技术价值,但还是希望能对大家有点帮助,哈。


这个是按照个人的理解翻过来的,原文见http://gag.sourceforge.net/
如有错漏,先请原谅,再请指正! Smile
版本简介

当前版本:4.5d
GAG(图形引导管理器)是一个引导管理器程序。当你打开机器后,GAG会自动装载以供选择操作系统。
主要特点:
允许引导多达9个不同的操作系统。
能够引导安装在任何一个可用的硬盘上的主分区和扩展分区上。
几乎可以在所有的操作都能安装GAG。
GAG不需要独自的分区而是安装在硬盘的第一个track上。它能够安在软盘上而不必使用硬盘。
可以设定引导缺省的操作系统的定时器(可选)
可以为配置界面设置密码保护
可视化的程序(需要VGA或者更好的彩卡)提供更多按钮。
隐藏主分区,允许用户在同一个硬盘上安装多个DOS/WINDOWS系统。
允许为每一个操作系统设定密码,防止未授权用户访问。
引导器的文本可以翻译成各种语言
可以调换硬盘驱动,从第一块,第二块,第三块硬盘引导。
具有安全的引导系统,即使GAG被覆盖。
支持多种键盘(QWERTY,AZERTY,QWERTZ键盘)
支持最大4T的硬盘
所有的版本都是自由的。


这个是按照个人的理解翻过来的,原文见GAG45.zip中的install.txt
如有错漏,先请原谅,再请指正! Smile

安装说明

GAG被发布成软盘镜像,当安装它的时候,你需要一个空白的3 1/2寸高密度格式化的软盘。
所以你不必担心你使用的是什么操作系统。

从GAG4。01开始,所有语言的版本都是通过一个小安装程序被发布在一个盘中,所以你必须
创建这个盘,从这个盘引导你的计算机。关于GAG的使用方法,常见问题和注册信息能从安装程序中得到了。

引导镜像文件DISK.DSK可以放到可引导的CD-ROM中,使你有一个在CD上的GAG安装器而不是在软盘上的。
在这个包里有一个ISO镜像文件,可以用来创建那个可引导的CD-ROM,这个文件是GAG.ISO。

注意:一旦被创建,这个盘就好像是空白的一样,你不能从MS-DOS,WINDOWS上读取它。


创建启动盘
首先,你需要创建软盘,通过RAWRITE2.EXE 这个程序完成。

从DOS
插入格式化的软盘然后键入INSTALL.BAT,这个程序将创建启动软盘。


从WINDOWS
插入格式化的软盘,打开GAG解压后的文件夹,双击INSTALL.BAT,这个程序将创建启动软盘。
在Windows XP/NT/2000下,使用INSTALL_XP.CMD。

从OS/2
打开一次DOS会话(可能是一个窗口或全屏),余下工作同从DOS安装的步骤。
如果程序返回DMA错误,那么就编辑CONFIG.SYS文件,修改DOS变量,修改为:
DOS=HIGH,UMB
因为缺省的是DOS=LOW,NOUMB。

如果你愿意,你也可以用IMAGE.EXE,它是OS/2 CD-ROM上的程序。


从LINUX/UNIX
插入格式化的软盘,键入
dd if=disk.dsk of=/dev/fd0 bs=512 count=2880

如果你愿意,你也可以这样写:
cat disk.dsk > /dev/fd0
在其他一些UNIX系统中你可能需要把/dev/fd0改成适当的形式。

其他操作系统
你需要能使你从磁盘镜像创建软盘的程序,然后用它把DISK.DSK拷到软盘上去。

引导GAG
重启你的计算机,用刚创建好的软盘引导它。在屏幕中会显示GAG的安装主界面。按1-读使用说明
按2-阅读常见问题
按3-阅读注册文件
按4-开始安装


GAG安装器的错误信息

当GAG引导时,会作一些测试。如果它发现了错误,它会在屏幕中显示数字,并且终止系统。这些错误信息如下:
GAG:1
错误分区:在尽力装载GAG时发现一个读错误。如果你正在从软盘引导,那么重新在一个无错误分区的软盘上安装它。
如果你正在从硬盘安装,用SafeBoot引导操作系统,重新安装GAG。如果错误继续,说明你的硬盘上有错误的分区。

GAG:3
GAG安装器没有找到:从软盘或硬盘装载的代码中没有GAG签名。用可能是第一个磁道被重写了。重作一个安装盘,重试一次。

重新编译GAG源码

源码放在DEVEL目录下。
你能找到GAG的源码,安装程序源码,引导区源码,使用说明,FAQ,注册说明,以及制作镜像文件的源码。


_________________
OS
--==LiKuKu==--
UniX&LinuX
Is Best OS
All OverTheWorlD

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值