fstabファイルを編集してファイルシステムを回復する

fstabファイルを編集してファイルシステムを回復する

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に置き換えることはできませんか?

答え1

いいえ、単に/etc/fstabを編集してもxfs_repairが実行されるわけではありません。

他のファイルシステムタイプでも機能します。しかし、ここでXFSは特別です。

XFSファイルシステムの6番目のフィールドを/etc/fstabゼロ以外の値に変更すると、システムが機能します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次の2つの条件を満たす必要があります。

a) 接続された XFS ファイルシステムの場合、実行/etc/fstabするにはフィールド 6 が 0 であってはなりませんfsck.xfs

b)/forcefsckファイルは、ルートファイルシステム(またはルートファイルシステムを確認したい場合はinitramfs)になければなりません。それ以外の場合は、カーネルコマンドラインにfsck.mode=force起動オプションが必要です。これにより、何もしない代わりにfsck.xfs実行が発生します。xfs_repair

それでは、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ファイルシステムにエラーがある場合は、必ずプライマリディスクの状態を最初に評価する必要があります。パーティション/ LVの内容全体を読み、コマンドがエラーなく完了することを確認するとsmartctl -a /dev/<disk device>便利です。dd/dev/null

ディスクに障害が発生した場合は、まずパーティション/ LVの内容をエラーのない新しいディスクにコピーしてから(ddまたは使用可能)、エラーのないディスクからファイルシステムを実行する必要がありますddrescuexfs_repair

xfs_repairファイルシステムレベルのエラーが発生したことがわかっている場合は、ディスクの状態が良好であっても起動時に自動的に実行することが適切な回避策である可能性があります。しかし、これは解決策ではなく回避策です。ファイルシステムエラーの原因を見つけて根本原因を修正する必要があります。 (おそらく更新されたカーネルパッケージが必要なファイルシステムドライバのバグですか?)

答え2

上記のファイルに/dev/sdaエラーがある場合は、そのファイルを実行する必要がありますfsck。実際、ディスク自体は回復されず、ファイルのみが回復されることに注意してください。ディスクに障害が発生して障害が発生した場合は、ディスクを交換してバックアップからデータを復元することをお勧めします。ディスクが十分に悪くなると、特にディスクが完全に破損しているとデータが失われる可能性があります。

関連情報