在windows下,磁盘的文件系统出错,需要运行chkdsk命令进行修复。而在linux下,则需要运行fsck命令。由于linux对于文件系统的错误非常敏感,由于意外断电或者其它原因导致linux系统意外关机或者重启,都可能对linux的文件系统造成严重的损坏,从而导致不能正常地进入系统。这也使得fsck变成一个不可或缺的命令。然而这个fsck命令却有一个致命的软肋,就是对于已经挂载了的分区运行具有极大的危险性,远不如windows下的chkdsk命令的安全。

本文以ubuntu系统为例进行讲述。

由于fsck命令的这个致命的软肋,所以运行这个命令的最好方式是用livecd方式启动ubuntu,进入桌面后,首先确认要运行命令的分区是否挂载。比如要对第一硬盘第一分区进行运行,首先可以用umount命令进行卸载:

sudo umount /dev/sda1

一般情形下,都是没有挂载的。运行这个umount命令只是为了确认一下,或者说是为了以怕万一而已。

确认没有挂载后,需要确认这个分区的文件系统是什么,这个可以用命令:

sudo fdisk -l

以查看这个分区的文件系统是什么。文件系统千万不能错了。这里以ext4文件系统为例进行讲述。这个命令不止是确认分区的文件系统是什么,同时也是确认这个分区是如何写法的。sata硬盘的写法是sda,而ide硬盘的写法是hda。

确认没有挂载和文件系统是什么后,输入下面的命令:

fsck -t ext4 /dev/sda1

-t参数是指明文件系统是什么。/dev/sda1则是指定分区。

这个命令还有另外一种输入法,这就是:

fsck.ext4 /dev/sda1

其实就是fsck -t ext4这个命令就是在调用fsck.ext4这个命令。

fsck默认只对有错误的档案进行检测,但是,我们可以加一个参数-f,让fsck对于没有错的档案也强行检测。这样大约可以修复一些分区的轻微的错误吧。

fsck.ext4 -f /dev/sda1

fsck还有检测硬盘坏道的功能,参数是-c

fsck.ext4 -fc /dev/sda1

检测坏道是很慢的。一般是不需要运行这个命令的。但有必要了解一下吧。

上面是以/dec/sda1分区为例进行讲述,对于其它的分区的运行,举一反三就是了。

如果没有livecd怎么办呢?可以用硬盘启动映象文件的办法启动ubuntu.只要你懂硬盘安装ubuntu的办法,你也就会知道这种启动的办法,具体启动的办法就不赘述了。

但有一个要点,对于映象文件所在的分区不可检测。这里的原因当然是因为这个分区是被挂载了的。即便用:sudo umount -l /isodevice命令卸载掉了这个分区,也仍是不宜检测为好。

另外,fsck命令只能检测linux分区,对于windows分区就不可以用这个命令进行检测了。

所以我一般的办法是把ubuntu映象文件放在windows分区。这样可以无障碍地检测全部linux分区。

在ubuntu9.04的recovery mode中有一个fsck选项。在这个选项中,系统设定了运行fsck命令的一些安全参数。选择这个选项后,系统将自动运行fsck命令。从我的经验来看,这种方式的检测还是很安全的。不知什么缘故,官方在ubuntu9.10中,把这个选项去掉了。但是,我们仍然可以在recovery mode中,手动运行fsck命令。

进入recovery mode后,先以root用户登陆文本界面。

首先运行命令:

fsck -F

请注意,这个参数是大写F,而不是小写f,如果你写错,麻烦可就大了。我也就曾经误写过,后果是很严重的。好在我很熟知这方面的知识,没有造成实质的损失。

这个命令的作用是清除掉内存中的磁盘缓存。所以这个命令毋须指定分区对象。根据我的经验,使用这个参数的一个要点是不要同时使用其它的参数。就单独运行一下这个参数。

找到的资料对于这个参数的说明是:

-F: 在检查前将硬盘的 buffer cache 清空,避免发生错误。

根据我的经验,用这个参数是很安全的,确实可以极有效地防止fsck出错。我曾经在虚拟机做过试验。在正常登陆状态下,先用这个命令清除掉内存中的硬盘缓存,然后运行命令:fsck -AfsC

重启电脑后,居然成功地进入了桌面。而不用先用这个命令,直接用fsck -AfsC命令,结果重启进不了桌面。效果对照是很明显的。

然后运行命令:

sudo umount -a

这个命令是把/etc/fstab文件中设定的分区,能卸载掉的都卸载掉。一般来说,除了/分区,其它的都能卸载掉的。卸载掉分区后再运行fsck命令,安全系统就大大地增加了。

然后输入命令:

fsck -Afs

-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。

-f参数的作用前面说了。

-s参数的作用是分别检测。分别检测是与并行检测相对的。所谓并行检测,就是同时检测/etc/fstab中设定的多个分区。

由于/分区没有卸载掉,所以在这里我们不能用-c参数。因为对于没有卸载掉的分区运行-c参数,危险性更为加大。但是,我们可以加参数-R,略过/分区不检测。

fsck -AfscR

还有一个参数是-C,这个参数可以在运行时显示进度条,这样命令运行起来时更好看些吧。比如:

fsck -ARCfsc

最后特别强调一下,由于fsck命令对于已经挂载的分区运行具有高度的危险性,所以千万不能在正常登陆下运行这个命令。

ps:

还有一个重要的命令,可以以只读模式挂载/分区,这样运行fsck命令就非常之安全了。而对以只读模式挂载的分区运行fsck命令是安全的。

mount -no remount,ro /

-n

一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。

