我可以从系统日志中看出 XFS 在上次关闭时是否已完全卸载吗?

我可以从系统日志中看出 XFS 在上次关闭时是否已完全卸载吗?

是否有与 fsck.ext4 消息“恢复日志”等效的 XFS? (看 “恢复日志”是否证明是不干净的关闭/卸载?)。

fsck.xfs是一个空操作。那么,当您挂载未完全卸载的 XFS 文件系统时,内核是否会记录一条消息?

答案1

似乎没有直接的等价物。

[27927.296390] XFS (sdb4): Mounting V5 Filesystem
[27927.869545] XFS (sdb4): Ending clean mount
[27942.761564] usb 2-2: USB disconnect, device number 31
[27943.011211] usb 2-2: new full-speed USB device number 32 using xhci_hcd
[27960.810143] XFS (sdb4): Unmounting Filesystem
[27960.811247] XFS (sdb4): metadata I/O error in "xlog_iodone" at daddr 0x58b10a len 64 error 5
[27960.812077] XFS (sdb4): xfs_do_force_shutdown(0x2) called from line 1271 of file fs/xfs/xfs_log.c.  Return address = 00000000758bdd7c
[27960.812708] XFS (sdb4): Log I/O Error Detected.  Shutting down filesystem
[27960.812728] XFS (sdb4): Unable to update superblock counters. Freespace may not be correct on next mount.
[27960.813349] XFS (sdb4): Please umount the filesystem and rectify the problem(s)

...

[28509.842965]  sdb: sdb1 sdb2 sdb3 sdb4
[28509.846156] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[28517.755990] XFS (sdb4): Mounting V5 Filesystem
[28518.328431] XFS (sdb4): Ending clean mount

file -s /dev/sdb4能够显示 ext4 文件系统何时“需要日志恢复”,但当我测试不干净卸载的 XFS 文件系统时,它没有检测到任何差异。

xfs_repair也没有表现出任何差异。事实上,常见消息列表 man xfs_repair不包含任何有关日志重播的内容。反而:

xfs_repair 实用程序无法修复具有脏日志的 XFS 文件系统。要清除日志,请挂载和卸载 XFS 文件系统。如果日志已损坏且无法重播,请使用 -L 选项(“强制日志清零”)清除日志,即 xfs_repair -L /dev/device。请注意,这可能会导致进一步的损坏或数据丢失。

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/xfsrepair

虽然 ext4 维护特殊标志来指示不干净的卸载,但听起来 XFS 只维护日志。如果日志是空的,那么它是“干净的”;没有什么可以修复/恢复/重播。

(如果您的操作系统希望检测不正常的关闭,那么它必须自己执行此操作,就像 Windows 一样:-)。

相关内容