fdisk的麻烦

我似乎终于明白我为什么在新硬盘上装不上FreeBSD了,问题出在CHS上。
我的新硬盘是Maxtor PATA133,2006年 FEB 16出厂,160G
物理的CHS是:
C:317632
H:16
SPT:63
Total Sectors:317632x16x63=320173056
这个数字是我从Maxtor的DOS磁盘检测工具中读出来的,与磁盘标签上的完全吻合
但是这是物理参数,C=317632,这个数目太大了,BIOS无法接受。
由于我的硬盘是IDE的PATA,主板是nForce2,BIOS的解决方案是保持H不变,增大SPT到255
也就是说,CHS变成了
C':65535
H':16
SPT':255
Total Sectors=65535x16x255=267382800
这里就出现了一个很严重的问题。
SPT'/SPT=255/63不是整数,于是C'=317632x16x63/255/16=78473
但是我的BIOS只能识别到65535,于是实际可用的Sectors就只有267382800个,可怕
然后其次是,
FreeBSD从来都是用来服务器上的,大多数设置都是针对服务器针对SCSI硬盘的。
SCSI硬盘的解决方式一般是把SPT保持不变,还是63,而增大H到255,从而降低C.
于是FreeBSD的fdisk要求SPT必须小于等于63
我在disklabel的时候,发生意外的io错误,我仔细看,它试图读取某个tracker的160号扇
区上的supper block的备份。而fdisk分区的时候,SPT设置的是63,然后就出错了。
由于disklabel失败,于是mount /dev/ad0s3a /mnt
的时候,就出现incorrect supper block
这个问题从FreeBSD5.1的时候就有人在maillist中提出了。我今天在6.0下测试,问题依旧
“In the meantime, the workaround for anyone experiencing this problem is to
go into their BIOS and set the hard drive to "User" mode, and manually enter
the same C/H/S settings that FDisk calculated for the drive. Unfortunately,
I think this means that if you have to repartition and reformat the entire
drive, since the BIOS will now be addressing the drive using different C/H/S
settings and will be unable to read any partitions that were formatting
using different C/H/S addressing. So while there is a workaround, it is far
from an ideal user experience.”

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