fsck
使用权限 : 超级使用者
使用方式 : fsck [-sACVRP] [-t fstype] [--] [fsck-options] http://www.linuxso.com/command/file.html 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 : 列印 http://www.linuxso.com/command/e2fsck.html 的 debug 结果
-p : 同时有 -A 条件时, 同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时, 省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
补充说明:
例子 :
检查 msdos 档案系统的 /dev/hda5 是否正常, 如果有异常便自动修复 :
fsck -t msdos -a /dev/hda5
注意 :
此指令可与 /etc/fstab 相互参考操作来加以了解.
范例: 检查 / dev/sda3
[[email protected] ~]# fsck -C -t http://www.linuxso.com/command/ex.html t3 /dev/sda3fsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2006)/dev/sda3 is mount http://www.linuxso.com/command/ed.html .
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 时, 先做准备工作, 方法一: 可事先用 http://www.linuxso.com/command/dd.html 命令将所涉及到的分区输出到另外的存储体上(最好不要在出错的存储体本身上做 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 要修复的文件系统的分区
3) 然后输入 "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
发现系统并没有正常开启, 有重启动作, 并报如图错误, 错误很明显提示文件系统有损坏现象! 在 Windows 因非法重启需要需要运行 chkdsk 命令进行修复, 在 Linux 下只有 fsck 来修复. linnux 对于文件系统的错误非常敏感, 由于意外断电或者其它原因导致 Linux 系统意外关机或者重启, 都可能对 Linux 的文件系统造成严重的损坏, 从而导致不能正常地进入系统. fsck 在 Linux 下就变成一个不可或缺的命令. 但是 fsck 命令却有一个致命的软肋, 就是对于已经挂载了的分区运行具有极大的危险性, 修复不好就彻底把系统崩溃掉了. 所以在修复前建立一个快照是一个最安全的方法.
需要确认这个分区的文件系统是什么, 这个可以用 fdisk -l 查看一下相关磁盘及盘符, 输入 fsck -c 显示完整的检查进度; 输入 y, 如果有多个损坏的文件就会提示多次输入 y, 进行修复. 输入完后 fsck -t ext4 /dev/sda1 或 fsck.ext4 . 此命令只确定磁盘类型. 第四步进行 fsck -y /dev/sda1 只对损坏的文件进行修复, 修复 OK 后进行 reboot
总结
1: 输入 fsck -c
输入 Yes
输入 fsck -t ext4 /dev/sda1
输入 fsck -y /dev/sda1;
reboot
filesys : 磁盘设备名称 (eg./dev/sda1), 挂载(mount) 点 (eg. / 或 /usr)
-t : 给定档案系统的型式, 若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对 / etc/fstab 中所有列出来的 分区 (partition) 做检查
-C : 显示完整的检查进度
-d : 打印出 e2fsck https://baike.baidu.com/view/4807941.htm 的 debug 结果
-p : 同时有 -A 条件时, 同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时, 省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
-y : 选项指定检测每个文件是自动输入 yes, 在不确定那些是不正常的时候, 可以执行 # fsck -y 全部检查修复.
https://www.cnblogs.com/zafu/p/11406525.html
testdisk 修复磁盘文件 https://www.cnblogs.com/zafu/p/11406525.html
https://blog.csdn.net/WannaHaha/article/details/89710113
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 清除文件缓存, 用于系统精简, 磁盘空间的释放(当你的系统盘磁盘空间不足的时候可以试一下)
来源: http://www.bubuko.com/infodetail-3304219.html