admin管理员组

文章数量:1532440

怎么使用chkdsk命令修复磁盘
fsck|xfs_repair 磁盘修复

fsck
使用权限 : 超级使用者

使用方式 : fsck [-sACVRP] [-t fstype] [–] [fsck-options] filesys […]

说明 : 在Linux系统中,为了增加系统性能,通常系统默认一些数据写在内存中,并不会直接将数据写入硬盘,这是因为内存速度要比硬盘快若干倍。但是有个问题,万一由于“断电”或者其他未知原因,造成系统死机,怎么办?系统就崩溃了。所以,我们需要在特定的时候让数据直接回存到硬盘中。这里提供几个常用的命令,其中,fsck命令最重要. 当文件系统发生错误时,可用fsck命令尝试加以修复.直接采用分区编号(如/dev/had3),或使用挂载点(Mount Point,如/、/usr等)指定文件系统皆可。假设一次指定多个文件系统,而这些系统分别位于不同的物理磁盘上,则fsck将会尝试同步的方式去检查他们,以节省操作时间。

参数 :

filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 partition 做检查

-C : 显示完整的检查进度

-d : 列印 e2fsck 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

    补充说明:

例子 :

检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :

fsck -t msdos -a /dev/hda5

注意 :

此指令可与 /etc/fstab 相互参考操作来加以了解。

    范例:检查/dev/sda3

[root@localhost ~]# fsck -C -t ​ ​ex​​t3 /dev/sda3fsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2006)/dev/sda3 is mount​ ​ed​​.

WARNING!!! Running e2fsck on a mounted filesystem may causeSEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/home: recovering journal/home: clean, 11/524288 files, 25399/524120 blocks#一切正常就会出现上述信息

#主意通常只有ROOT且系统有问题的时候才用这个命令,否则在正常状态下使用此命令可能会损坏文件。

   相关知识:



Linux FSCK数据出错的灾难应急方案介绍

[适用于]

1、文件系统:ext2 ext3 reiserfs xfs等

2、范围:提示文件系统需要FSCK时,未执行或FSCK执行完成

[症状]

1、无法MOUNT分区;

2、大量文件、目录丢失,根目录下生成/LOST+FOUND文件夹,里面有大量#XXXXXX类的文件和目录;

3、FSCK很快报错完成;

4、FSCK执行时,有大量提示,如修改节点、清0节点等操作

[应急方案]

1、如遇提示FSCK时,请小心。如果可能,请尽快断开系统,UMOUNT所有分区。

2、必需执行FSCK时,先做准备工作,方法一:可事先用​ ​dd​​命令将所涉及到的分区输出到另外的存储体上(最好不要在出错的存储体本身上做dd) 命令大致结构可如: dd if=/dev/sda0 of=/dev/sdb0 …

3、必需执行FSCK时,先做准备工作,方法二:将整个LINUX存储体挂载到虚拟机环境,将LINUX存储体设为Nonpersisten模式,再执行,执行过后,如果数据完好,应尽快通过FTP等方式拷贝出来。

4、必需执行FSCK时,先做准备工作,方法三:将整个LINUX存储体挂载到其他系统上(如WINDOWS),做好镜像后再做FSCK。

5、如上面几种方式均因条件等原因无法实施,必须执行时,可小心观察FSCK的执行提示(关掉-a)如果发现有提示节点错误需更正或清0、节点描述文件大小不正确等信息,应停止执行FSCK。

6、因恢复需要参考很多信息,因尽可能保持系统不工作状态,至少不得再次MOUNT分区(即便不做任何读写操作,也会因系统的工作原理不断降低数据恢复的可能性,增加数据恢复的难度)

7、寻求专业数据恢复公司帮助。

对磁盘进行镜像的方案:

1、可用相同或大于源盘容量的硬盘做为目标盘,将源盘全部扇区方式CLONE到目标盘。

2、可将源盘完全以扇区方式输出文件到某大容量存储空间(如大容量硬盘、NAS、SAN、DAS等)

输入Root密码登录后采用:fsck -t ext3 -r /usr/local 修复

xfs_repair

1.现状

