B.5. Debian 分区程序

Debian 开发人员配置了几种在不同硬盘和不同体系结构上的分区程序。下面是一个适合您的结构的程序列表。

partman

推荐的 Debian 分区工具。这个小而全的工具可以修改分区大小,创建文件系统 (在 Windows 下的说法是 “format”) 以及联系分区至挂接点。

fdisk

原始版本的 Linux 磁盘分区工具,对于高手很好用。

这里注意,如果您的机器上有一个 FreeBSD 分区。安装内核将包括这些分区的支持,但是 fdisk 表示他们的设备名称方式可能有所不同(也可能不是)。请参照 Linux+FreeBSD HOWTO

cfdisk

一个简单易用,给其它人使用的是全屏幕磁盘分区程序。

请注意 cfdisk 完全不了解 FreeBSD 的分区,因此,再一次设备名称可能最后有所不同。

当您选择 对硬盘进行分区 时,程序之一将会运行。如果缺省运行的那个非您所希望,退出分区程序,在 shell (tty2) 下按下 Alt 以及 F2,并且手工输入您想使用的程序名称(以及可能的参数)。然后跳过 对硬盘进行分区 步骤至 debian-installer 并继续进行下一步。

如果您的 ide 磁盘上会超过多过 20 个分区,您将需要为 21 以上的分区创建设备文件。这种情况下如果只是一个普通的设备文件则下一步初始化分区将失败。作为一个例子,这里列举了相关的命令,让您可以在 tty2 中使用或者在运行一个 Shell 下加入一个设备文件,令多于 21 个的分区能够被初始化。

# cd /dev
# mknod hda21 b 3 21 
# chgrp disk hda21
# chmod 660 hda21

除非在目标系统上有合适的设备名称,否则引导一个新的系统将会失败。在安装完内核和模块以后,执行:

# cd /target/dev
# mknod hda21 b 3 21 
# chgrp disk hda21
# chmod 660 hda21

记住标记您的引导分区为 “Bootable”。

B.5.1. 为 Intel x86 准备分区

如果您已经有 DOS 或 Windows 这样的其他操作系统存在,并想在安装 Debian 时保留它们,您应该重新设置分区大小,释放更多的空间给 Debian 安装程序。安装程序支持 FAT 和 NTFS 文件系统的尺寸修改;当您走到安装程序的分区步骤,选择手动分区,只需选择该分区,并更改其尺寸。

PC BIOS 一般会对磁盘分区加入一些约束。比如一个磁盘驱动可以含有多少个 “主 (primry) ” 和 “ 逻辑 ” 分区。在 1994-1998 年的 BIOS 里,还有关于 BIOS 能够从什么地方引导的限制。详细的信息可以在 Linux Partition HOWTO 以及 Phoenix BIOS FAQ 中找到。但是这一节将包含一个简单的介绍,来帮助在大部分情况下进行规划。

Primary” 分区是 PC 磁盘上最原始的分区方案。但是,每个磁盘只能含有四个主分区。为了突破这个限制,发明了 “拓展 (extended)” 以及 “ 逻辑 ” 分区。通过设置一个主分区为拓展分区,您可以把它相关的分区划分成逻辑分区。您最多可以为每个拓展分区分配多至 60 逻辑驱动器;但是每个磁盘您只能含有一个扩展分区。

对于 SCSI 来说,Linux 限制每个驱动器最多有 15 个分区(3 个可用的主分区,12 个逻辑分区)。对于 IDE 来说可以有 63 个分区(3 个可用的主分区,60 个逻辑分区)。但是对于正常的 Debian GNU/Linux 版本来说,系统只支持 20 个分区设备,因此您可能不能安装超过 20 个的分区,除非您为这些首先手工创建了设备文件。

如果您有一个巨大的 IDE 磁盘,并且既没有使用 LBA 寻址,也没有扩展驱动器(硬盘制造商有时候提供此功能),那么引导分区(含有您内核映像的分区)必须放置在硬盘第一个 1024 柱面内。(在没有 BIOS 转换的情况下,大约有 524MB)。

如果您的 BIOS 在 1995-98 年之后出现(取决于制造商)并且支持 “Enhanced Disk Drive Support Specification”,这个限制并不有效。Lilo,Linux Loader 以及 Debian 的方案 mbr 必须使用 BIOS 来从磁盘读取内核至内存。如果 BIOS int 0x13 大硬盘访问拓展被打开,则将被使用。否则会使用遗留的磁盘访问界面,并且它不能找到任何大于 1023rd 柱面。一旦 Linux 被引导后,不管您的计算机 BIOS 是什么,这些限制将不再起任何作用,因为 Linux 并不使用 BIOS 来进行磁盘寻址。

如果您有一个大硬盘,您也许必须使用柱面转换(cylinder translation)技术。它可以在您的 BIOS 设置程序中打开,比如 LBA (Logical Block Addressing) 或者 CHS 转换模式(“Large”)。关于大硬盘的各种问题可以在 Large Disk HOWTO 下找到。如果您正在使用一个柱面转换方案,并且 BIOS 并不支持大硬盘访问拓展,您的引导分区必须放置在 转换后 的 1024 柱面内。

解决这个问题的推荐方法,是在磁盘开始处创建一个小的(5-10MB 足矣)分区来作为引导分区。并且在其它地方创建其它的分区。这个引导分区 必须 挂接至/boot 下,这是因为它是 Linux 内核放置的地方。这样的配置将可以在任意系统上工作,不管 LBA 或者大硬盘 CHS 转换是否起作用,甚至也不管您的 BIOS 是否支持大硬盘访问扩展。