排除故障

不幸的是,分区大小调整操作有时候并不能像预期的那样运行。最常见的是,调整软件报告的错误,通常是一条加密的消息。尽管此类问题有许多原因,但是您可以通过应用一个简单工作区来战胜这些困难,比如修复文件系统问题、将一个复杂的调整操作分成几个小块。

修复文件系统问题

调整失败一个常见的原因是文件系统被损坏。所有生产文件系统包括文件系统恢复工具,使您可以修复此类问题。因此在调整之前就在文件系统上运行这些工具,通常调整操作较为顺畅。

在 Linux 中,文件系统检查工具被称为 fsck,您可以通过传递想要检查的文件系统相关的设备文件名来调用它,正如在 fsck /dev/sda1 中检查 /dev/sda1。然而,fsck 实用工具大部分是一个特定文件系统工具的前端。比如e2fsck针对 ext2fs、ext3fs 和 ext4fs)。 通过直接调用特定文件系统工具,通常可以获得更高级选项的访问权。例如,e2fsck  -f 选项强迫它检查设备,即使文件系统是空的。这些选项对于发现损坏是必须的,而这些损坏在粗略检查过程中不易被发现。检查特定文件系统的帮助程序的文档,了解这些选项。

多数情况下,必须在一个已卸载的文件系统上运行 fsck 或帮助程序。因此,您可能需要从一个紧急引导磁盘来进行这些操作,如本系列第 1 部分所述。

如果您在使用非 Linux 文件系统遇到问题时,您能够使用 fsck 来查看它;然而您也需要将其引导到文件系统的本地操作系统来做这项工作。特别是,在 Linux 中 Microsoft® Windows® New Technology File System (NTFS) 文件系统有独一无二的基本维修工具。想要检查 NTFS 工作是否进展顺利,您必须使用 Windows CHKDSK 实用工具。您需要运行这个实用工具几次,直到它报告磁盘不再有错误。Linux ntfsfix 实用工具执行 Linux 中很少检查的文件系统,并将它们标记为下次 Windows 引导时自动检查。

尽管本质上不是一个文件系统集成问题,但磁盘碎片是另一个需要注意的问题。有时候,您可以在调整操作之前,执行一个磁盘碎片整理操作来排除问题,对于 Linux 本地文件系统这一任务几乎不会用到通常也没必要);然而,对于 File Allocation Table (FAT) 或者 NTFS 分区,这是很有帮助的。

分解操作

如果您开始进行大量的调整以及将操作移到 GParted 的工作,而操作失败,那么您可以尝试一次只输入一个操作,然后立即单击 Apply 按钮。您仍然可能遇到问题,但是至少您可以执行其他操作,不再依靠出现问题的那个操作。根据具体情况,至少可以实现部分总体目标,或者找到解决问题的方法。

在某些情况下,您可能需要跨多个实用工具分解调整操作。例如,您可以使用 Windows 或 Mac OS X 实用程序来调整 FAT、NTFS 或 Hierarchical File System Plus (HFS+) 分区大小。尽管 GParted 是 Linux 中调整分区大小最易操作的方法,如果只有一个操作出现问题,使用基础的文本模式实用工具,比如 resize2fs,可以给您提供更好的诊断输出,甚至在 GParted 失败的地方也会成功。然而,您要记住多数文本模式工具要么可以调整分区,要么可以调整文件系统大小,但是不能两个同时调整;您必须将两种工具合并到一起来调整一个分区 其文件系统。GNU Parted 实用工具是一个例外,像它的 GUI “近亲” GParted 一样,同时可以调整分区及其文件系统的大小。

转到计划 B

有时候试图调整您的分区行不通。或许是文件系统出了一个不容易解决的错误,或许是您想要缩小一个不能缩小的文件系统例如 XFS 或 JFS),在这些情况下,您必须选择一个备用方案,比如迁移现有分区结构的目录、执行备份 - 重新分区 - 恢复backup-repartition-restore)操作或者添加更多磁盘空间。

迁移目录不需要重新分区

