linux修复文件系统-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 ext3 /dev/sda3fsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2006)/dev/sda3 is mounted.
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 修复

### 如何使用 `fsck` 修复 Linux文件系统Linux 中,`fsck` 是一种强大的工具,可以用来检查和修复文件系统的错误。对于根文件系统(/),由于其特殊性,在执行修复操作之前需要特别注意一些事项。 #### 关键注意事项 为了防止数据丢失或进一步损坏文件系统,必须确保根文件系统未被挂载为可写模式。如果尝试在已挂载的情况下运行 `fsck` 并强制继续,则可能导致严重的文件系统损害[^2]。 #### 方法一:通过单用户模式修复 进入单用户模式是一种安全的方式,可以在不完全关闭操作系统的同时卸载根文件系统并对其进行修复。 1. 启动计算机时按下键盘上的箭头键中断引导过程。 2. 在 GRUB 菜单中选择内核版本并按 **e** 编辑启动选项。 3. 找到以 `linux16` 或 `linux` 开头的行,并在其末尾添加单词 `single` 或 `init=/bin/bash`。 4. 按下 Ctrl+X 或 F10 继续启动。 5. 进入单用户模式后,输入以下命令来重新挂载根文件系统为只读: ```bash mount -o remount,ro / ``` 6. 使用 `fsck` 对根文件系统进行检查和修复: ```bash fsck -y / ``` 7. 如果一切正常,重启系统完成修复: ```bash reboot ``` #### 方法二:从 Live CD/USB 修复 另一种方法是从外部介质(如 Live CD/USB)启动系统来进行修复。 1. 准备一张包含 Linux 发行版的 Live USB 或 DVD。 2. 将其插入目标机器并从中启动。 3. 加载桌面环境或其他终端界面。 4. 查找根分区设备名称(通常是 `/dev/sda1`)。可以通过以下命令查看磁盘布局: ```bash lsblk fdisk -l ``` 5. 确定根分区后,运行 `fsck` 来修复它: ```bash fsck -y /dev/sdXY ``` (将 sdXY 替换为实际的根分区名) 6. 完成后退出 Live 环境并重新启动系统。 #### 返回码解释 当 `fsck` 结束时会返回特定的状态码表示结果状态。以下是常见的一些返回值及其含义[^3]: - **0**: 没有发现任何错误。 - **1**: 文件系统存在错误但已被成功修正。 - **2**: 需要重新启动系统。 - **4**: 存在无法纠正的错误。 - **8**: 操作过程中发生内部错误。 - **16**: 用户指定参数非法或语法有问题。 - **32**: 用户主动取消了检测流程。 - **128**: 动态链接库加载失败。 ```bash echo $? ``` 此命令可用于显示最后一条指令的退出状态以便确认修复情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值