LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: debiangk

如何在grub里添加启动FreeBSD??

[复制链接]
发表于 2004-3-15 08:39:05 | 显示全部楼层

回复: 回复: 需要注意的是

最初由 devel 发表
我是不是还可以把GRUB安装到MBR的。。。。

当然可以了。
grub>root (hd0,0,a)   ####安装grub的分区。
grub>setup (hd0)      ####安装在mbr
grub>setup (hd0,3)    ####安装在某个分区的引导扇区。
发表于 2004-3-17 07:11:51 | 显示全部楼层

谢谢大家了

大家提供的方法真的不错
:)
发表于 2004-3-17 09:52:53 | 显示全部楼层
grub>root (hd0,0,a) ####安装grub的分区。
grub>setup (hd0) ####安装在mbr
grub>setup (hd0,3) ####安装在某个分区的引导扇区。?
我想问问grub>root (hd0,0,a)里面为什么要加上a?
另外grub可以同时安装多个?
谢谢!
发表于 2004-3-17 09:54:53 | 显示全部楼层
grub>root (hd0,0,a)里面的a是不是BSD的根分区的意思?
发表于 2004-3-17 10:21:08 | 显示全部楼层

回复: 回复: 回复: 需要注意的是

最初由 Eg_zm 发表
当然可以了。
grub>root (hd0,0,a)   ####安装grub的分区。
grub>setup (hd0)      ####安装在mbr
grub>setup (hd0,3)    ####安装在某个分区的引导扇区。


我说的意思是你的grub是安装在freebsd的系统里面,如果是安装在其他linux系统里面,那么那里的root 就应该是其他的,那么就不会有后面的a了。

你说的也是正确的。
发表于 2004-3-17 10:30:57 | 显示全部楼层
谢谢指点,另外grub可以同时安装多个?
发表于 2004-3-17 10:55:37 | 显示全部楼层

是,

其实grub软件只需要安装一个,可是如果你要安装在多个地方 ,如果menu.lst不一样的话 ,那么还是多个比较合适
发表于 2004-3-17 12:44:06 | 显示全部楼层
收到!谢谢Eg_zm!
:thank
发表于 2007-10-5 17:45:04 | 显示全部楼层
提供一篇经典的 bsd硬盘命名方法文章

FreeBSD下的硬盘是以驱动程序的名称来命名的,而不同的硬件需要不同的驱动程序,因而它们的名字也不同。

在IBM兼容的个人计算机上使用的硬盘控制器有以下种类:

l
古老的ST-506以及ESDI,当前已经很少人使用这些驱动器,只有在老版本FreeBSD才支持,驱动程序为wd,因此相应的硬盘按顺序分别为wd0,wd1等等;

l IDE
和增强型IDE(EIDE),是当前最流行的个人计算机硬盘控制器,通常每台计算机接两个IDE控制器,每个控制器可以接两个设备(硬盘或光驱),分别为主设备和从设备。FreeBSD
3.x之前使用wd驱动程序支持IDE,新版本的FreeBSD系统使用ad驱动程序支持硬盘。第一个IDE控制器的主硬盘为ad0,第一个IDE控制器的从硬盘为ad0,第二个IDE驱动器的主硬盘为ad2,从硬盘为ad3;

l
SCSI控制器,由于SCSI控制卡承担了大量的处理任务,降低了中央处理器的负载,更适合用做服务器和高性能工作站的磁盘驱动器。早期的SCSI控制器能接7个设备,而Wide
SCSI控制器可以接15个设备,每个设备有一个对应的SCSI
ID。FreeBSD采用驱动程序da来支持SCSI控制器之上的各种硬盘设备,SCSI硬盘驱动器也按检测到的顺序排列,从da0向后,依次排列。

l 除了通过IDE
和SCSI来访问硬盘之外,还可以通过专用的RAID控制器来访问硬盘设备,RAID控制器使得多个硬盘能表现为一个统一的存储设备——逻辑硬盘,并提供额外的速度、冗余等功能,已经成为高档服务器和存储系统的标准配置。然而,RAID控制器使用独立的驱动程序,因此,RAID控制器条件下的逻辑硬盘的命名将由该RAID控制器在FreeBSD下的驱动程序的名字决定,例如amr0等等,没有统一的名字。

