磁盘检验: fsck, badblocks

磁盘检验: fsck, badblocks
现在也建立好了新的 partition 了,也 format 好了,那么有没有其它的关于硬盘的工作需要来进行呢?
有的,就是需要怎样来检查硬盘有没有坏轨呢?那个就是 fsck 这个工具的用途啦!此外,您会发现到,在 / 这个目录底下 (其实只要有挂载硬盘的那个目录底下都有这个目录 ) 会有一个特殊的目录,就是『 lost+found 』这个目录啦!对的!就是当你处理完fsck 之后,如果程序有发现到任何的错误的档案,就会将该档案的数据给他丢到这个目录当中,嘿嘿! 所以当你发现你的 Linux目录当中有这个档案时,不要担心,那个是正常的啦!而且 只有挂载
partition 的目录 (就是挂载点) 才会有这个预设的目录啰!
还有,由于在 Linux 系统当中,为了增加系统效能,通常系统预设就是一些数据会写在内存当中, 并不会直接将数据写入硬盘里面,这是因为内存的速度要比硬盘快上若干倍呀!
但是有个问题就发生了,万一系统由于『跳电』或者是其它的莫名原因,造成系统的 shutdown 时,唉呀!怎么办?!系统就完蛋啦!所以啰,我们需要在某些特定的时候让数据直接回存到硬盘之中呀!
瞭乎!这里提供几个惯用的指令,其中,那个 fsck 是相当重要的,请参考其用法啰!
·  fsck

  
  [root@linux ~]# fsck [-AtCary] 装置名称
  参数:
  -t  :fsck 可以检查好几种不同的 filesystem ,而 fsck 只是一支综合程序而已。
      
  个别的 filesystem 的检验程序都在 /sbin 底下,您可以使用 ls -l /sbin/fsck*
      
  去检查看看,就知道有几种 filesystem
  啰。预设的 FC4 情况下,至少有:
      
  ext2, ext3, vfat, msdos 等等 filesystem。
  -A  :依据 /etc/fstab 的内容,将所有的装置都扫瞄一次 (通常开机过程中就会执行此一指令)
  -a  :自动修复检查到的有问题的扇区,所以你不用一直按 y 啰!
  -r  :一定要让使用者决定是否需要修复,这与上一个 -a 刚好相反!
  -y  :与 -a 类似,但是某些
  filesystem 仅支持 -y 这个参数,所以您也可以利用 -y 啦!
  -C  :可以在检验的过程当中,使用一个长条图来显示目前的进度!
  -f  :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入
      
  细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
  范例:
  范例一:将前面我们建立的 /dev/hdb5 这个装置给他检验一下!
  [root@linux ~]# fsck -C -t ext3 /dev/hdb5
   
  fsck 1.37 (21-Mar-2005)
  e2fsck 1.37 (21-Mar-2005)
  logical: clean, 11/181056 files,
  21706/361446 blocks
  # 如果一切没有问题,就会出现上述的讯息~
  

这是用来检查与修正硬盘错误的指令。注意:通常只有身为 root 且你的系统有问题的时候才使用这个指令,否则在正常状况下使用此一指令, 可能会造成对档案的危害!通常使用这个指令的场合都是在系统出现极大的问题,导致你在 Linux 开机的时候得进入单人单机模式下进行维护的行为时,才必须使用此一指令!另外,如果你怀疑刚刚格式化成功的硬盘有问题的时后,也可以使用 fsck 来检查一下硬盘呦!其实就有点像是 Windows 的 scandisk啦!此外,由于 fsck 在扫瞄硬盘的时候,可能会造成部分 filesystem 的损坏,所以『执行 fsck 时, 被检查的partition 务必不可挂载到系统上!亦即是需要在卸载的状态喔!』
常常我们会发现,在比较老旧的机器上 ( 例如鸟哥的 p-166
),如果主机不正常的关机 (例如跳电啰!),那么硬盘很可能会出现错误的状况!这个时候 Linux 就无法正常的开机!这个时候就需要输入root 的密码,以登入单人维护模式 (run level 1),然后下达 fsck -y /dev/hdxxx来检查你的硬盘!等到确认成功之后,就使用 reboot 来重新启动吧!
·  badblocks

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

这是用来检查硬盘或软盘扇区有没有坏轨的指令!跟 Windows 的 scandisk 相同功能啦!不过由于 fsck 的功能比较强,所以目前大多已经不使用这个指令了!

上一篇: 距离某日有多少天的JS   下一篇: Linux系统状态查看工具Sysstat(检查IO,网络流量必备)

提交疑问

请先登录 QQ微博登录

回顶部