笑傲天下 發表於 2008-9-8 18:49:29

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

<p>错误信息:<br />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&#39;s correct,please consult the Hardware Guide in the Documentation submenu or use the (G) eometry command to change it now.</p>
<p>Remember:you need to enter whatever your BIOS thinks the geometry is!For IDE,it&#39;s what you were told in the BIOS setup.For SCSI,it&#39;s the translation mode your controller is using.Do NOT use a &#39;&#39;physical geometry&#39;&#39;.</p>
<p>这种错误一般发生在第一次<a class="UBBWordLink" href="#" target="_blank">安装</a>时,可能的原因一般有:</p>
<p>1:全新<a class="UBBWordLink" href="#" target="_blank">安装</a>的机器;<br /><a class="UBBWordLink" href="#" target="_blank">安装</a>时在 Fdisk 中会显示出硬盘信息,包括硬盘的名字,以及柱面、磁头和扇区等硬盘参数。<br />柱面、磁头和扇区这些磁盘映射方式参数对于划分分区非常重要,必须保证 Fdisk 中的这些数据和 BIOS 中的数据一致,以使 Fdisk 划分出的分区被 BIOS 识别。</p>
<p>如果硬盘上已有分区,FreeBSD 可以从已有分区找到硬盘映射参数,通常与 BIOS 一致并可以避免它划分的分区与已有的分区冲突(不一致硬盘映射参数可能造成分区重叠);但是如果是在全新的硬盘上<a class="UBBWordLink" href="#" target="_blank">安装</a>由于没有任何分区,所以 FreeBSD 直接从硬盘驱动器上获取到真实的硬盘参数,而不会是映射过的逻辑参数,因此,如果 BIOS 重新映射过硬盘参数的话,就有可能 FreeBSD 获取的真实参数与 BIOS 映射的参数不一致。</p>
<p>这个不一致主要时导致不同<a class="UBBWordLink" href="#" target="_blank">操作</a><a class="UBBWordLink" href="#" target="_blank">系统</a>的分区重叠和启动引导问题,但是不影响数据存储;所以如果仅仅<a class="UBBWordLink" href="#" target="_blank">安装</a>一个单独的 FreeBSD <a class="UBBWordLink" href="#" target="_blank">系统</a>可以不必理会硬盘参数问题,可以简单的忽略;</p>
<p>注: 修改 Fdisk 的硬盘映射参数可以用 G 命令进行<a class="UBBWordLink" href="#" target="_blank">设置</a>;</p>
<p>2:已<a class="UBBWordLink" href="#" target="_blank">安装</a>过 FreeBSD <a class="UBBWordLink" href="#" target="_blank">系统</a>的机器</p>
<p>在<a class="UBBWordLink" href="#" target="_blank">安装</a>了 FreeBSD <a class="UBBWordLink" href="#" target="_blank">系统</a>之后,如果再次更改 BIOS 中的硬盘映射方式,同样也可能发生<a class="UBBWordLink" href="#" target="_blank">系统</a>启动程序不能找到 FreeBSD 分区并载入 FreeBSD <a class="UBBWordLink" href="#" target="_blank">系统</a>的情况。</p>
<p>背景资料:</p>
<p><a class="UBBWordLink" href="#" target="_blank">安装</a>程序会提示两种类型的硬盘几何数据;你应该了解它们的意思:<br />&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 真实几何数据(real geometry)<br />&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIOS几何数据(BIOS geometry)</p>
<p>真实几何数据是硬盘真实的几何数据,由<a class="UBBWordLink" href="#" target="_blank">系统</a>检测。BIOS几何数据是BIOS使用的几何数据而它可以不同于真实的几何数据(例如,BIOS可以使用LBA来重新设定硬盘)。</p>
<p>范例是一个具有如下几何数据的IDE磁盘:<br />real:&nbsp; 6232 cyl,&nbsp;&nbsp; 16 heads,&nbsp; 63 sec<br />BIOS:&nbsp;&nbsp; 779 cyl,&nbsp; 128 heads,&nbsp; 63 sec&nbsp;&nbsp; (LBA)</p>
<p>你可以看到BIOS使用LBA重新设定硬盘,有效地缩减了磁柱的数目并增加了磁道的数目(但结果是一样的:6232 * 16 = 779 * 128 = 99712)。一个扇区包含512字节,这就是说硬盘大小为6232 * 16 * 63 * 512 = 3 GB。NetBSD不需要重新设定硬盘的几何数据(事实上也不会如此做)。如果sysinst出现错误时,在<a class="UBBWordLink" href="#" target="_blank">安装</a>时可以手动地更改几何数据。</p>
<p>这个警告的意思是告诉你CHS对于freebsd来说,没法处理。简单的<a class="UBBWordLink" href="#" target="_blank">方法</a>就是通过更改CHS让freebsd自己来处理。好多大容量的硬盘,freebsd都是无法根据bios里的<a class="UBBWordLink" href="#" target="_blank">设置</a>划分区的。<a class="UBBWordLink" href="#" target="_blank">安装</a>做fdisk时,修改geometry,输入99999/999/999,这时候<a class="UBBWordLink" href="#" target="_blank">系统</a>会提示如上的警告,不用管它,回到分区界面,<a class="UBBWordLink" href="#" target="_blank">系统</a>已经<a class="UBBWordLink" href="#" target="_blank">设置</a>好了它认为正确的CHS。如果你坚持使用bios里的<a class="UBBWordLink" href="#" target="_blank">设置</a>,<a class="UBBWordLink" href="#" target="_blank">系统</a>可能存在不能启动的危险。</p>
<p><a class="UBBWordLink" href="#" target="_blank">安装</a><a class="UBBWordLink" href="#" target="_blank">系统</a>时,根区/,不要划得太大,否则有找不到fs的危险,一般1-200M足够了,根区就是为了一个挂接和<a class="UBBWordLink" href="#" target="_blank">系统</a>维护用的,平常的工作应该放到/home区。</p>
<p>===============================</p>
<p>(一台磁盘的&quot;gromrtry&quot;,我们指的是这台磁盘上 cylinders,heads 和 sectors/track 的数目 - 为了方便且称之为 C/H/S。这是 PC 的 BIOS 用来读/写磁盘的依据)。</p>
<p>为了某些理由,这似乎会导致很多困扰。<br />首先,一台 SCSI 装置的 physical geometry 跟 FreeBSD 在使用的 disk blocks 是完全无关的。<br />事实上,并没有所谓&quot;physical geometry&quot;这种东西,这是指磁盘驱动器上扇区密度的变化 - 商要求是&quot;真实的&quot;physical geometry 通常是指,他们所能找出浪费最少空间的 geometry 结果。 对 IDE 磁盘来说,FreeBSD 使用 C/H/S 方式工作,但是所有现在的磁盘已经在内部参考时把它转换成 block 了。</p>
<p>另外就是所谓的logical geometry - 这是当 BIOS 问&quot;你的 geometry 是什么?&quot;的时候,所得到的答案并且把它用来存取磁盘。 当开机时 FreeBSD 使用 BIOS 数据,让这个正确是相当重要的。另外,如果你在同一个磁盘驱动器上有一个以上的<a class="UBBWordLink" href="#" target="_blank">操作</a><a class="UBBWordLink" href="#" target="_blank">系统</a>,他们必须都同意 grometry,否则你在开机时会有大问题!</p>
<p>对 SCSI 磁盘驱动器来说,geometry 的使用是依靠启动来支持 extended translation ,如果不支持,那么使用 N cylinders,64 heads 和 32 sectors/track,这里&#39;N&#39;是指磁盘驱动器的 MB 容量。举例来说,一个 2GB 的磁盘驱动器应该假设它有 2048 cylinders,64 heads 和 32 sectors/track。</p>
<p>如果它确定是打开的(通常提供这种<a class="UBBWordLink" href="#" target="_blank">方法</a>在 MSDOS 下有某些限制),并且磁盘容量超过 1GB,使用 M cylinders,每个 track 63 sectors (*而非* 64),以及 255 heads,这里 &#39;M&#39; 是每 MB 的磁盘容量除以 7.844238 (!)。所以我们的这个范例,2G 磁盘驱动器就有 261 cylinders, 每个 track 63 sectors 以及 255 heads。</p>
<p>如果你不确定以上这个,或是 FreeBSD 在<a class="UBBWordLink" href="#" target="_blank">安装</a>过程中要侦测 geometry 的正确性时失败了,最简单的<a class="UBBWordLink" href="#" target="_blank">解决</a><a class="UBBWordLink" href="#" target="_blank">方法</a>通常是在磁盘上建立一个小的 DOS 分割区。正确的 geometry 应该能被侦测到(而且如果你不想保留它,你总是可以在分割区编辑器里把这个 DOS 分割区移除掉,或是把它留下来,给程序化<a class="UBBWordLink" href="#" target="_blank">网络</a>卡使用或随你高兴怎么用它)。</p>
<p>另外,有一个免费而有用的公用程序叫 ``pfdisk.exe&#39;&#39; 随着 FreeBSD 散播出来(位于 FreeBSD CDROM 的 tools 子目录 下或是在大多数的 FreeBSD ftp 站台内可找到),这个程序可用来找出另一<a class="UBBWordLink" href="#" target="_blank">操作</a><a class="UBBWordLink" href="#" target="_blank">系统</a>正在使用磁盘驱动器上的哪块 geometry。然后你就可以在 分割区编辑器里面输入它。</p>
頁: [1]
查看完整版本: 整理FreeBSD系统安装时关于硬盘参数提示的处理方法