Raspberry Pi 3およびRaspbian Jessie-起動時にfsckを実行する方法


13

Pi 3とRaspberry Jessieを使用している場合、起動時にfsckを実行するにはどうすればよいですか?私はいくつかのチュートリアルを読みましたが、それらは異なります。

私は走りましたsudo touch /forcefsckが、他に何をしなければなりませんか?FSCKFIX = yesを設定する必要があることはわかっていますが、正しいファイルは何ですか?/lib/init/vars.sh他の人が言う人もい/etc/default/rcSます。

設定が機能していることを確認するにはどうすればよいですか?画面が見えません。停電があるため、ファイルシステムが破損するリスクが高くなります。

編集:

以下の2つの解決策を試しました。

1)sudo shutdown -rF now /var/log/boot.log を使用すると、次のようになります。 [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2)を使用fsck.mode=forceしてfsck.repair=yes/boot/cmdline.txtブートログで言う: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

これら2つのケースでログファイルがまったく異なるのはなぜですか?

回答:


23

sudo touch / forcefsckを実行しましたが、他に何をする必要がありますか?

それはwheezyにもっと当てはまるものです。jessieは下位互換性がある場合とそうでない場合がありますが、新しい方法で行うこともできます。

以下を追加します/boot/cmdline.txt

fsck.mode=force

ファイルがすべて1行のままであることを確認してください。 パラメータはスペースで区切る必要があります。

おそらくfsck.repair=yesすでにそこにあることに気づくでしょう。これらは同じものではありません。From man systemd-fsck(これらは実際にはカーネルによってinitに渡されるパラメーター、つまりsystemdです):

fsck.mode =

「auto」、「force」、「skip」のいずれか。動作モードを制御します。デフォルトは「auto」で、ファイルシステムチェッカーが必要と判断したときにファイルシステムチェックが実行されるようにします。「強制」すると、無条件に完全なファイルシステムチェックが実行されます。「skip」は、ファイルシステムチェックをスキップします。

fsck.repair =

「preen」、「yes」、「no」のいずれか。動作モードを制御します。デフォルトは「修復」であり、安全に修正できる問題を自動的に修復します。「yes」はfsckによるすべての質問にyesと答え、「no」はすべての質問にnoと答えます。


これはどのように違いsudo shutdown -rF nowますか?Boot.logはまったく異なります。
JPX 2017

3

これは、Jessie old-stableリリースで使用しているもので、次の行の最後にありますcmdline.txtforcefsck

私は以下も持っていますfstab: 行末とに /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 注意してください12

ブートごとにルートパーティション(/ dev / mmcblk0p2)をチェックして修復します(@ dev / sda2ではなく@JulianKnight)。

元のOPで説明されている内容は、RPiのWheezyでも機能します。 sudo touch /forcefsck

Wheezyの後の@WillianPaixaoの-Fオプションはshutdownサポートされなくなりました

ファイルシステムチェックを強制する方法は、(ほとんど)カーネルバージョンにバインドされています。Debian8.0以降(8.2で?)のある時点で、@ goldilocks回答で説明されているように変更されました。


2

また、Piだけでなく、どのLinuxでも機能する次のことを実行できるはずです(明らかに、デバイスはプラットフォームによって異なります。デフォルトのPi SDカードにはsda2が適しています)。

sudo tune2fs -c 1 /dev/sda2

これにより、再起動ごとにチェックが設定されます。番号は好きなように変更できます。時間ベースのチェックが必要な場合は、-cの代わりに-iを使用します。詳細については、manページを参照してください。


1

パラメータで使用shutdown-Fます。[1]

sudo shutdown -rF now

コマンドを実行しました。再起動後、syslogにfsck実行(raspbianストレッチ)に関する情報が含まれていません。
ロバートは

2
man shutdownRaspbianを確認したところ、-Fオプションはありませんでした。
Victor Sergienko、2018

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.