有时候,您可以迁移目录,而实际上不需要对磁盘进行重新分区。诀窍是使用符号链接来从一个位置指向另一个位置,甚至跨分区。例如,假设您正在使用 Gentoo 系统,它可以消耗 /usr/portage 和 /var/tmp/portage 目录下大量磁盘空间。如果您在建立系统时没有考虑到这一需要,您可能会耗尽空间。然而,在隔离的 /home 分区上可能也有可用空间,为了让 Portage 使用这些空间,您可以在 /home 下创建一个或多个目录,将 /usr/portage 或 /var/tmp/portage 内容复制到新的目录,删除原始目录,在原始目录的位置创建符号链接,指向新的 /home 子目录。

这个方法是有效的,且在较小范围内是方便的;然而,却创建了一个非标准系统。因此,我建议您少使用此方法,最好只是短期使用 — 例如,作为等待新硬盘到来时的一个权宜之策,或者用于您计划一到两个月检索一次的系统。

备份、重新分区和恢复

开发文件系统调整工具之前,要对磁盘重新分区,惟一可行的方法是备份其内容、重新分区创建新的空文件系统),然后将备份恢复到重新分区的磁盘。该方法连续运行,但对于非破坏性的重新分区,使用 GParted 当然比使用此方法方便多了。换句话说,为了安全起见在调整分区大小之前最好先创建一个备份。出于安全性的考虑,无论如何您必须做这一半工作。

现在,经常使用一个外部硬盘驱动器作为备份介质。购买千兆字节的外部磁盘超不过 $100,篡改磁盘分区之后,您就可以使用它们备份您的重要文件,来在系统之间转移较大的文件,或者以其他方式。此外,您也可以使用可记录的 DVD、磁带装置或网络服务器作为备份系统。

备份软件包括 tar 这类旧备用工具,以及 Clonezilla 这类新工具。细节各不相同,具体根据软件和备份介质而定,因此您需要参考备份软件文档获取详细信息。

如果您想要修改您的 Linux 引导分区或者任何一个基础根超级用户)访问必须的分区,您需要从一个紧急引导系统执行这些操作,本系列的第 1 部分介绍了这类系统。

添加磁盘空间

添加磁盘是重新分区一个切实可行的备选方案,有时候,添加磁盘空间可能会更好。磁盘容量持续增加,比起那些使用了好几年的磁盘新磁盘可能更可靠。

如果您选择用一个新磁盘替换一个现有磁盘,您应该将现有系统转移到新磁盘,用 Clonezilla 这类工具或者使用旧工具,比如 fdisk  tar。您可能需要重新安装引导加载程序,例如在这项任务中,使用 Super Grub Disk 工具重新安装引导加载器可能会很有用。您可以使用这个基于 CD 的引导加载器引导您的系统,然后使用 grub-install或者一个类似的工具来将 GRand Unified Bootloader (GRUB) 重新安装到您的新硬盘上

如果您购买一个新磁盘作为补充,而不替换您的现有磁盘,您需要确定转移到新磁盘的数据如果有)。您应该使用 fdisk、GParted 或其他工具对新磁盘进行分区,并将文件转移到新磁盘,然后通过适当地编辑 /etc/fstab,在您的现有目录树中永久地挂载新磁盘分区。如果不这样做,就算您挂载新磁盘来取代原来的文件目录,它们也会继续消耗旧磁盘的磁盘空间。

结束语

不论您用哪种方式,改变一个正在运行系统的磁盘是一个令人忧心的任务,原因是:很多事情都有可能出错。如果这种改变是必须的,那么您会发现您的系统在改变之后变得更可用了。为了降低磁盘已满错误的风险,实际上,您可能要继续使用您的系统完成它的既定任务。调整分区的过程可能会帮助您熟悉 GParted 和其他磁盘实用工具,以及各种分区的最佳大小。所有这些对您下次安装 Linux 系统是很有帮助的。

原文:http://www.ibm.com/developerworks/cn/linux/l-resizing-partitions-2/?ca=drs-tp4608


相关内容