目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏。一线人员大部分采用的是umont 和 mount的方式恢复,这种恢复方式不能真正修复已经损坏的文件系统,在后续使用过程中,仍然会再次出现主机端输入输出错误。

2.需要修复的场景

<1>.主机侧发现存在文件系统不可读写的情况,也可以通过查看主机端日志来确认是否有文件系统异常发生: xfs_force_shutdown 、I/O error 

<2>.出现异常停电,供电恢复正常,主机和阵列系统重起之后

<3>.存储介质故障:出现LUN失效、RAID失效、以及IO超时或者出现慢盘,对慢盘进行更换,系统恢复正常之后

<4>.传输介质故障:如光纤、网线等损坏等,数据传输链路断开后又恢复正常之后

3.检查文件系统

注:检查文件系统必须保证将文件系统umount成功。

在根目录下输入“xfs_check /dev/sdd(盘符);echo $?”(注意:在执行 此命令之前,必须将文件系统umount,否则会出现警告信 “xfs_check: /dev/sdd contains a mounted and writable filesystem ”)敲回车键,查看命令执行返回值:0表示正常,其他为不正常,说明文件系统 损坏,需要修复。

4.修复过程

注:修复时需要暂停主机侧的业务,umount 和 mount 无法修复文件系统 。

  1. 先umount要修复的文件系统的分区

  2. 然后输入 “xfs_repair /dev/sdd(盘符)”执行修复命令。

xfs_check /dev/sdd; echo $?

A)如果为0===》成功修复。

B) 如果不为0===》没有成功:请执行xfs_repair –L /dev/sdd命令,再执 行xfs_repair(反复多修复几次)

5.xfs常用命令

xfs_admin: 调整 xfs 文件系统的各种参数

xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)

xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)

xfs_check: 检测 xfs 文件系统的完整性

xfs_bmap: 查看一个文件的块映射

xfs_repair: 尝试修复受损的 xfs 文件系统

xfs_fsr: 碎片整理

xfs_quota: 管理 xfs 文件系统的磁盘配额

xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中

xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统

xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)

xfs_logprint: print the log of an XFS filesystem

xfs_mkfile: create an XFS file

xfs_info: expand an XFS filesystem

xfs_ncheck: generate pathnames from i-numbers for XFS

xfs_rtcp: XFS realtime copy command

xfs_freeze: suspend access to an XFS filesystem

xfs_io: debug the I/O path of an XFS filesystem

6.具体应用:

查看文件块状况: xfs_bmap -v sarubackup.tar.bz2
查看磁盘碎片状况: xfs_db -c frag -r /dev/sda1
文件碎片整理: xfs_fsr sarubackup.tar.bz2
磁盘碎片整理: xfs_fsr /dev/sda1
1.
2.
3.
4.
发现系统并没有正常开启,有重启动作,并报如图错误,错误很明显提示文件系统有损坏现象!在windows因非法重启需要需要运行chkdsk命令进行修复,在linux下只有fsck来修复.linnux对于文件系统的错误非常敏感,由于意外断电或者其它原因导致linux系统意外关机或者重启,都可能对linux的文件系统造成严重的损坏,从而导致不能正常地进入系统。fsck在linux下就变成一个不可或缺的命令.但是fsck命令却有一个致命的软肋,就是对于已经挂载了的分区运行具有极大的危险性,修复不好就彻底把系统崩溃掉了。所以在修复前建立一个快照是一个最安全的方法。
1.
需要确认这个分区的文件系统是什么,这个可以用fdisk -l查看一下相关磁盘及盘符,输入 fsck -c显示完整的检查进度;输入y,如果有多个损坏的文件就会提示多次输入y,进行修复.输入完后 fsck -t ext4 /dev/sda1或fsck.ext4 .此命令只确定磁盘类型.第四步进行fsck -y /dev/sda1只对损坏的文件进行修复,修复OK后进行reboot
1.
总结
1.

1:输入 fsck -c

2: 输入 Yes
1.
3: 输入 fsck -t ext4 /dev/sda1
1.
4: 输入fsck -y /dev/sda1;
1.
5. reboot
1.

filesys : 磁盘设备名称(eg./dev/sda1),挂载(mount)点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查

-C : 显示完整的检查进度

