システムの起動中とrootfsをマウントする前にfsckを強制する方法は?

システムの起動中とrootfsをマウントする前にfsckを強制する方法は?

私は組み込みLinuxビルドにYoctoを使用しています。私の目標は、システムが起動するたびにファイルを強制的にスキャンすることです。これまで、次の手順を行いました。

  1. ファイルを変更/etc/default/rcSENABLE_ROOTFS_FSCK=yesFSCKFIX=yes
  2. 私は起動するたびにtune2fs -c 1 <my_fs>ファイルシステムをチェックするためにこのコマンドを使います。

次のログが表示されます。

`EXT4-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended`

ルートパーティションをマウントする前に、fsck はマウント後すぐにパーティションを確認しようとします。したがって、プロセスは中断されます。丸太:

mount: / is busy
*** ERROR!  Cannot fsck root fs because it is not mounted read-only!

パーティションをマウントする前にfsckにファイルシステムをチェックするように強制する方法は?助けてくれてありがとう。

ベストアンサー1

ご質問を誤解している可能性がありますが、

tune2fs走るために走る必要はありませんfsck。 fsパラメータを「調整」しないため、プロキシtune2fsとしてこれを使用するとfsckオーバーヘッドが追加され、起動プロセスが少し遅くなる可能性があります。

たぶんあなたはどういう意味ですかe2fsckfsck~で行動する「パッケージ」または「フロントエンド」供給遺産サポートする。通常fsck、電話だけでe2fsck実際の作業が行われます。

とにかく - 答えは次のとおりです。

fsckオペレーティングシステムによって呼び出しが異なる可能性があると思います。私の「組み込みLinux」オペレーティングシステムの1つはRPiであり、fsck起動時に呼び出す2つの方法があります。今後ルートファイルシステムがマウントされます。

  1. forcefsckファイルシステム/IE のルートディレクトリに名前が付いたファイルを作成します。

    $ sudo touch /forcefsck
    

    起動するたびにこれを行う必要があります。私のOSは起動中にこのファイルを削除します。

  2. エディタを使用して以下を追加します/boot/cmdline.txt

    fsck.mode=強制

    $ nano /boot/cmdline.txt
    

    から:
    console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 エレベーター=期限 fsck.repair=はい rootwait

    到着する:
    console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 リフト=期限 fsck.mode=force fsck.repair=yes rootwait

繰り返しますが、OSによって異なると思いますので、YMMVです。

おすすめ記事