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

Procedure如何恢复坏的超级块(仅限 Solaris 10 6/06 发行版)

此过程是 Solaris 10 6/06 发行版的新增内容。如果文件系统具有坏的超级块,则 fsck 会自动计算备用超级块,如以下消息所示:


BAD SUPERBLOCK AT ...



LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? 

LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS?

注意 – 注意 –

如果具有损坏的超级块的文件系统是使用 newfsmkfs 自定义参数(例如 ntracknsect)创建的,则使用 fsck 自动计算的超级块执行修复过程可能会对文件系统造成无法恢复的损坏。

如果文件系统是使用自定义参数创建的,并且它具有坏的超级块,则 fsck 提供以下提示以取消 fsck 会话:


CANCEL FILESYSTEM CHECK?

如果此文件系统是使用自定义参数创建的,或者在此文件系统上运行 fsck 可能会带来其他问题,则应取消 fsck 会话。


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

  2. 检查怀疑有坏的超级块的文件系统。


    # fsck /dev/rdsk/c0t1d0s0
    
    
    
    ** /dev/rdsk/c0t1d0s0
    
    
    
    BAD SUPERBLOCK at ...
    
  3. 确定文件系统是如何创建的,然后选择以下项之一:

    • 文件系统是使用 newfs 命令创建的

      • fsck 响应所有超级块都已损坏,而且必须使用通用超级块。按以下示例所示应答 fsck 提示。


        注意 – 注意 –

        如果文件系统是使用自定义参数创建的,则不要使用此选项。仅应在没有其他方法时使用此选项。为从备份副本恢复文件系统做好准备。



        # fsck /dev/dsk/c1t2d0s0
        
        ** /dev/rdsk/c1t2d0s0
        
        BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED
        
        
        
        LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? no
        
        
        
        
        
        LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS? yes
        
        
        
        SEARCH FOR ALTERNATE SUPERBLOCKS FAILED.
        
        
        
        USE GENERIC SUPERBLOCK FROM MKFS? no
        
        
        
        
        
        USE GENERIC SUPERBLOCK FROM NEWFS? yes
        
        
        
        CALCULATED GENERIC SUPERBLOCK WITH NEWFS
        
        If filesystem was created with manually-specified geometry, using
        
        auto-discovered superblock may result in irrecoverable damage to
        
        filesystem and user data.
        
        
        
        CANCEL FILESYSTEM CHECK? no
        
        
        
        ** Last Mounted on
        
        ** Phase 1 - Check Blocks and Sizes
        
        ** Phase 2 - Check Pathnames
        
        ** Phase 3a - Check Connectivity
        
        ** Phase 3b - Verify Shadows/ACLs
        
        ** Phase 4 - Check Reference Counts
        
        ** Phase 5 - Check Cylinder Groups
        
        CORRECT GLOBAL SUMMARY
        
        SALVAGE? y
        
        
        
        
        
        UPDATE STANDARD SUPERBLOCK? y
        
        
        
        81 files, 3609 used, 244678 free (6 frags, 30584 blocks, 0.0% fragmentation)
        
        
        
        ***** FILE SYSTEM WAS MODIFIED *****
      • fsck 响应它找到备用超级块,并显示与以下内容类似的消息:


        FOUND ALTERNATE SUPERBLOCK 32 WITH NEWFS

        在此 fsck 方案中,按照自动搜索备份超级块所示的提示操作。

    • 文件系统是使用 mkfs 命令创建的。

      • fsck 响应所有超级块都已损坏,而且必须使用通用超级块。按以下示例所示应答 fsck 提示。


        注意 – 注意 –

        如果文件系统是使用自定义参数创建的,则不要使用此选项。仅应在没有其他方法时使用此选项。为从备份副本恢复文件系统做好准备。



        # fsck /dev/dsk/c1t2d0s0
        
        ** /dev/rdsk/c1t2d0s0
        
        BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED
        
        
        
        LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? yes
        
        
        
        
        
        LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS? no
        
        
        
        SEARCH FOR ALTERNATE SUPERBLOCKS FAILED.
        
        
        
        USE GENERIC SUPERBLOCK FROM MKFS? yes
        
        
        
        CALCULATED GENERIC SUPERBLOCK WITH MKFS
        
        If filesystem was created with manually-specified geometry, using
        
        auto-discovered superblock may result in irrecoverable damage to
        
        filesystem and user data.
        
        
        
        CANCEL FILESYSTEM CHECK? no
        
        
        
        ** Last Mounted on
        
        ** Phase 1 - Check Blocks and Sizes
        
        ** Phase 2 - Check Pathnames
        
        ** Phase 3a - Check Connectivity
        
        ** Phase 3b - Verify Shadows/ACLs
        
        ** Phase 4 - Check Reference Counts
        
        ** Phase 5 - Check Cylinder Groups
        
        CORRECT GLOBAL SUMMARY
        
        SALVAGE? y
        
        
        
        
        
        UPDATE STANDARD SUPERBLOCK? y
        
        
        
        81 files, 3609 used, 243605 free (117 frags, 30436 blocks, 0.0% fragmentation)
      • fsck 响应它找到备用超级块,并显示与以下内容类似的消息:


        FOUND ALTERNATE SUPERBLOCK 32 WITH MKFS

        在此 fsck 方案中,按照自动搜索备份超级块所示的提示操作。

  4. 应答提示以挽救和恢复超级块。

    在看到以下消息时,无需重新运行 fsck


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

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