重组文件系统

本节提供重组文件系统的步骤。

在以下示例中,系统具有单独的逻辑卷和文件系统 hd11 (安装点: /home/op)。 由于我们决定需要重组文件系统 hd11 ,因此我们执行以下操作:


  1. 使用文件名备份文件系统。 如果采用索引节点而不是文件名来备份文件系统,restore 命令会将文件放回原位,这无法解决问题。 运行如下命令:
    # cd /home/op
    # find . -print | backup -ivf/tmp/op.backup

    这个命令创建了一个备份文件(在另一个文件系统中),包括当前文件系统中所有需要重组的文件。 如果系统磁盘空间有限,您可以使用磁带来备份文件系统。


  2. 运行如下命令:
    # cd /
    # unmount /home/op

    如果有任何进程正在使用 /home/op 或它的任何子目录,那么必须先终止这些进程,unmount 命令才能成功完成。


  3. /home/op 逻辑卷上重新创建文件系统,如下:
    # mkfs /dev/hd11

    在取消原文件系统之前您将得到配置提示。 文件系统名不变。


  4. 欲保存原环境(除去 /home/op 为空的情况),运行如下命令:
    # mount /dev/hd11 /home/op
    # cd /home/op

  5. 像下面这样保存数据:
    # restore -xvf/tmp/op.backup >/dev/null

    标准输出被重定向到 /dev/null 显示出来,这是需要花费时间的。


  6. 查看先前检查的大型文件 (请参阅 使用 fileplace 命令进行文件放置评估) ,如下所示:
    # fileplace -piv big1
我们看到现在它是(几乎是)连续的:
File: big1  Size: 3554273 bytes  Vol: /dev/hd11
Blk Size: 4096  Frag Size: 4096  Nfrags: 868   Compress: no
Inode: 8290  Mode: -rwxr-xr-x  Owner: hoetzel  Group: system

INDIRECT BLOCK: 60307

  Physical Addresses (mirror copy 1)                            Logical Fragment

  ----------------------------------                            ----------------

  0060299-0060306  hdisk1     8 frags    32768 Bytes,   0.9%    0008555-0008562
  0060308-0061167  hdisk1   860 frags  3522560 Bytes,  99.1%    0008564-0009423

  868 frags over space of 869 frags:  space efficiency = 99.9%
  2 fragments out of 868 possible:  sequentiality = 99.9%

添加到 fileplace 命令的 -i 选项指示文件的前八个块与其余块之间的一个块间隔包含间接块,当文件长度超过八个块时,需要该间接块来补充索引节点信息。

某些文件系统或逻辑卷不应该进行重组因为这些数据或是短暂的(例如 /tmp)或是非文件系统的格式(日志)。 根文件系统一般是不经改变的而且极少需要重组。 改变只是在安装/维护模式下才发生。 同样情况的还有 /usr 因为其中很多文件都需要正常系统操作。