在FreeBSD 2.2.x版本中使用的SCSI驱动程序为与3.x版本不同,旧版本驱动程序使用的SCSI硬盘驱动程序为sd。

因此,经常遇到的磁盘名字通常是ad0、da0,而wd0和sd0则为老版本所使用的名字,当前已经很少遇到。
2) 硬盘分区的命名

当了解了FreeBSD对硬盘的命名之后,进一步还需要了解FreeBSD对磁盘分区和它自己对磁盘的分割方法的命名。因为BSD
Unix和个人计算机是由两个方向发展起来,最后融合在一起的,因此它们对硬盘的分割方法,命名方式差异较大,必须了解这些差异,才能了解系统安装的目标,避免不必要的数据丢失。
u
个人计算机磁盘分区

在个人计算机中,每个硬盘可以分为四个磁盘分区,其分区信息存储在该硬盘前部的分区表中,而每个分区可以由不同的操作系统进行管理。常见的分区分为基本分区和扩展分区,又根据使用的不同文件组织格式,可以分为DOS的FAT分区,FreeBSD的UFS分区、NT的NTFS分区,Linux的EXT2FS分区等。

FreeBSD 通常按照分区在分区表中的顺序来标识这些分区,例如在磁盘ad0上的四个分区,FreeBSD系统分别称作ad0s1,ad0s2,ad0s3,
ad0s4,值得注意的是,为了和DOS相一致,分区的序号从1开始,从s1到s4。而大部分情况下,Unix和C习惯上采用从0开始计数的策略。

除了基本分区之外,一个硬盘上还可以划分一个扩展分区,扩展分区与基本分区不同,它实际上不直接在上面存储实际数据,而是在上面再划分逻辑分区,这样又可以划分四个逻辑分区,这四个逻辑分区也可以使用不同的组织方式保存文件,例如FAT、EXT2FS等,但是FreeBSD的UFS分区是不能位于逻辑分区之上的。

FreeBSD
仍然按逻辑分区的顺序来标识这些逻辑分区,由于基本分区已经占据了s1到s4的位置,因此扩展分区上面的逻辑分区的顺序就从5算起,例如ad0上的逻辑分区为ad0s5,ad0s6,ad0s7,ad0s8。因此一个磁盘上最多只能有8个不同的分区同时存在。
u
BSD Unix的Slice

必须清楚的是,分区、分区表等概念是属于来源于个人计算机的概念,并非所有的计算机系统都认可这些概念。事实上,BSD
Unix就采取另一种截然不同的方法去看待磁盘,形成了自己的管理硬盘和分区的方式了。

当BSD
Unix流行的时候,计算机都是专有系统,很少有用户在一个计算机上安装多个操作系统,也很少有用户频繁的从一种系统切换到另一种系统中,计算机系统通常启动之后就一直提供服务。因此,磁盘上只需要一种操作系统就足够了。这样,BSD
Unix就要独占整个硬盘,但也会将磁盘进行必要的划分,以优化存储,这个时候个人计算机还没有出现,也没有磁盘分区的概念。

在BSD
Unix中,磁盘是一种顺序的设备,它使用Slice的概念来表示硬盘上的一个部分,一个Slice是硬盘的一个部分,具备一个起始位置一个结束位置,可以用作一个文件系统也可以用作一个交换空间。Slice的概念与个人计算机传统使用的Partition(分区)概念类似,因此也可以使用分区来称呼它。
BSD方式的管理方法能管理多达8个Slice,BSD按字母顺序依次命名他们为ad0a,ad0b等。

按BSD Unix的习惯用法,第一个标记为a的Slice,如ad0a用于根文件系统 “/”
,而ad0b用于交换空间,ad0c用于表示整个硬盘空间,ad0e用于/usr文件系统等。
u 兼容的表示方式