-d : 打印出 ​ ​e2fsck​​ 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。

Cmd命令在桌面版windowsPC和大多数windows server下都是通用的,所以掌握命令对于使用者非常重要;

经常会遇到检查硬盘、清理磁盘的时候,但是使用360、金山等杀毒软件会有一些安全隐患,尤其是大企业有自己的杀毒软件不允许使用其他的带有插件或广告的杀毒软件的情况下,掌握cleanmgr、chkdsk、sfc等命令显得特别重要。

cleanmgr.exe是微软系统内置的一个小程序,利用它,用户可以以“比较安全的状态清理系统垃圾”。事实上,它也就是磁盘清理。

Chkdsk:chkdsk简单的说就是用来检查磁盘的,也是一种简单的修复命令;

chkdsk i: /f ,这里的i为磁盘的盘符,也就是你所要修复的盘符号,比如你想修复 c 盘,就将 i 替换成 c,后边的/f就是修复命令,如图所示:

Sfc.exe:系统文件检查器(System file checker)是一个集成在windows系统中的一款工具软件。该软件可以扫描所有受保护的系统文件并验证系统文件完整性,并用正确的Microsoft程序版本替换不正确的版本。

在Windows XP、win7、8、10中,它的功能更为强大,不仅可以扫描所有受保护的系统文件以验证其版本,还可以设置文件缓存大小、清除文件缓存及重新填充“%SystemRoot%\System32\Dllcache”文件夹。

以管理员身份登录Windows XP、win7、8、10,将Windows XP的安装光盘放入光驱,在“命令提示符”窗口中键入“SFC/SCANNOW”命令后回车,“系统文件检查器”开始自动扫描系统文件,而且不需要你的任何干预。

其实我们平时会经常用的应该还是下面两个命令:

sfc /scannow 立即扫描所有受保护的系统文件,有些莫名其妙的问题就可以用它来解决哟,比重装系统快一点.

sfc /purgecache清除文件缓存,用于系统精简,磁盘空间的释放(当你的系统盘磁盘空间不足的时候可以试一下)

fsck
使用权限 : 超级使用者

使用方式 : fsck [-sACVRP] [-t fstype] [–] [fsck-options] ​ ​file​​sys […]

说明 : 在Linux系统中,为了增加系统性能,通常系统默认一些数据写在内存中,并不会直接将数据写入硬盘,这是因为内存速度要比硬盘快若干倍。但是有个问题,万一由于“断电”或者其他未知原因,造成系统死机,怎么办?系统就崩溃了。所以,我们需要在特定的时候让数据直接回存到硬盘中。这里提供几个常用的命令,其中,fsck命令最重要. 当文件系统发生错误时,可用fsck命令尝试加以修复.直接采用分区编号(如/dev/had3),或使用挂载点(Mount Point,如/、/usr等)指定文件系统皆可。假设一次指定多个文件系统,而这些系统分别位于不同的物理磁盘上,则fsck将会尝试同步的方式去检查他们,以节省操作时间。

参数 :

filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 partition 做检查

-C : 显示完整的检查进度

-d : 列印 ​ ​e2fsck​​ 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

    补充说明:

例子 :

检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :

fsck -t msdos -a /dev/hda5

注意 :

此指令可与 /etc/fstab 相互参考操作来加以了解。

    范例:检查/dev/sda3

[root@localhost ~]# fsck -C -t ​ ​ex​​t3 /dev/sda3fsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2006)/dev/sda3 is mount​ ​ed​​.

WARNING!!! Running e2fsck on a mounted filesystem may causeSEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/home: recovering journal/home: clean, 11/524288 files, 25399/524120 blocks#一切正常就会出现上述信息

#主意通常只有ROOT且系统有问题的时候才用这个命令,否则在正常状态下使用此命令可能会损坏文件。

   相关知识:



Linux FSCK数据出错的灾难应急方案介绍

[适用于]

1、文件系统:ext2 ext3 reiserfs xfs等

2、范围:提示文件系统需要FSCK时,未执行或FSCK执行完成

[症状]

1、无法MOUNT分区;

2、大量文件、目录丢失,根目录下生成/LOST+FOUND文件夹,里面有大量#XXXXXX类的文件和目录;

