"systemd"クラッシュ後にfsckディスクを自動的に強制する方法は?

"systemd"クラッシュ後にfsckディスクを自動的に強制する方法は?

クラッシュ後にsystemd自動強制fsckディスク(ハードシャットダウン)を設定するには?

sysvinitハッキングを使用する場合(Arch Linuxで)/sbin/init:ファイルをrc.local生成するとき。存在する場合は、起動時に強制fsckを有効にします。/forcefsckrc.local.shutdownrc.sysinit/forcefsck

同じことをする方法はsystemdfsck休憩後に自動機能が内蔵されていますか?

答え1

fsck起動時にfsck.mode=forceチェックを完全にスキップするために使用できるデフォルトauto値を渡すことでskipこれを強制できます。カーネルコマンドラインパラメータsystemdv。213そして2番目のパラメータ:fsck.repair-fsck起動時に異常ファイルシステムを処理する方法を制御します。可能な値は次のとおりです。preen安全に修正できるアイテムを修復し、yesすべての質問に「はい」と答え、noデフォルトです。


気づくsystemd-fsck 特定のファイルシステムに関する詳細を知らず、各ファイルシステムタイプに固有のファイルシステムチェッカーのみを実行します(/sbin/fsck.*)
これで、ファイルシステムがまたはあれxfsば、btrfsそれぞれ/sbin/fsck.xfsまたはを実行します/sbin/fsck.btrfs。これがうまくいかない場合は、fsck.xfsマニュアルページを確認するか、別々に確認し、fsck.btrfsに記載されているファイルの内容を確認する必要があります/sbin

答え2

BTRFSシステムをチェックする唯一の方法は、独自のツールを使用することであり、btrfs checkルートボリュームをアンマウントする必要があるため、唯一のオプションは実際にlivecdから起動することです。

fsck.btrfsメッセージを印刷して他の操作を実行しない単純なスタブであるcallで終わる提案は間違っています。これには、fsck.modeカーネルコマンドラインオプションまたはファイルへの回答も含まれます。.forcefsck

[root@nuc ~]# cat /usr/sbin/fsck.btrfs
#!/usr/bin/sh -f
AUTO=false
while getopts ":aApy" c
do
    case $c in
    a|A|p|y)    AUTO=true;;
    esac
done
shift $(($OPTIND - 1))
eval DEV=\${$#}
if [ ! -e $DEV ]; then
    echo "$0: $DEV does not exist"
    exit 8
fi
if ! $AUTO; then
    echo "If you wish to check the consistency of a BTRFS filesystem or"
    echo "repair a damaged filesystem, see btrfs(8) subcommand 'check'."
fi
exit 0

ただし、停電や同様の状況が発生した後にすべてが正常であるかどうかわからない場合は、btrfs checkマウントされたファイルシステムに対して読み取り専用チェックを実行できます。

[root@nuc ~]# btrfs check --readonly --force /dev/sda5
Opening filesystem to check...
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/sda5
UUID: 8c44de9c-c91b-4ac4-857b-da191dc62274
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 3628683264 bytes used, no error found
total csum bytes: 3093864
total tree bytes: 136937472
total fs tree bytes: 126074880
total extent tree bytes: 6455296
btree space waste bytes: 23047273
file data blocks allocated: 5676253184
 referenced 4705763328

関連情報