文件系统 fsck和e2fsck使用-小白实操记录
1 区别e2fsck只是针对ext2、ext3、ext4等ext系列文件系统的工具,fsck支持检查各种不同的文件系统,包含ext系列文件系统。2 e2fsck命令指令:e2fsck使用权限 : 超级使用者使用方式 : e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device
1 区别
e2fsck只是针对ext2、ext3、ext4等ext系列文件系统的工具,fsck支持检查各种不同的文件系统,包含ext系列文件系统。
2 e2fsck命令
指令:e2fsck
- 使用权限 : 超级使用者
- 使用方式 : e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] device
- 参数 :
- device : 预备检查的硬碟 partition,例如:/dev/sda1
- -a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
- -b : 设定存放 superblock 的位置
- -B : 设定单位 block 的大小
- -c : 检查该partition 是否有坏轨
- -C file : 将检查的结果存到 file 中以便查看
- -d : 列印 e2fsck 的 debug 结果
- -f : 强制检查
- -F : 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
- -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
- -L bad_blocks_file : 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
- -n : 将档案系统以[唯读]方式开启
- -p : 对 partition 做检查,若有问题便自动修复
- -v : 详细显示模式
- -V : 显示出目前 e2fsck 的版本
- -y : 预先设定所有检查时的问题均回答[是]
例子 :
检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
e2fsck -a -y /dev/hda5
注意 :
大部份使用 e2fsck 来检查硬碟 partition 的情况时,通常都是情形特殊,因此最好先将该 partition umount,然后再执行 e2fsck 来做检查,若是要非要检查 / 时,则请进入 singal user mode 再执行。
3 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 : 详细显示模式
- -y : 预先设定所有检查时的问题均回答[是]
- -a : 如果检查有错则自动修复
- -r : 如果检查有错则由使用者回答是否修复
- 例子 :
- 检查 msdos 档案系统的 /dev/hda5 是否正常,如果有异常便自动修复 :
- fsck -t msdos -a /dev/hda5
- 注意 :
- 此指令可与 /etc/fstab 相互参考操作来加以了解。
4 文件修复
当系统正在对某个文件系统的区域进行写入操作时(读的话没关系),突然断电,会造成文件系统对应区域的损坏(如写入脏数据), 而e2fsck算法就是用来恢复受损的文件系统,目的是:系统能够重启后,一切长长。当然,有损坏,想原样修复,当然不能100%保证,所以,就遇到了某些系统文件丢失,或者文件属性发生变化的事情。 文件损坏会报错structure needs cleaning(结构需要清理)。
4.1 树莓派armv7l ext系列文件系统文件修复
1 卸载 /dev/mmcblk1p7
sudo vim /etc/fstab
/dev/mmcblk1p7 /data auto defaults 0 0 前面加一个#,改成如下
#/dev/mmcblk1p7 /data auto defaults 0 0
保存退出,reboot
2 修复 /dev/mmcblk1p7
sudo e2fsck -p -f /dev/mmcblk1p7
如果提示修复不成功,要手动修复,执行
sudo e2fsck -f -y /dev/mmcblk1p7
这种情况,需要在删除错误目录 /data/dockerFile
sudo mount /dev/mmcblk1p7 /data
rm -rf /data/dockerFile
3 重新挂载 /dev/mmcblk1p7
sudo vim /etc/fstab
#/dev/mmcblk1p7 /data auto defaults 0 0 删除#,改成如下
/dev/mmcblk1p7 /data auto defaults 0 0
保存退出,reboot
4 检查/data是否挂载
执行 df -h
4.2 fsck修复
下面操作会删除挂载点所有文件,注意备份。
1 首先df -t 查看出错的挂载点对应的文件系统和文件系统类型
2 然后umount这个文件系统
比如:umount /dev/sda1
3 然后根据文件系统类型不同操作不同
比如ext4:
fsck.ext4 /dev/sda1
4 最后重启reboot
更多推荐
所有评论(0)