你获得了一个新磁盘。该怎么做? 在软件方面:使用 fdisk
或 cfdisk
创建分区,然后使用 mke2fs
或 mkreiserfs
等创建文件系统,再使用 mount
将新的文件系统挂载到大的文件层次结构中。 确保你使用的这些工具是相对较新的版本 - 通常旧版本在处理大型磁盘时会有问题。
你无需阅读此 HOWTO,因为现在的大型硬盘 *没有* 问题。
很久以前,当磁盘容量大于 528 MB、或 8.4 GB、或 33.8 GB 时,就被认为是大型磁盘。 如今,有趣的限制是 137 GB。 在所有情况下,足够新的 Linux 内核都能很好地处理这些磁盘。
有时启动需要一些注意,因为 Linux 在尚未运行时无法帮助你。 但是,再次强调,使用足够新的 BIOS 和引导加载程序,就不会有问题。 下面的大部分文本将讨论以下情况: (i) 古老的硬件,(ii) 损坏的硬件或 BIOS,(iii) 同一磁盘上的多个操作系统,(iv) 启动旧系统。
建议
对于大型 SCSI 磁盘:Linux 从很早以前就支持它们。 无需任何操作。
对于大型 IDE 磁盘(大于 8.4 GB):确保你的内核是 2.0.34 或更高版本。
对于大型 IDE 磁盘(大于 33.8 GB):确保你的内核是 2.0.39/2.2.14/2.3.21 或更高版本。
对于大型 IDE 磁盘(大于 137 GB):确保你的内核是 2.4.19/2.5.3 或更高版本。
如果内核启动正常,并且启动消息表明它正确识别了磁盘,但实用程序出现问题,请升级实用程序。
如果 LILO 在启动时挂起,请确保你拥有 21.4 或更高版本,并在配置文件 `/etc/lilo.conf` 中指定关键字 `lba32`。 对于旧版本的 LILO,请尝试使用和不使用 `linear` 关键字两种情况。
可能存在几何结构问题,可以通过为 kernel/LILO/fdisk 提供显式的几何结构来解决。
如果你有一个旧版本的 `fdisk`,并且它警告关于 重叠 分区:忽略这些警告,或者使用 `cfdisk` 检查以确保一切正常。
对于 HPT366,请参阅 Linux HPT366 HOWTO。
如果在启动时内核无法读取分区表,请考虑可能是选择了 UDMA66,但控制器、电缆或磁盘驱动器不支持 UDMA66。 在这种情况下,每次读取尝试都会失败,而读取分区表是内核做的第一件事。 确保不使用 UDMA66。
如果 BIOS 因为大型磁盘在启动时挂起,并且刷新到更新版本不是一个选项,请将该磁盘从 BIOS 设置中移除。 如果你必须从该磁盘启动,请查看容量限制跳线是否有帮助。
如果你认为磁盘大小有问题,请确保你没有混淆二进制和十进制 单位,并意识到 df
在空磁盘上报告的可用空间比分区大小小几个百分点,因为存在管理开销。 不理解 48 位寻址的软件会将 137+ GB 的磁盘视为容量为 137 GB。 当存在容量限制 跳线 时,较大的磁盘可能已被限制为 33 GB 或 2 GB。
如果对于可移动驱动器,内核报告两个不同的大小,那么一个是来自驱动器的,另一个是来自磁盘/软盘的。 当驱动器没有介质时,第二个值将为零。
现在,如果你仍然认为有问题,或者只是好奇,请继续阅读。
下面是对所有相关细节的相当详细的描述。 我使用内核版本 2.0.8 源代码作为参考。 其他版本可能略有不同。