-o 是挂载选项,remount重新挂载,ro只读挂载。

可以考虑预先做一个可执行文件放到在/分区可以找得到的地方,比如放在/root下,并命名为runfsck,然后进recovery mode执行这个文件,避免了手动输入命令的麻烦。

=====================

mount -no remount,ro /

umount -a

fsck -F

fsck -AfsC

=====================

其实命令中的fsck -F已经没有必要了。

ps:似乎对以只读模式挂载的分区,虽则安全,但也并不能修正文件系统的错误,恐怕并无意义。

linux grub关闭 fsck,手把手教你安全运行fsck命令相关推荐

  1. linux内核驱动ldd3_手把手教Linux驱动7内核互斥锁

    互斥体概述 信号量是在并行处理环境中对多个处理器访问某个公共资源进行保护的机制,mutex用于互斥操作.信号量的count初始化为1,down()/up()也可以实现类似mutex的作用. mutex ...

  2. 嵌入式LINUX搭建arm环境,手把手教你嵌入式ARM开发环境搭建

    原标题:手把手教你嵌入式ARM开发环境搭建 1. 安装,配置,启动FTP服务 · 安装FTP: sudo apt-get install vsftpd · 修改vsftpd的配置文件/etc/vsft ...

  3. Linux玩ps3游戏,手把手教你用PC笔记本畅玩PS3主机游戏教程

    这篇教程的目的就是手把手教你如何使用PS3模拟器,让你在笔记本或PC电脑上玩PS3游戏.虽然目前PS3模拟器还不算完美,但是一些热门和主流的游戏都能愉快的玩耍了.PS3模拟器也不是打开软件.选择游戏就 ...

  4. win 访问linux加密硬盘分区,手把手教你使用BitLocker给win10硬盘分区加密的方法

    电脑设备已经非常普及了,基本每个家庭都会配备一台.一般我们会把重要的文件或视频储存在硬盘中,但是每一个操作电脑的人都能打开查看比较不安全.如果你有不想被别人看的内容,可以给硬盘分区加密,既不影响正常操 ...

  5. linux搭建交叉编译器,手把手教你一步一步搭建mips-linux-gcc-4.4.0交叉编译工具

    一.准备工作: 工作环境:宿主机:ubuntu10.04 linux-2.6.32-24-generic i686 gcc-4.4.3 目标机:mips32 软件包版本:binutils-2.19.1 ...

  6. 360云盘关闭,手把手教你用蒲公英搭建私有云

    10月20日消息,国内用户量位列前二的360云盘,正式发布公告表示,将停止个人云盘服务,并表示在网盘存储.传播内容的合法性和安全性得到彻底解决之前不再考虑恢复,之后转型企业云服务.     百度云.3 ...

  7. linux i2c detect函数,手把手教你写Linux I2C设备驱动

    Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片.音视频采集芯片.音 ...

  8. 怎么删除linux中文件夹,linux删除文件夹,手把手教你电脑的linux怎么样删除文件夹...

    有些爱学习的用户会去操弄linux软件程序,在操作linux的过程中,有时候要删除一个文件夹,往往会提示次此文件非空,没法删除,这对于刚接触的用户来说无疑是一个巨大的困难,为此,小编这就来跟大家分享l ...

  9. linux内核分析设备,手把手教你分析Linux内核

    Linux的最大的好处之一就是它的源码公开.同时,公开的核心源码也吸引着无数的电脑爱好者和程序员:他们把解读和分析Linux的核心源码作为自己的最大兴趣,把修改Linux源码和改造Linux系统作为自 ...

最新文章

  1. IT男人必学的20大泡妞妙招
  2. JVM crash at ForUtil.readBlock
  3. 微服务的概念——《微服务设计》读书笔记
  4. 第七十八期:2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑
  5. 孪生神经网络_轩辕实验室:数字孪生:基于机器学习的汽车数字孪生模型
  6. Qt文档阅读笔记-Multicast Receiver Example与Multicast Sender Example解析
  7. GCC的缺陷,由匿名对象引起的内存泄漏
  8. 安卓桌面软件_抖猫视频桌面下载-抖猫视频桌面官网版v4.0.8
  9. matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
  10. 中国 省市区 code码
  11. 通达信波段王指标公式主图_通达信波段操盘主图指标公式
  12. Mac下如何重启SSH
  13. 云服务器(Centos7)搭建jdk环境
  14. 三本计算机专业的分数线,文科三本大学有哪些 三本分数线一般多少
  15. linux日志查看常见方法
  16. 常见CSS(层叠样式表)介绍
  17. Server-2008-R2中nslookup解析不出服务器名称
  18. 附代码 ExFuse
  19. 歧视的作用和限制歧视的恶果
  20. 记一次小米手机下载应用显示“路径不可用”

热门文章

  1. c语言期末复习笔记1
  2. 如何通俗地理解“极大似然估计”?
  3. 【计算机基础】02 Windows7操作系统习题
  4. 内推 | 蚂蚁集团网商银行用户研究专家招聘
  5. 耳挂式蓝牙耳机原理_挂耳式无线蓝牙耳机怎样佩戴 无线蓝牙耳机的优点
  6. 2014.03.04-2014.03.07调研比较流行的手机视频播放器UI
  7. JavaFX Button常用相关属性和制作多边形按钮Button
  8. JZOJ5407. 【NOIP2017提高A组集训10.21】Deep
  9. 网页系统链接服务器失败,无法打开网页,错误 324 (net::ERR_EMPTY_RESPONSE):服务器已断开连接,且未发送任何数据...
  10. 用ChatGPT快速制作PPT