目录
以下内容转载自鸟哥的Linux私房菜
文件系统错误的问题
在启动的过程中最容易遇到的问题就是硬盘可能有坏轨或文件系统发生错误(数据损毁)的情况, 这种情况虽然不容易发生在稳定的Linux系统下,不过由于不当的开关机行为, 还是可能会造成的,常见的发生原因可能有:
- 最可能发生的原因是因为断电或不正常关机所导致的文件系统发生错误, 鸟哥的主机就曾经发生过多次因为跳电,家里的主机又没有安装不断电系统, 结果就导致硬盘内的文件系统错误!文件系统错误并非硬件错误,而是软件数据的问题喔!
- 硬盘使用率过高或主机所在环境不良也是一个可能的原因, 例如你开放了一个FTP服务,里面有些数据很有用, 所以一堆人抢着下载,如果你又不是使用较稳定的SCSI接口硬盘,仅使用一般PC使用的硬盘, 虽然机率真的不高,但还是有可能造成硬盘坏轨的。此外,如果主机所在环境没有散热的设备, 或者是相对湿度比较高的环境,也很容易造成硬盘的损坏喔!
解决的方法其实很简单,不过因为出错扇区所挂载的目录不同,处理的流程困难度就有差异了。 举例来说,如果你的根目录『/』并没有损毁,那就很容易解决,如果根目录已经损毁了,那就比较麻烦!
-
如果根目录没有损毁:
假设你发生错误的partition是在/dev/sda7这一块,那么在启动的时候,屏幕应该会告诉你:press root password or ctrl+D : 这时候请输入root的密码登陆系统,然后进行如下动作:
- 在光标处输入root密码登陆系统,进行单人单机的维护工作;
- 输入『 fsck /dev/sda7 』(fsck 为文件系统检查的命令,/dev/sda7为错误的partition,请依你的情况下达参数), 这时屏幕会显示开始修理硬盘的信息,如果有发现任何的错误时,屏幕会显示: clear [Y/N]? 的询问信息,就直接输入 Y 吧!
- 修理完成之后,以 reboot 重新启动啰!
-
如果根目录损毁了
一般初学者喜欢将自己的硬盘只划分为一个大partition,亦即只有根目录, 那文件系统错误一定是根目录的问题啰!这时你可以将硬盘拔掉,接到另一台Linux系统的计算机上, 并且不要挂载(mount)该硬盘,然后以root的身份运行『 fsck /dev/sdb1 』(/dev/sdb1 指的是你的硬盘装置文件名,你要依你的实际状况来配置),这样就 OK 啰!
另外,也可以使用近年来很热门的Live CD,也就是利用光盘启动就能够进入Linux操作系统的特性, 你可以前往:『http://knoppix.tnc.edu.tw/』 这个网站来下载,并且刻录成为CD,这个时候先用Live CD光盘启动,然后使用fsck去修复原本的根目录, 例如: fsck /dev/sda1 ,就能够救回来了!
-
如果硬盘整个坏掉:
那么硬盘该如何预防发生文件系统错误的问题呢?可以参考底下说明:
- 妥善保养硬盘:
例如:主机通电之后不要搬动,避免移动或震动硬盘;尽量降低硬盘的温度,可以加装风扇来冷却硬盘; 或者可以换装 SCSI 硬盘。
- 划分不同的partition:
为什么磁盘分区这么重要!因为Linux每个目录被读写的频率不同,妥善的块分配将会让我们的Linux更安全! 通常我们会建议划分下列的磁盘区块:- /
- /boot
- /usr
- /home
- /var