然而FreeBSD毕竟是运行在个人计算机平台上的操作系统,其他操作系统使用分区的磁盘管理方式,而BSD使用Slice,就必须采用一种折衷的方式,使得FreeBSD能和其他操作系统相互协作,否则安装FreeBSD就破坏其他操作系统,必然出现问题。

最终,FreeBSD
采用了一种兼容的硬盘使用方式,将原本针对整个磁盘的Slice管理方式转变为管理一个分区。这样一来,每个FreeBSD系统将占用一个独立的UFS基本分区,这个分区与其他操作系统使用分区的方式相同,在分区内再使用BSD的Slice方式进行管理,这种方式就类似于DOS在扩展分区内分割逻辑分区的方式。

假设FreeBSD使用了第三个分区ad0s3作为UFS分区,则在这个分区内划分的相应Slice就被称为ad0s3a,ad0s3b等,同样,第一个标记为a的Slice,ad0s3a缺省被用做根文件系统。

有些时候仍然可以使用传统的名字ad0a来称呼ad0s3a,使用ad0b称呼ad0s3b,以BSD传统方式称呼这些Slice,系统能识别这种缩略形式,但条件是ad0s3应该是该硬盘上第一个UFS分区(或唯一的UFS分区),该硬盘上的其他UFS分区就不能使用这种缩略形式,而只能使用全称了。

由于Slice和Partition都是用于分隔磁盘(或分区),以更方便的利用磁盘空间,为了简捷,可以将在UFS基本分区中划分的Slice,如ad0s3a,称作ad0s3分区的子分区。
回复 支持 反对

使用道具 举报

发表于 2007-10-6 12:41:19 | 显示全部楼层

我是gentoo freebsd双系统,gentoo中的grub.conf.sample是这样的描述的我是freebsd 6

我是freebsd 6.2+gentoo 2007.0双系统,引导管理器用的grub,gentoo中的grub.conf.sample是这样的描述的
#
# Sample boot menu configuration file
#

# Boot automatically after 30 secs.
timeout 30

# By default, boot the first entry.
default 0

# Fallback to the second entry.
fallback 1

# Splash image to show behind grub.
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

# For booting GNU/Hurd
title  GNU/Hurd
root   (hd0,0)
kernel /boot/gnumach.gz root=hd0s1
module /boot/serverboot.gz

# For booting GNU/Linux
title  GNU/Linux
root (hd1,0)
kernel /vmlinuz root=/dev/hdb1
#initrd /initrd.img

# For booting Gentoo with the static rescue shell
title  Gentoo (rescue shell)
root (hd1,0)
kernel /vmlinuz root=/dev/hdb1 init=/bin/bb

# For booting GNU/kFreeBSD
title  GNU/kFreeBSD
root   (hd0,2,a)
kernel /boot/loader.gz

# For booting GNU/kNetBSD
title  GNU/kNetBSD
root   (hd0,2,a)
kernel --type=netbsd /boot/knetbsd.gz

# For booting Mach (getting kernel from floppy)
title  Utah Mach4 multiboot
root   (hd0,2)
pause  Insert the diskette now!!
kernel (fd0)/boot/kernel root=hd0s3
module (fd0)/boot/bootstrap

# For booting FreeBSD
title  FreeBSD
root   (hd0,2,a)
kernel /boot/loader

# For booting NetBSD
title  NetBSD
root   (hd0,2,a)
kernel --type=netbsd /netbsd

# For booting OpenBSD
title  OpenBSD
root   (hd0,2,a)
kernel --type=netbsd /bsd

# For booting OS/2
title OS/2
root  (hd0,1)
makeactive
# chainload OS/2 bootloader from the first sector
chainloader +1
# This is similar to "chainload", but loads a specific file
#chainloader /boot/chain.os2

# For booting Windows NT or Windows95
title Windows NT / Windows 95 boot menu
rootnoverify (hd0,0)
makeactive
chainloader  +1
# For loading DOS if Windows NT is installed
# chainload /bootsect.dos

# For installing GRUB into the hard disk
title Install GRUB into the hard disk
root    (hd0,0)
setup   (hd0)

# Change the colors.
title Change the colors
color light-green/brown blink-red/blue
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表