Raspberry Pi 3 i Raspbian Jessie - Jak uruchomić fsck podczas rozruchu?

13

Jak uruchomić fsck podczas rozruchu podczas korzystania z Pi 3 i Raspberry Jessie? Przeczytałem samouczek, ale różnią się one.

Uciekłem, sudo touch /forcefsckale co jeszcze muszę zrobić? Wiem, że powinienem ustawić FSCKFIX = tak, ale jaki jest prawidłowy plik? Niektórzy mówią /lib/init/vars.shinni /etc/default/rcS.

Jak mogę sprawdzić, czy moje ustawienia działają? Nie mam widoczności do ekranu. Występują przerwy w dostawie prądu, więc istnieje wysokie ryzyko uszkodzenia systemu plików.

Edytować:

Wypróbowałem dwa rozwiązania wymienione poniżej.

1) Korzystając z sudo shutdown -rF now/var/log/boot.log mówi: [^[[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) Za pomocą fsck.mode=forceoraz fsck.repair=yesw /boot/cmdline.txtbootlog mówi: [^[[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.

Dlaczego plik dziennika jest zupełnie inny w tych dwóch przypadkach?

JPX
źródło

Odpowiedzi:

23

Uruchomiłem sudo touch / forcefsck, ale co jeszcze muszę zrobić?

To rzeczy, które dotyczą bardziej świszczącego oddechu; jessie może (ale nie musi) być z nim kompatybilny wstecz, ale równie dobrze możesz to zrobić w nowy sposób:

Dodaj następujące elementy /boot/cmdline.txt:

fsck.mode=force

Upewnij się, że plik pozostaje w jednym wierszu. Parametry należy oddzielić spacjami.

Prawdopodobnie zauważysz, fsck.repair=yesże już tam jest; to nie to samo. From man systemd-fsck(są to parametry przekazywane przez jądro do init , tj. Systemd):

fsck.mode =

Jeden z „auto”, „force”, „skip”. Kontroluje tryb działania. Domyślnie jest to „auto” i zapewnia, że ​​kontrole systemu plików są wykonywane, gdy moduł sprawdzający system plików uzna to za konieczne. „force” bezwarunkowo powoduje pełną kontrolę systemu plików. „skip” pomija wszelkie kontrole systemu plików.

fsck.repair =

Jeden z „preen”, „tak”, „nie”. Kontroluje tryb działania. Domyślnie jest to „preen” i automatycznie naprawi problemy, które można bezpiecznie naprawić. „tak” odpowie „tak” na wszystkie pytania fsck, a „nie” odpowie „nie” na wszystkie pytania.

Złotowłosa
źródło
Jak to się różni w porównaniu do sudo shutdown -rF now? Boot.log wygląda zupełnie inaczej.
JPX
3

Tego używam w starej stabilnej wersji Jessie, na końcu linii cmdline.txt: forcefsck

Mam również następujące elementy fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Zwróć uwagę na 1i 2na końcu linii

Sprawdza i naprawia partycję root (/ dev / mmcblk0p2) przy każdym uruchomieniu (@JulianKnight not / dev / sda2).

To, co opisano w oryginalnym OP, nadal działa dla Wheezy na RPi: sudo touch /forcefsck

@WillianPaixao po Wheezy -Fopcja shutdownnie jest już obsługiwana

Jak wymusić sprawdzenie systemu plików jest (głównie) powiązane z wersją jądra, w pewnym momencie po Debianie 8.0 (w 8.2?), Zostało to zmienione jak opisano w odpowiedzi @goldilocks.

Paul Wratt
źródło
2

Powinieneś także być w stanie wykonać następujące czynności, które powinny działać na każdym Linuksie, nie tylko na Pi (oczywiście urządzenie zmieni się na różne platformy, sda2 powinno być odpowiednie dla domyślnej karty SD SD):

sudo tune2fs -c 1 /dev/sda2

To powinno ustawić kontrolę przy każdym ponownym uruchomieniu. Możesz zmienić numer na dowolny. Użyj -i zamiast -c, jeśli chcesz sprawdzać na podstawie czasu. Zobacz stronę podręcznika, aby uzyskać więcej informacji.

Julian Knight
źródło
1

Używam shutdownz -Fparametrem. [1]

sudo shutdown -rF now
Willian Paixao
źródło
Wykonałem polecenie. Po ponownym uruchomieniu mój syslog nie zawiera żadnych informacji o uruchomieniu fsck (raspbian stretch).
Robert,
2
Właśnie sprawdziłem man shutdownRaspbian - nie ma tam opcji -F.
Victor Sergienko,
2
@WillianPaixao po Wheezy opcja -F wyłączenia nie jest już obsługiwana zgodnie z odpowiedzią Paula Wratta.
Ghanima