3、FSCK很快报错完成;

4、FSCK执行时,有大量提示,如修改节点、清0节点等操作

[应急方案]

1、如遇提示FSCK时,请小心。如果可能,请尽快断开系统,UMOUNT所有分区。

2、必需执行FSCK时,先做准备工作,方法一:可事先用​ ​dd​​命令将所涉及到的分区输出到另外的存储体上(最好不要在出错的存储体本身上做dd) 命令大致结构可如: dd if=/dev/sda0 of=/dev/sdb0 …

3、必需执行FSCK时,先做准备工作,方法二:将整个LINUX存储体挂载到虚拟机环境,将LINUX存储体设为Nonpersisten模式,再执行,执行过后,如果数据完好,应尽快通过FTP等方式拷贝出来。

4、必需执行FSCK时,先做准备工作,方法三:将整个LINUX存储体挂载到其他系统上(如WINDOWS),做好镜像后再做FSCK。

5、如上面几种方式均因条件等原因无法实施,必须执行时,可小心观察FSCK的执行提示(关掉-a)如果发现有提示节点错误需更正或清0、节点描述文件大小不正确等信息,应停止执行FSCK。

6、因恢复需要参考很多信息,因尽可能保持系统不工作状态,至少不得再次MOUNT分区(即便不做任何读写操作,也会因系统的工作原理不断降低数据恢复的可能性,增加数据恢复的难度)

7、寻求专业数据恢复公司帮助。

对磁盘进行镜像的方案:

1、可用相同或大于源盘容量的硬盘做为目标盘,将源盘全部扇区方式CLONE到目标盘。

2、可将源盘完全以扇区方式输出文件到某大容量存储空间(如大容量硬盘、NAS、SAN、DAS等)

输入Root密码登录后采用:fsck -t ext3 -r /usr/local 修复

xfs_repair

1.现状

目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏。一线人员大部分采用的是umont 和 mount的方式恢复,这种恢复方式不能真正修复已经损坏的文件系统,在后续使用过程中,仍然会再次出现主机端输入输出错误。

2.需要修复的场景

<1>.主机侧发现存在文件系统不可读写的情况,也可以通过查看主机端日志来确认是否有文件系统异常发生: xfs_force_shutdown 、I/O error 

<2>.出现异常停电,供电恢复正常,主机和阵列系统重起之后

<3>.存储介质故障:出现LUN失效、RAID失效、以及IO超时或者出现慢盘,对慢盘进行更换,系统恢复正常之后

<4>.传输介质故障:如光纤、网线等损坏等,数据传输链路断开后又恢复正常之后

3.检查文件系统

注:检查文件系统必须保证将文件系统umount成功。

在根目录下输入“xfs_check /dev/sdd(盘符);echo $?”(注意:在执行 此命令之前,必须将文件系统umount,否则会出现警告信 “xfs_check: /dev/sdd contains a mounted and writable filesystem ”)敲回车键,查看命令执行返回值:0表示正常,其他为不正常,说明文件系统 损坏,需要修复。

4.修复过程

注:修复时需要暂停主机侧的业务,umount 和 mount 无法修复文件系统 。

  1. 先umount要修复的文件系统的分区

  2. 然后输入 “xfs_repair /dev/sdd(盘符)”执行修复命令。

xfs_check /dev/sdd; echo $?

A)如果为0===》成功修复。

B) 如果不为0===》没有成功:请执行xfs_repair –L /dev/sdd命令,再执 行xfs_repair(反复多修复几次)

5.xfs常用命令

xfs_admin: 调整 xfs 文件系统的各种参数

xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)

xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)

xfs_check: 检测 xfs 文件系统的完整性

xfs_bmap: 查看一个文件的块映射

xfs_repair: 尝试修复受损的 xfs 文件系统

xfs_fsr: 碎片整理

xfs_quota: 管理 xfs 文件系统的磁盘配额

xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中

xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统

xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)

xfs_logprint: print the log of an XFS filesystem

xfs_mkfile: create an XFS file

xfs_info: expand an XFS filesystem

xfs_ncheck: generate pathnames from i-numbers for XFS

xfs_rtcp: XFS realtime copy command

