• 磁盘检验(转)


    磁盘检验

    由于系统在运行时谁也说不准啥时硬件或者是电源会有问题,所以『死机』可能是难免的情况(不管是硬件还是软件)。 现在我们知道文件系统运行时会有硬盘与内存数据异步的状况发生,因此莫名其妙的死机非常可能导致文件系统的错乱。 问题来啦,如果文件系统真的发生错乱的话,那该如何是好?就...挽救啊!此时那个好用的 filesystem check, fsck 就得拿来仔细瞧瞧啰。

    fsck

    [root@www ~]# fsck [-t 文件系统] [-ACay] 装置名称
    选项与参数:
    -t  :如同 mkfs 一样,fsck 也是个综合软件而已!因此我们同样需要指定文件系统。
          不过由于现今的 Linux 太聪明了,他会自动的透过 superblock 去分辨文件系统,
          因此通常可以不需要这个选项的啰!请看后续的范例说明。
    -A  :依据 /etc/fstab 的内容,将需要的装置扫瞄一次。/etc/fstab 于下一小节说明,
          通常启动过程中就会运行此一命令了。
    -a  :自动修复检查到的有问题的扇区,所以你不用一直按 y 啰!
    -y  :与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数!
    -C  :可以在检验的过程当中,使用一个直方图来显示目前的进度!
    
    EXT2/EXT3 的额外选项功能:(e2fsck 这支命令所提供)
    -f  :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入
          细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
    -D  :针对文件系统下的目录进行优化配置。

    强制的将/dev/hdc6 这个装置给他检验一下

    [root@www ~]# fsck -C -f -t ext3 /dev/hdc6 
    fsck 1.39 (29-May-2006)
    e2fsck 1.39 (29-May-2006)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks
    # 如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,
    # 检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。

    系统有多少文件系统支持的 fsck 软件

    [root@www ~]# fsck[tab][tab]
    fsck         fsck.cramfs  fsck.ext2    fsck.ext3    fsck.msdos   fsck.vfat

    这是用来检查与修正文件系统错误的命令。注意:通常只有身为 root 且你的文件系统有问题的时候才使用这个命令,否则在正常状况下使用此一命令, 可能会造成对系统的危害!通常使用这个命令的场合都是在系统出现极大的问题,导致你在 Linux 启动的时候得进入单人单机模式下进行维护的行为时,才必须使用此一命令!

    另外,如果你怀疑刚刚格式化成功的硬盘有问题的时后,也可以使用 fsck 来检查一硬盘呦!其实就有点像是 Windows 的 scandisk 啦!此外,由于 fsck 在扫瞄硬盘的时候,可能会造成部分 filesystem 的损坏,所以『运行 fsck 时, 被检查的 partition 务必不可挂载到系统上!亦即是需要在卸除的状态喔!

    ext2/ext3 文件系统的最顶层(就是挂载点那个目录底下)会存在一个『lost+found』的目录吧! 该目录就是在当你使用 fsck 检查文件系统后,若出现问题时,有问题的数据会被放置到这个目录中喔! 所以理论上这个目录不应该会有任何数据,若系统自动产生数据在里面,那...你就得特别注意你的文件系统啰!

    另外,我们的系统实际运行的 fsck 命令,其实是呼叫 e2fsck 这个软件啦!可以 man e2fsck 找到更多的选项辅助喔! 

    badblocks

    [root@www ~]# badblocks -[svw] 装置名称
    选项与参数:
    -s  :在屏幕上列出进度
    -v  :可以在屏幕上看到进度
    -w  :使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的装置已有文件时!
    
    [root@www ~]# badblocks -sv /dev/hdc6
    Checking blocks 0 to 2008093
    Checking for bad blocks (read-only test): done
    Pass completed, 0 bad blocks found.

    刚刚谈到的 fsck 是用来检验文件系统是否出错,至于 badblocks 则是用来检查硬盘或软盘扇区有没有坏轨的命令! 由于这个命令其实可以透过『 mke2fs -c 装置文件名 』在进行格式化的时候处理磁盘表面的读取测试, 因此目前大多不使用这个命令啰!

     

    转自 http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_3.php

  • 相关阅读:
    57. Insert Interval
    56. Merge Intervals
    55. Jump Game
    54. Spiral Matrix
    52. N-Queens II
    More Effective C++ 条款2 最好使用C++转型操作符
    More Effective C++ 条款1 仔细区别pointers和references
    Python_内置函数之max
    python_超级基础
    python_format格式化输出、while else、逻辑运算符、编码初识
  • 原文地址:https://www.cnblogs.com/ggjucheng/p/2714269.html
Copyright © 2020-2023  润新知