是否可以通过重新编辑fstab文件来运行xfs修复?
/dev/mapper/vg-linux_root / xfs defaults 0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot xfs defaults 0 0
/dev/mapper/vg-linux_var /var xfs defaults 0 0
/dev/mapper/vg-linux_swap swap swap defaults 0 0我不确定,但把最后一个数字从0改为1,对吗?
发布于 2020-03-22 12:05:24
对于其他文件系统类型,它可以工作。但是XFS在这里很特别。
将/etc/fstab的第6个字段更改为XFS文件系统上的非零值将导致系统运行fsck.xfs,其手册页说:
NAME
fsck.xfs - do nothing, successfully
[...]
However, the system administrator can force fsck.xfs to run xfs_re‐
pair(8) at boot time by creating a /forcefsck file or booting the sys‐
tem with "fsck.mode=force" on the kernel command line.因此,通常情况下,fsck.xfs将什么也不做。
如果您真的希望xfs_repair在引导时运行,那么必须满足两个条件:
对于所讨论的XFS文件系统,/etc/fstab的第6个字段必须是非零字段,以便执行fsck.xfs。
( b) /forcefsck文件必须存在于根文件系统(如果计划检查根文件系统,则可能在initramfs中),或者内核命令行必须有fsck.mode=force引导选项。这将导致fsck.xfs运行xfs_repair而不是什么都不做。
XFS文件系统和xfs_repair工具都将假设底层磁盘处于良好状态,或者至少能够透明地用内置的备用块替换坏块(就像所有现代磁盘一样)。如果现代磁盘具有操作系统可见的持久坏块,这通常意味着内置的备用块机制已经被大量的坏块所淹没,而且磁盘可能很快就会完全失败。
xfs_repair的手册页说:
Disk Errors
xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
to repair a filesystem that was damaged due to a disk drive failure,
steps should be taken to ensure that all blocks in the filesystem are
readable and writable before attempting to use xfs_repair to repair the
filesystem. A possible method is using dd(8) to copy the data onto a
good disk.因此,您可能不应该将xfs_repair设置为在正常情况下自动运行。
如果XFS文件系统有错误,那么您应该首先评估底层磁盘的状态:smartctl -a /dev/<disk device>可能很有用,因为使用dd将分区/LV的全部内容读取到/dev/null,并确保命令可以在没有错误的情况下完成。
如果磁盘出现故障,您应该首先将分区/LV的内容复制到一个新的无错误磁盘(可能使用dd或ddrescue),然后尝试在无错误磁盘上的文件系统上运行xfs_repair。
在引导时自动运行xfs_repair可能是一个适当的解决方法,如果您知道某些原因导致了文件系统级别的错误,即使您的磁盘处于良好状态也是如此。但这只是一种解决办法,而不是修复:您应该找出导致文件系统错误的原因,并修复根本原因。(可能是文件系统驱动程序错误,需要更新的内核包才能修复?)
https://unix.stackexchange.com/questions/574128
复制相似问题