xfs_freeze: suspend access to an XFS filesystem

xfs_io: debug the I/O path of an XFS filesystem

6.具体应用:

查看文件块状况: xfs_bmap -v sarubackup.tar.bz2
查看磁盘碎片状况: xfs_db -c frag -r /dev/sda1
文件碎片整理: xfs_fsr sarubackup.tar.bz2
磁盘碎片整理: xfs_fsr /dev/sda1
1.
2.
3.
4.
发现系统并没有正常开启,有重启动作,并报如图错误,错误很明显提示文件系统有损坏现象!在windows因非法重启需要需要运行chkdsk命令进行修复,在linux下只有fsck来修复.linnux对于文件系统的错误非常敏感,由于意外断电或者其它原因导致linux系统意外关机或者重启,都可能对linux的文件系统造成严重的损坏,从而导致不能正常地进入系统。fsck在linux下就变成一个不可或缺的命令.但是fsck命令却有一个致命的软肋,就是对于已经挂载了的分区运行具有极大的危险性,修复不好就彻底把系统崩溃掉了。所以在修复前建立一个快照是一个最安全的方法。
1.
需要确认这个分区的文件系统是什么,这个可以用fdisk -l查看一下相关磁盘及盘符,输入 fsck -c显示完整的检查进度;输入y,如果有多个损坏的文件就会提示多次输入y,进行修复.输入完后 fsck -t ext4 /dev/sda1或fsck.ext4 .此命令只确定磁盘类型.第四步进行fsck -y /dev/sda1只对损坏的文件进行修复,修复OK后进行reboot
1.
总结
1.

1:输入 fsck -c

2: 输入 Yes
1.
3: 输入 fsck -t ext4 /dev/sda1
1.
4: 输入fsck -y /dev/sda1;
1.
5. reboot
1.

filesys : 磁盘设备名称(eg./dev/sda1),挂载(mount)点 (eg. / 或 /usr)

-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数

-s : 依序一个一个地执行 fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查

-C : 显示完整的检查进度

-d : 打印出 ​ ​e2fsck​​ 的 debug 结果

-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行

-R : 同时有 -A 条件时,省略 / 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。

testdisk修复磁盘文件

Cmd命令在桌面版windowsPC和大多数windows server下都是通用的,所以掌握命令对于使用者非常重要;

经常会遇到检查硬盘、清理磁盘的时候,但是使用360、金山等杀毒软件会有一些安全隐患,尤其是大企业有自己的杀毒软件不允许使用其他的带有插件或广告的杀毒软件的情况下,掌握cleanmgr、chkdsk、sfc等命令显得特别重要。

cleanmgr.exe是微软系统内置的一个小程序,利用它,用户可以以“比较安全的状态清理系统垃圾”。事实上,它也就是磁盘清理。

Chkdsk:chkdsk简单的说就是用来检查磁盘的,也是一种简单的修复命令;

chkdsk i: /f ,这里的i为磁盘的盘符,也就是你所要修复的盘符号,比如你想修复 c 盘,就将 i 替换成 c,后边的/f就是修复命令,如图所示:

Sfc.exe:系统文件检查器(System file checker)是一个集成在windows系统中的一款工具软件。该软件可以扫描所有受保护的系统文件并验证系统文件完整性,并用正确的Microsoft程序版本替换不正确的版本。

在Windows XP、win7、8、10中,它的功能更为强大,不仅可以扫描所有受保护的系统文件以验证其版本,还可以设置文件缓存大小、清除文件缓存及重新填充“%SystemRoot%\System32\Dllcache”文件夹。

以管理员身份登录Windows XP、win7、8、10,将Windows XP的安装光盘放入光驱,在“命令提示符”窗口中键入“SFC/SCANNOW”命令后回车,“系统文件检查器”开始自动扫描系统文件,而且不需要你的任何干预。

其实我们平时会经常用的应该还是下面两个命令:

sfc /scannow 立即扫描所有受保护的系统文件,有些莫名其妙的问题就可以用它来解决哟,比重装系统快一点.

sfc /purgecache清除文件缓存,用于系统精简,磁盘空间的释放(当你的系统盘磁盘空间不足的时候可以试一下)

本文标签: 磁盘命令