完成布局后,您现在应该对内容放置位置有一个详细的描述。 最有可能这将是在纸上,但希望有人会制作一个更自动化的系统,可以处理从设计到分区,再到格式化和安装的所有事情。 这是实现设计的必经之路。
现代发行版都带有安装工具,这些工具将指导您完成分区和格式化,并自动为您设置 /etc/fstab
。 但是,对于以后的修改,您需要了解底层的机制。
在开始之前,请确保您已准备好以下内容
当您启动 DOS 或类似系统时,您会发现所有分区都标记为 C:
及更高版本,没有区分 IDE、SCSI、网络或任何类型的介质。 在 Linux 的世界中,情况则大不相同。 在启动过程中,您将看到如下描述的分区
Dec 6 23:45:18 demos kernel: Partition check: Dec 6 23:45:18 demos kernel: sda: sda1 Dec 6 23:45:18 demos kernel: hda: hda1 hda2
SCSI 驱动器标记为 sda
、sdb
、sdc
等,而 (E)IDE 驱动器标记为 hda
、hdb
、hdc
等。 还有所有设备的标准名称,完整信息可以在 /dev/MAKEDEV
和 /usr/src/linux/Documentation/devices.txt
中找到。
分区为每个驱动器按数字标记,例如 hda1
、hda2
等。 在 SCSI 驱动器上,每个驱动器可以有 15 个分区,在 EIDE 驱动器上,每个驱动器可以有 63 个分区。 这两个限制都超过了目前大多数磁盘的实用需求。
然后根据文件 /etc/fstab
挂载这些分区,之后它们才会作为文件系统的一部分出现。
感觉真好 / 风险很小 / 当我用 fdisk 清除 / 窗口时! (Dustbunny 在 一期 User Friendly 漫画中的歌曲 "Refund this" 中说道)
首先,您必须将每个驱动器分区成多个独立的分区。 在 Linux 下,有两种主要方法:fdisk
和更面向屏幕的 cfdisk
。 这些都是复杂的程序,请非常仔细地阅读手册。 对于专家,现在还有 sfdisk
。
分区有 3 种类型:primary
(主分区)、extended
(扩展分区)和 logical
(逻辑分区)。 您必须使用 primary
分区进行启动,但主分区最多只能有 4 个。 如果您想要更多分区,则必须定义一个 extended
分区,并在其中定义您的 logical
分区。
每个分区都有一个标识号,用于告知操作系统它的类型,对于 Linux,您需要知道的类型是 swap(82)
(交换分区)和 ext2fs(83)
(ext2 文件系统)。 如果您想使用自动启动的 RAID,则必须查看 RAID 分区相应类型编号的文档。
fdisk
附带一个自述文件,其中提供了有关分区的更深入信息。
有人刚刚制作了一个分区 HOWTO,其中包含了关于分区细节的出色而深入的信息。 我将不再在此处重复并进一步扩充本文档,而是将您推荐给它。
Redhat 编写了一个面向屏幕的实用程序,名为 Disk Druid,据称它是 fdisk
和 cfdisk
的用户友好替代品,并且还可以自动化一些其他事情。 不幸的是,该产品还不够成熟,因此如果您使用它并且无法使其工作,那么明智的做法是尝试 fdisk
或 cfdisk
。
为了不甘示弱,Mandrakesoft 制作了一个更图形化的替代品,名为 Diskdrake,它也提供了许多功能。
此外,GNU 项目还提供了一个分区工具,名为 GNU Parted
Ranish Partition Manager 是另一个免费的替代方案,而 Partition Magic 是一个流行的商业替代方案,它还提供对调整 ext2fs
分区大小的一些支持。
请注意,如果 Windows 在驱动器上找到多个主分区,它会报错。 此外,它似乎先为找到的磁盘分配驱动器盘符给主分区,然后再从第一个磁盘开始为逻辑分区分配后续驱动器名称。
如果您想在系统上安装 DOS/Windows,您应该首先创建该分区,一个用于启动的主分区,使用 DOS fdisk
程序创建。 然后,如果您想要安装 NT,则将其放在那里。 最后,对于 Linux,您可以使用 Linux fdisk
程序或同等工具创建这些分区。 Linux 足够灵活,可以从主分区和逻辑分区启动。
有关 DOS fdisk
的深入信息可以在 Fdisk.com 和 MS-DOS 5.00 - 7.10 未公开、秘密 + 隐藏功能 中找到,后者甚至详细介绍了更多错误和陷阱。
有时,需要更改现有分区的大小,同时保持内容完整。 一种方法当然是备份所有内容,重新创建新分区,然后恢复旧内容,虽然这可以让您的备份系统得到很好的测试,但它也非常耗时。
分区大小调整是一种更简单的替代方案,它首先将文件系统缩小到所需的卷,然后更新分区表以反映分区的新结束位置。 因此,此过程对文件系统非常敏感。
重新分区需要文件空间末尾有可用空间,因此为了确保您能够缩小大小,您应该首先整理驱动器碎片并清空任何回收站。
使用 fips,您可以调整 fat
分区的大小,并且最新版本 1.6 的 fips
或 fips 2.0
也能够调整 fat32
分区的大小。 请注意,这些程序实际上是在 DOS 下运行的。
调整其他文件系统的大小要复杂得多,但一个流行的商业系统 Partition Magic 能够调整更多文件系统类型的大小,包括使用 resize2fs
程序的 ext2fs
。 确保您获得此程序的最新更新,因为最近的版本在处理大磁盘时存在问题。
为了充分利用 fips
,您应该首先删除不必要的文件,清空回收站等,然后再整理驱动器碎片。 这样,您可以为其他分区分配更多空间。 如果程序抱怨驱动器末尾仍有文件,则可能是 Microsoft Mirror 或 Norton Image 生成的隐藏文件。 这些文件可能名为 image.idx
和 image.dat
,包含一些系统文件的备份。
有报告称,在某些 Windows 碎片整理程序中,您应该确保未选中“允许 Windows 移动文件”框,否则您最终会在分区的最后一个柱面中留下一些文件,这将阻止 FIPS 回收空间。
如果您在 DOS 分区的末尾仍然有无法移动的文件,您应该获取 DOS 程序 showfat 3.0 或更高版本。 这会显示哪些文件在哪个位置,以便您可以直接处理它们。
一个免费软件替代方案是 Partition Resizer,它可以缩小、增长和移动分区。
某些版本的 DOS/Windows 对于 defrag
有一个隐藏标志,“/P
”,它使 defrag
甚至可以移动隐藏文件。 使用风险自负。
重新分区与任何其他分区一样都是危险的过程,因此建议您手头准备好新的备份。
在 Microsoft 产品中,一直到 Win 98,都存在一个棘手的错误,可能会给您带来一些麻烦:如果您有多个主 fat
分区,并且最后一个扩展分区不是 fat
分区,则 Microsoft 系统将尝试挂载最后一个分区,就好像它是最后一个主 FAT 分区一样。
在网上可以找到更多关于此问题的 信息。
为了避免这种情况,您可以在磁盘末尾放置一个小型的逻辑 fat
分区。
有关多操作系统安装的更多信息可在 V Communications 网站上找到,但他们不断地重新排列链接,因此此处无法提供直接链接。
由于某些硬件附带的设置软件仅在 DOS 下可用,因此这无论如何都可能派上用场。 值得注意的例子是 DPT 的 RAID 控制器和许多网卡。
md
)
由于它处于不断变化的状态,您应该确保阅读有关此内核功能的最新文档。 它尚不稳定,请注意。
简要解释一下,它的工作原理是将分区添加到新的设备 md0
、md1
等中,使用 mdadd
,然后在您使用 mdrun
激活它们之前。 此过程可以使用文件 /etc/mdtab
自动化。
最新的 md
系统使用 /etc/raidtab 和不同的语法。 确保您的 RAID 工具包与 md
版本匹配,因为内部协议已更改。
然后,您可以像对待驱动器上的任何其他分区一样对待这些设备。 继续进行格式化等操作,如下所述,使用这些新设备。
现在还有一个关于使用 md
进行 RAID 的 HOWTO 正在开发中,您应该阅读它。
接下来是分区格式化,放置将描述文件及其位置的数据结构。 如果这是您第一次进行格式化,建议您使用带验证的格式化。 严格来说,这应该不是必需的,但这会充分锻炼 I/O,从而在您存储珍贵数据之前发现潜在问题,例如不正确的终止。 查找命令 mkfs
以获取更多详细信息。
Linux 可以支持大量文件系统,与其重复这些细节,不如阅读 fs
的手册页,其中详细描述了它们。 请注意,您的内核必须编译了驱动程序或将其制作为模块,才能使用这些功能。 当需要编译内核时,您应该仔细阅读文件系统功能列表。 如果您使用 make menuconfig
,您可以获得每种文件系统类型的在线帮助。
请注意,某些救援盘系统需要将 minix
、msdos
和 ext2fs
编译到内核中。
此外,必须准备交换分区,为此您可以使用 mkswap
。
有关使用 DOS 和 Windows 进行格式化的一些重要注意事项可以在 MS-DOS 5.00 - 7.10 未公开、秘密 + 隐藏功能 中找到。
请注意,此格式化是高级格式化,它将文件系统写入磁盘,而不是低级格式化,后者布局磁道和扇区。 后者如今几乎不需要。
分区上的数据在挂载到挂载点之前,文件系统无法访问。 这可以使用 mount
手动完成,也可以在启动期间通过向 /etc/fstab
添加适当的行自动完成。 阅读 mount
的手册,并密切注意制表符。
fstab
在启动过程中,系统会挂载 fstab
文件中描述的所有分区,该文件可能如下所示
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/hda2 / ext2 defaults 0 1
None none swap sw 0 0
proc /proc proc defaults 0 0
/dev/hda1 /dosc vfat defaults 0 1
此文件对使用的格式有点敏感,因此最好也是最方便的方法是使用为此目的制作的编辑工具来编辑它,例如 netfstool,一个基于 Tcl/Tk 的文件系统挂载器,以及 kfstab,一个用于 KDE 的编辑工具。
简而言之,这些字段是分区名称、分区的挂载位置、文件系统类型、挂载选项、备份时机和何时进行 fsck
。
Linux 提供了并行文件检查 (fsck
) 的可能性,但为了提高效率,重要的是不要一次 fsck
驱动器上的多个分区。
挂载,无论是手动还是使用 fstab
,都允许使用许多提供额外保护的选项。 以下是一些更有用的选项。
不要解释文件系统上的字符或块特殊设备。
这禁止在挂载的文件系统上执行任何二进制文件。 在假脱机区域很有用。
这禁止在挂载的文件系统上设置用户标识符或设置组标识符。 在主目录中很有用。
有关更多信息和注意事项,请参阅 mount
和 fstab
的手册页。
在构建和实施了您巧妙的方案后,强烈建议您将所有内容记录下来,写在纸上。 毕竟,如果机器宕机,将所有必要信息存储在磁盘上是没有用的。
分区表可能会损坏或丢失,在这种情况下,极其重要的是您在 fdisk
中输入完全相同的数字,以便您可以恢复您的系统。 您可以使用程序 printpar
来清晰地记录表格。 还要写下每个磁盘的 SCSI 编号或 IDE 名称,以便您可以按正确的顺序重新组装系统。
附录 附录 M:磁盘系统文档生成器 中还有一个小型脚本,它将生成您的磁盘配置摘要。
为了检查您的硬盘,您可以使用 网上提供的 Disk Advisor 启动盘。 磁盘构建器需要 Windows 才能运行。 该系统对于诊断故障磁盘很有用。
强烈建议您制作救援盘并测试它。 大多数发行版都提供救援盘,通常是安装盘的一部分。 对于某些发行版,例如 Redhat 6.1,将磁盘作为救援盘调用的方法是在启动提示符下键入 linux rescue。
网上还有专门的救援盘发行版。
当需要救援盘时,您将需要知道您的根分区和启动分区的位置,您需要将其写下来并安全保存。
注意:启动盘和救援盘之间的区别在于,如果启动盘无法挂载文件系统(通常在您的硬盘上),则启动盘将失败。 救援盘是独立的,即使没有硬盘也可以工作。