整理FreeBSD系统安装时关于硬盘参数提示的处理方法

时间:2021-05-23

错误信息:
WARNING: A geometry of 116301/16/63 for ad0 is incorrect.Using a more likely geometry.If this geometry is incorrect or you are unsure as to whether or not it's correct,please consult the Hardware Guide in the Documentation submenu or use the (G) eometry command to change it now.

Remember:you need to enter whatever your BIOS thinks the geometry is!For IDE,it's what you were told in the BIOS setup.For SCSI,it's the translation mode your controller is using.Do NOT use a ''physical geometry''.

这种错误一般发生在第一次安装时,可能的原因一般有:

1:全新安装的机器;
安装时在 Fdisk 中会显示出硬盘信息,包括硬盘的名字,以及柱面、磁头和扇区等硬盘参数。
柱面、磁头和扇区这些磁盘映射方式参数对于划分分区非常重要,必须保证 Fdisk 中的这些数据和 BIOS 中的数据一致,以使 Fdisk 划分出的分区被 BIOS 识别。

如果硬盘上已有分区,FreeBSD 可以从已有分区找到硬盘映射参数,通常与 BIOS 一致并可以避免它划分的分区与已有的分区冲突(不一致硬盘映射参数可能造成分区重叠);但是如果是在全新的硬盘上安装由于没有任何分区,所以 FreeBSD 直接从硬盘驱动器上获取到真实的硬盘参数,而不会是映射过的逻辑参数,因此,如果 BIOS 重新映射过硬盘参数的话,就有可能 FreeBSD 获取的真实参数与 BIOS 映射的参数不一致。

这个不一致主要时导致不同操作系统的分区重叠和启动引导问题,但是不影响数据存储;所以如果仅仅安装一个单独的 FreeBSD 系统可以不必理会硬盘参数问题,可以简单的忽略;

注: 修改 Fdisk 的硬盘映射参数可以用 G 命令进行设置;

2:已安装过 FreeBSD 系统的机器

在安装了 FreeBSD 系统之后,如果再次更改 BIOS 中的硬盘映射方式,同样也可能发生系统启动程序不能找到 FreeBSD 分区并载入 FreeBSD 系统的情况。

背景资料:

安装程序会提示两种类型的硬盘几何数据;你应该了解它们的意思:
· 真实几何数据(real geometry)
· BIOS几何数据(BIOS geometry)

真实几何数据是硬盘真实的几何数据,由系统检测。BIOS几何数据是BIOS使用的几何数据而它可以不同于真实的几何数据(例如,BIOS可以使用LBA来重新设定硬盘)。

范例是一个具有如下几何数据的IDE磁盘:
real: 6232 cyl, 16 heads, 63 sec
BIOS: 779 cyl, 128 heads, 63 sec (LBA)

你可以看到BIOS使用LBA重新设定硬盘,有效地缩减了磁柱的数目并增加了磁道的数目(但结果是一样的:6232 * 16 = 779 * 128 = 99712)。一个扇区包含512字节,这就是说硬盘大小为6232 * 16 * 63 * 512 = 3 GB。NetBSD不需要重新设定硬盘的几何数据(事实上也不会如此做)。如果sysinst出现错误时,在安装时可以手动地更改几何数据。

这个警告的意思是告诉你CHS对于freebsd来说,没法处理。简单的方法就是通过更改CHS让freebsd自己来处理。好多大容量的硬盘,freebsd都是无法根据bios里的设置划分区的。安装做fdisk时,修改geometry,输入99999/999/999,这时候系统会提示如上的警告,不用管它,回到分区界面,系统已经设置好了它认为正确的CHS。如果你坚持使用bios里的设置,系统可能存在不能启动的危险。

安装系统时,根区/,不要划得太大,否则有找不到fs的危险,一般1-200M足够了,根区就是为了一个挂接和系统维护用的,平常的工作应该放到/home区。

===============================

(一台磁盘的"gromrtry",我们指的是这台磁盘上 cylinders,heads 和 sectors/track 的数目 - 为了方便且称之为 C/H/S。这是 PC 的 BIOS 用来读/写磁盘的依据)。

为了某些理由,这似乎会导致很多困扰。
首先,一台 SCSI 装置的 physical geometry 跟 FreeBSD 在使用的 disk blocks 是完全无关的。
事实上,并没有所谓"physical geometry"这种东西,这是指磁盘驱动器上扇区密度的变化 - 制造商要求是"真实的"physical geometry 通常是指,他们所能找出浪费最少空间的 geometry 结果。 对 IDE 磁盘来说,FreeBSD 使用 C/H/S 方式工作,但是所有现在的磁盘已经在内部参考时把它转换成 block 了。

另外就是所谓的logical geometry - 这是当 BIOS 问"你的 geometry 是什么?"的时候,所得到的答案并且把它用来存取磁盘。 当开机时 FreeBSD 使用 BIOS 数据,让这个正确是相当重要的。另外,如果你在同一个磁盘驱动器上有一个以上的操作系统,他们必须都同意 grometry,否则你在开机时会有大问题!

对 SCSI 磁盘驱动器来说,geometry 的使用是依靠启动控制器来支持 extended translation ,如果不支持,那么使用 N cylinders,64 heads 和 32 sectors/track,这里'N'是指磁盘驱动器的 MB 容量。举例来说,一个 2GB 的磁盘驱动器应该假设它有 2048 cylinders,64 heads 和 32 sectors/track。

如果它确定是打开的(通常提供这种方法在 MSDOS 下有某些限制),并且磁盘容量超过 1GB,使用 M cylinders,每个 track 63 sectors (*而非* 64),以及 255 heads,这里 'M' 是每 MB 的磁盘容量除以 7.844238 (!)。所以我们的这个范例,2G 磁盘驱动器就有 261 cylinders, 每个 track 63 sectors 以及 255 heads。

如果你不确定以上这个,或是 FreeBSD 在安装过程中要侦测 geometry 的正确性时失败了,最简单的解决方法通常是在磁盘上建立一个小的 DOS 分割区。正确的 geometry 应该能被侦测到(而且如果你不想保留它,你总是可以在分割区编辑器里把这个 DOS 分割区移除掉,或是把它留下来,给程序化网络卡使用或随你高兴怎么用它)。

另外,有一个免费而有用的公用程序叫 ``pfdisk.exe'' 随着 FreeBSD 散播出来(位于 FreeBSD CDROM 的 tools 子目录 下或是在大多数的 FreeBSD ftp 站台内可找到),这个程序可用来找出另一操作系统正在使用磁盘驱动器上的哪块 geometry。然后你就可以在 分割区编辑器里面输入它。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章