一张 3.5 英寸 (1.44 MB) 的软盘可以容纳 1474560 字节的数据, 而引导镜像文件的尺寸正是 1474560 字节。
准备创建引导软盘时常见的错误有:
使用 FTP 时没有用 binary 模式下载软盘镜像文件。
有些 FTP 客户端程序的默认传输模式为 ascii,并且试图 转换接收到的所有行尾字符,以匹配客户端系统的转换模式。这不可避免的破坏了引导镜像文件。检查一下 下载的引导镜像文件:如果它的大小不 完全 等于服务器上文件大小的话,这个 下载过程就是可疑的。
规避措施:在使用 FTP 连上服务器准备下载镜像文件时,在 FTP 命令提示符号处输入 binary。
使用 DOS copy 命令(或者等同的 GUI 工具)往软盘上传送引导镜像文件。
直接使用类似 copy 这样的命令创建引导镜像文件是不可行的。镜像文件含有一个软 盘的全部内容,磁道对磁道,而不是像普通文件一样放在软盘上。您必须使用 “原始” 方式把文件传输 到软盘上,这需要比较低级的工具,(比如 fdimage 或者 rawrite)这 些工具在 使用手册的安装章节 有说明。
安装说明可以在使用手册的安装章节找到。
使用 FreeBSD 需要 486 或更高配置的 PC、 至少 24 MB 的 RAM 以及 150 MB 的磁盘空间。
FreeBSD 的所有版本都可以运行在低端的单色显示适配器 (MDA) 上, 但是要运行 Xorg,就需要 VGA 或者更好的显卡。
您还可以参考 第 4 章.
目前还没有办法仅仅创建一张安装软盘。你需要制作一个全新的发行版,这里包 含您的安装软盘。
要创建一个自定义的发行版,您可以参考 Release Engineering 中的说明。
请参考 multi-OS 文章.
先安装 Windows ,然后再安装 FreeBSD。FreeBSD 的引导管理器能够引导 Windows 和 FreeBSD。如 果您在 FreeBSD 之后安装 Windows ,Windows 会在自做主张的覆盖您的引导管理器。如果您 遇到这种情况,请参考下一部分的说明。
您可以使用下面三种方法中的一种来重新安装您的 FreeBSD 引导管理器:
运行 DOS,切换到 FreeBSD 发行版的 tools 目录下,寻找 bootinst.exe 文件。您可以这样运行这个程序:
...\TOOLS> bootinst.exe boot.bin
这样,引导管理器就可以被重新安装上。
再次使用 FreeBSD 引导软盘来引导系统, 然后选择 Custom 菜单项进行定制安装。 选择 Partition。 选中您先前安装了启动管理器的驱动器 (通常会是第一个) 然后进入分区表编辑器, 并直接 (也就是不要做任何修改) 按 W。 系统会要求您确认操作, 选择 [ Yes ], 然后在选择引导管理器 (Boot Manager) 时, 选择 FreeBSD Boot Manager。 这个操作会在磁盘上重写引导管理器。 接着退出安装菜单, 就可以从硬盘引导系统了。
引导 FreeBSD 引导软盘(或者 CDROM)并且选择 Fixit 菜单项。选择 Fixit 软盘或 者 CDROM #2 (“live”文件系统选项)进入 fixit shell。然后运行下面的命令:
Fixit# fdisk -B -b /boot/boot0 引导设备
把 bootdevice 替换成您实际的引导设备,比如 ad0(第一个IDE磁盘),ad4(辅助控制器上的第一个 IDE 磁盘),da0(第一个SCSI磁盘),等等。
在 IBM 较早版本的 BIOS 中有个 bug,导致机器把 FreeBSD 分区错误地看成一个潜在的 FAT suspend-to-disk 分区。当 BIOS 试图解析 FreeBSD 分区时,BIOS 便挂起了。
根据 IBM[1],下面 型号/BIOS 的版本数字 (release numbers) 含有对这个 bug 的修正。
Model | BIOS revision |
---|---|
T20 | IYET49WW or later |
T21 | KZET22WW or later |
A20p | IVET62WW or later |
A20m | IWET54WW or later |
A21p | KYET27WW or later |
A21m | KXET24WW or later |
A21e | KUET30WW |
根据报道,较晚的 IBM BIOS 版本可能又重新引入了这个 bug。 由 Jacques Vidrine 发到 FreeBSD 笔记本电脑邮件列表的 邮件 描述了一个或许可行的方法,如果您的新 IBM 笔记本电 脑不能正常的启动 FreeBSD,您可以升级或者降级您的 BIOS。
如果您使用较早版本的 BIOS,并且升级不可行时,一个规避措施是首先安装 FreeBSD,然后改变 FreeBSD 所使用的分区 ID,再安装新的能处理不同分区 ID 的引导块(boot blocks)。
首先,您需要把机器恢复到能够通过自检屏幕的状态。这一步需要在引导机器时,不让机器在主磁盘搜寻 到 FreeBSD 分区。一种方法是把硬盘摘下然后暂时移至较老版本的 ThinkPad(比如 ThinkPad 600)上或者一台 有合适转换线缆的桌面 PC 上。当您完成这一步时,您可以删除 FreeBSD 分区并且把硬盘移回。此时 ThinkPad 便可以再次引导了。
由于机器能够再次工作了,您可以使用下面描写的规避措施来安装一个可以运行的 FreeBSD。
从 http://people.FreeBSD.org/~bmah/ThinkPad/ 上下载 boot1 和 boot2。把这些文件放在您能够再次找到它们的地 方。
正常地在 ThinkPad 上安装 FreeBSD。不要使用 Dangerously Dedicated 模式。安装程序完成之后不要重启机器。
切换至 “Emergency Holographic Shell” (ALT+F4) 或者启动一个 “fixit” shell。
使用 fdisk(8) 把 FreeBSD 的分区 ID 从165改变为 166(这是 OpenBSD 使用的分区类型)。
把 boot1 和 boot2 两个文件复制到本地的文件系统上(local filesystem)。
使用 disklabel(8) 把 boot1 和 boot2 两个文 件复制到您的 FreeBSD slice 上。
# disklabel -B -b boot1 -s boot2 ad0sn
n 是您安装 FreeBSD slice 的编号。
重启。在引导提示符下,系统将提供引导 OpenBSD 的选项,但是这实际上将启 动 FreeBSD。
在同一台笔记本电脑上安装双引导 OpenBSD 和 FreeBSD 这一工作留给读者作为练习。
您可以,但是这不是一个好主意。
如果您在某个现代 IDE 驱动器上发现了坏块,那么这个驱动器将很快报销。(这个驱动器内部重映射 (remapping) 功能已经不再足以修复坏块,这意味着这个磁盘已经被严重破坏了);我们建议您购买一块新的硬盘。
如果您使用的 SCSI 驱动器有坏块,请参考这个答案。
如果您遇到这样的情况:机器慢慢停机或者当你从安装软盘引导机器时,机器不停地自动重启, 您可以问自己这样的三个问题:
您使用的是一张新的,刚刚格式化的,没有错误的软盘吗?(最好是用一张刚从盒中取出的崭新软盘, 而不是一张在床下压了三年的杂志附赠磁盘)?
您下载软盘镜像的时候使用的是二进制(或者镜像)模式吗?(不要觉得不好意思,即便是我们中间的 高手,也犯过使用 ASCII 模式下载二进制文件的错误!)
如果您在使用 Windows 95 或者 Windows 98, 您是在纯 DOS 模式下使用 fdimage 或 rawrite 这两个工具吗? 这些操作系统会干扰直接向硬件上写数据的程序, 比如磁盘创建程序; 甚至在 GUI 模式下的 DOS shell 运行这样的程序也会出现这样的问题。
还有报导说,Netscape® 在下载引导软盘时可能会出现错误,因此,如果可能的话,您最好使用一个不同的 FTP 客户端。
这个问题的一般原因是 CDROM 驱动器的配置有错误。很多 PC 现在把 CDROM 设置为第二 IDE 控制器上 的从盘,在这个控制器上没有主盘。根据 ATAPI 的规格,这是不标准的,但是 Windows 不严格的按照 ATAPI 规格进行处理,并且 BIOS 在引导系统的时候也忽略这一点。这就是为什么 BIOS 可以在引导系统时可以检测到 CDROM,但是 FreeBSD 却不能检测到 CDROM 以完成安装程序。
重新配置您的系统以把 CDROM 设置为 IDE 控制器上的主盘,或者,如果您只有一块 IDE 控制器的话, 那就把CDROM设置为从盘,但是此时 IDE 控制器上需要有主盘。
可以。使用标准的 Laplink 线缆。如果有必要,您可以参考 使用手册中的PLIP部分以获取并行端口网络的详细资 料。
注意: 一块磁盘的 “geometry”,是指这块磁盘的柱面(cylinder)数,磁头(head)数和 扇区/磁道(sectors/track)数,为了行文的方便,我们用 C/H/S 来指称一块硬盘的几何布局(geometry)。
这一点对系统管理员新手常常会导致混淆。首先,SCSI 驱动器的物理几何布局 (geometry) 跟 FreeBSD 上的磁盘区块(disk blocks)是完全不相关的。事实上,就磁盘上磁道密度的变化而言, 并没有“所谓 ”physical geometry 这种东西。硬盘制造商所说的 “physical geometry” 通常是指硬盘上使用最小空间来存放数据的几何布局(geometry)。以 IDE 磁盘而言, FreeBSD 用以存取硬盘设定的方式是 C/H/S ,然而,现代硬盘驱动器在内部运作时,早就自动转换为 block 方式 了。
关键在于 logicalgeometry。这是 BIOS 检测硬盘的几何布局 (geometry)时所得到的设定,并且用来决定硬盘存取方式。由于 FreeBSD 在引导时采用 BIOS 检测设定值, 所以如何来让 BIOS 检测到正确的设定值,是十分重要的。尤其是在同一块硬盘上有多个操作系统的情况下, 它们都必须采用一致的硬盘几何布局(geometry)。否则,您就会面严重的系统检测问题!
对 SCSI 硬盘而言, 磁盘的几何布局 (geometry) 取决于您的控制器是否启用了扩展翻译支持 (extended translation support, 通常这个选项会标示为 “支持 >1GB 的 DOS 磁盘” 或类似的概念)。 如果这个选项是关闭的, 则应使用 N 柱面 (cylinders)、 64 磁头 (heads) 和每磁道 32 扇区 (sectors/track), 此处 N 是以 MB 为单位的磁盘容量。 举例来说, 2GB 的磁盘应该是 2048 柱面、 64 磁头和每磁道 32 扇区。
如果该 SCSI 有支持使用 extended translation 的话, (通常这个方式在MS-DOS®使用上有某些限制),并且硬盘容量大于 1GB,那么硬盘的几何布局(geometry)就会 使用类似:M cylinders、每磁道 63 sectors(不是 64)、255 heads,这里讲的 M 是指硬盘的容量(单位:MB)再除以 7.844238所得出的数值!所以,在这个例子中,2GB 的硬盘应该是261 cylinders、每磁道63 sectors、255 heads。
如果您对上面所讲的不确定,或者 FreeBSD 在安装时不能正确检测到硬盘几何布局(geometry)的话,最简 单的解决方法通常是在硬盘上建立一块小的 DOS 分区。这样一来,BIOS 就能检测到正确的硬盘几何布局 (geometry)了,如果不想继续保留那一小块 DOS 分区的话,可以随时用 partition editor 来删掉它。或者把 它留着当作网卡驱动程序编程使用,也可以留做您喜欢的用途。
此外, 随 FreeBSD 发行版有一个免费提供的 pfdisk.exe 工具。 您可以在 FreeBSD CDROM 和众多 FreeBSD FTP 站点的 tools 目录中找到它。 这个程序可以从使用磁盘的其他操作系统中读取硬盘的几何布局信息。 您可以在分区表编辑器中输入这些参数。
有,您必须确认您的 root 分区是在 1024 cylinders 之内,以便让 BIOS 可以从中引导内核。(注意: 这是 PC 的 BIOS 功能限制,而不是 FreeBSD 的限制)。
对 SCSI 硬盘而言, 通常这表示将根分区放到硬盘最前面的 1024 MB (如果启用了扩展地址翻译功能, 则是最前面的 4096 MB - 参见前一个问题)。 对于 IDE 硬盘, 则是 504 MB。
FreeBSD 可以识别 Ontrack Disk Manager 并能够为其留出需要的空间。 不过, 它并不支持其他的磁盘管理器。
如果您的整块硬盘上只打算安装 FreeBSD, 就不再需要磁盘管理器了。 只要把磁盘配置为 BIOS 所能处理的最大空间 (通常是 504 兆字节), FreeBSD 会算出实际可用的空间大小。 如果您使用的是采用 MFM 控制器的旧式磁盘, 则需要告诉 FreeBSD 实际的柱面数 (cylinders)。
如果您希望在磁盘上同时安装 FreeBSD 和其他操作系统, 可能也不需要磁盘管理器: 只需确保 FreeBSD 的引导分区以及其他操作系统的分区都在前 1024 个柱面上就可以了。 如果您足够细心的话, 20 兆字节的引导分区应该够用了。
通常原因出在 FreeBSD 及 DOS 或其它操作系统在硬盘的 geometry 上有冲突。您需要重新安装 FreeBSD,只要遵守上面给出的说明,您基本就可以解决这个问题。
这是上文提到的问题的另外一个症状。这是因为您的 BIOS 几何布局(geometry)和 FreeBSD 的几何布局 (geometry)不一致。如果您的磁盘控制器和 BIOS 支持 cylinder translation (通常被标记为 “支持 >1GB 的驱动器”),尝试更改相关设定,并重装 FreeBSD。
一般而言 ,不需要。然而,我们强烈建议您的源代码最少要安装 base, 其中包含了本文中提到的一些文件,以及 sys(kernel),这是 内核的源代码。系统的操作不需要源代码,然而,kernel-configuration 程序 config(8)则需要源代码。 在没有内核源代码情况下,我们仍然可以自己构建源代码结构。你可以通过 NFS 从别的地方用只读方式装 载源代码,然后您依然能够构建新的二进制文件。(由于内核源代码的限制,我们建议您不要直接把源代码装 载到 /usr/src 下,而是装载到其他的地方,然后使用合适的符号链接 把源代码复制到源代码树的顶层架构上。)
拥有在线的源代码并且知道怎么用源代码构建整个系统,会让您更容易地把系统升级到更高级的发行版。
如果需要选择源代码的子集, 在系统安装工具选择 Distributions (软件包) 时, 选择其中的 Custom (定制安装) 菜单项。
在过去, 联编新内核原本是安装 FreeBSD 时非常必要的一步, 不过得益于近来的一些版本采用的更为人性化的内核配置方式, 内核的配置工作可以通过更灵活的 “hints” 来完成, 这些可以在引导加载器的提示符处进行。
联编只包含您用到的驱动程序有时还是有价值的, 因为这可以节省一些 RAM, 但对多数系统而言这已经不再是必需的了。
为了节约一点内存而构建一个仅仅含有您需要的驱动的新内核还是值得的,但是对大部分操作系统而言, 这一点已经不再是必需的。
FreeBSD 上的默认采用的是基于 MD5 的密码格式。 这种格式通常被认为比采用 DES 算法的传统 UNIX® 密码格式更安全。 如果您需要与仍在使用不太安全的密码格式的那些旧式操作系统共享口令文件的话, 仍然可以选择使用 DES 密码。 此外, FreeBSD 还允许使用更加安全的 Blowfish 密码格式。 新口令使用何种密码格式是由 /etc/login.conf 中所配置的 passwd_format 登录能力 (login capability) 决定的, 它可以设置为 des、 blf (如果可用) 或 md5 之一。 请参见联机手册 login.conf(5) 以了解关于登录能力的更多信息。
如果您安装了一块 IDE Zip® 或者 Jaz® 驱动器,把它卸载掉,然后重试一遍。引导软盘会被这 些驱动器搞糊涂。在系统安装之后,您可以把这些驱动器重新安装到机器上。希望这一问题可以在之后的发行版 中得到修正。
这一错误信息来自引导块和内核对磁盘设备理解之间的混淆。这一错误信息通常出现在双 IDE 系统 上,这样的系统中硬盘被设置为 IDE 控制器上的主盘或者唯一的设备,而此时 FreeBSD 安装在附属的 IDE 控制器上。引导块认为系统是安装在 ad0 (BIOS 识别出来的第二块硬盘) 上, 而内核则把第一块磁盘指派到附属控制器 ad2 上。 在设备检测之后, 内核试图装载引导块所认为的引导磁盘, ad0, 但是实际上那是 ad2,因此启动过程出现错误。
为了修正这一错误,您可以采用下面方法中一种:
重启系统,然后在 Booting kernel in 10 seconds; hit [Enter] to interrupt 提示符处按 Enter 键。这将进入 boot loader。
然后输入 set root_disk_unit="disk_number" 。 如果 FreeBSD 安装在第一块 IDE 控制器上的主盘上,disk_number 就是 0 ,如果 FreeBSD 安装在第一块 IDE 控制器的从盘上, disk_number 就是 1 ,如果FreeBSD安装在 第二块IDE控制器的主盘上,disk_number 就是 2, 如果 FreeBSD 安装在第二块 IDE 控制器的从盘上,disk_number 就是 3 。
然后输入 boot,这样您的系统应该能正确引导了。
如果想让这些改动成为永久有效的,(这样您就不需要在每次重启或者引导 FreeBSD 系统的时候做 这一工作了),把 root_disk_unit="disk_number" 这句话写入 /boot/loader.conf.local 文件中。
把 FreeBSD 磁盘移至主 IDE 控制器上,这样几块硬盘的编号就是连续的了。
内存的最高限制与所使用的平台有关。 对于标准的 i386™ 而言, 这个限制是 4 GB, 不过, 通过 pae(4) 可以支持更多的内存, 请参见 在 i386 上使用 4 GB 或更多内存。
FreeBSD/pc98 的内存上限是 4 GB, 并且不支持 PAE。 其它 FreeBSD 支持的硬件架构理论上支持非常多的内存 (数个 terabytes)。
对 FFS 文件系统而言, 其理论容量限制是 8 TB (2 G 个块), 或如果使用 8 KB 的块尺寸时, 其容量限制为 16 TB。 实际使用中, 软限制是 1 TB, 但经过修改可以使用 4 TB (并且是实际存在的)。
在 FFS 上的单个文件的最大尺寸是大约 1 G 个块, 换言之对 4 KB 块尺寸的文件系统来说, 这个尺寸限制是 4 TB。
表 3-1. 最大文件大小
FS Block Size | Works | Should Work |
---|---|---|
4 KB | > 4 GB | 4 TB - 1 |
8 KB | > 32 GB | 32 TB - 1 |
16 KB | > 128 GB | 32 TB - 1 |
32 KB | > 512 GB | 64 TB - 1 |
64 KB | > 2048 GB | 128 TB - 1 |
当 FS 的块尺寸是 4 KB 时, 系统能够使用三级间接块, 所有对象受限于三级间接块所能表达的最大 FS 块的数量 (大约是 10243 + 10242 + 1024), 然而在文件系统块数方面有一个 (错误的) 1 G - 1 限制。 FS 本身的块数限制是 2 G - 1。 当 FS 块数接近 2 G - 1 时会有一些错误, 但这样多的块在 FS 块尺寸为 4 KB 时是不可能达到的。
当文件系统块尺寸为 8 KB 或更大时, 文件系统中的对象尺寸限制应该是 2 G - 1 个块, 但实际上受制于 FS 块数限制 1 G - 1。 使用正确的 2 G - 1 块限制反而会导致错误发生。
因为您的 world 和内核(kernel)不同步, 这是不被支持的做法。 请确保您使用 make buildworld 和 make buildkernel 来升级内核。
您可以在系统引导到第二个阶段, 在引导加载器开始前的 | 符号出现时按下任意键, 另行指定用于引导系统的内核。
[1] |
来自 Keith Frechette |
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.