系统管理指南:设备和文件系统

Procedure如何从备用引导设备检查根 (/)、/usr/var 文件系统

有关 Solaris 10 6/06 发行版中 fsck 的新信息,请参见UFS 文件系统实用程序(fsckmkfsnewfs)的增强功能。如果看到以下消息,则无需重新运行 fsck


***** FILE SYSTEM WAS MODIFIED *****

但是,在出现此消息后重新运行 fsck 并不会损害文件系统。此消息只是有关 fsck 的更正操作的信息。

此过程假定本地 CD 或网络引导服务器可用,从而可以从备用设备引导系统。

有关恢复坏的超级块的信息,请参见如何恢复坏的超级块(仅限 Solaris 10 6/06 发行版)如何恢复坏的超级块(Solaris 8、9 和 10 发行版)

  1. 成为超级用户或承担等效角色。

  2. 仅适用于具有镜像根 (/) 文件系统的系统:在从备用设备进行引导之前分离根 (/) 镜像,否则会有损坏文件系统的风险。

    有关分离根 (/) 镜像的信息,请参见《Solaris Volume Manager 管理指南》中的“处理子镜像”。

  3. 识别需要检查的根 (/)、/usr/var 文件系统的设备,例如 /dev/dsk/c0t0d0s0

    从备用设备进行引导时,将需要提供此设备名称。已从备用设备引导后识别此设备会更困难。

  4. 在单用户模式下,从备用设备(如本地 CD 或网络)引导具有需要检查的根 (/)、/usr/var 文件系统的系统。

    这样做可确保在这些文件系统上没有任何活动。

    例如:


    # init 0
    
    ok boot net -s
    
    .
    
    .
    
    .
    
    #
  5. 检查包含步骤 3 中识别的根 (/)、/usr/var 文件系统的设备。

    如果要检查或修复的文件系统的硬件已更改,则设备名称可能已更改。检查 fsck -n 消息 Last Mounted on ... 是否指示文件系统的预期设备。

    在此示例中,要检查的根 (/) 文件系统是 /dev/dsk/c0t0d0s0


    # fsck -n /dev/rdsk/c0t0d0s0
    
    ** /dev/rdsk/c0t0d0s0 (NO WRITE)
    
    ** Last Mounted on /
    
    .
    
    .
    
    .
    
    fsck /dev/rdsk/c0t0d0s0
    
    ** /dev/rdsk/c0t0d0s0
    
    ** Last Mounted on /
    
    ** Phase 1 - Check Blocks and Sizes
    
    ** Phase 2 - Check Pathnames
    
    .
    
    .
    
    .
  6. 更正任何报告的 fsck 错误。

    有关如何响应以交互方式检查一个或多个 UFS 文件系统时出现的错误消息,请参见《系统管理指南:高级管理》中的第 28  章 “解决 UFS 文件系统不一致问题(任务)”

  7. 如果在运行 fsck 后无法修复所有问题,请参见修复 fsck 命令无法修复的 UFS 文件系统。

  8. 挂载已修复的文件系统,以确定 lost+found 目录中是否存在任何文件。

    fsck 命令放置在 lost+found 目录中的各个文件是使用其 inode 编号重命名的。如有可能,请重命名这些文件,并将它们移动到所属的位置。请尝试使用 grep 命令匹配各个文件中的短语,并尝试使用 file 命令确定文件类型。

    最后,删除遗留在 lost+found 目录中的无法识别的文件或目录,以免该目录不必要地被填满。

  9. 使系统返回到多用户模式。


    # init 6
    
  10. 仅适用于具有镜像根 (/) 文件系统的系统:重新连接根 (/) 镜像。