Mam bezgłowy serwer Ubuntu 12.04 w centrum danych w odległości 1500 mil. Dwa razy po ponownym uruchomieniu system zdecydował, że musi fsck. Niestety Ubuntu uruchomił fsck w trybie interaktywnym, więc musiałem poprosić kogoś z mojego centrum danych o przejście, podłączenie konsoli i naciśnięcie klawisza Y. Jak to skonfigurować, aby fsck działał w trybie nieinteraktywnym w czasie uruchamiania z flagą -y
lub -p
(aka -a
)?
Jeśli dobrze rozumiem proces uruchamiania Ubuntu, init wywołuje mountall, co z kolei wywołuje fsck. Jednak nie widzę żadnego sposobu, aby skonfigurować sposób wywoływania fsck. czy to możliwe?
(Aby odrzucić jedną sugestię; wiem, że mogę użyć, tune2fs -i 0 -c 0
aby zapobiec okresowym fscks. To może trochę pomóc, ale potrzebuję systemu, aby spróbować wrócić, nawet jeśli miałby prawdziwy powód do fsck, na przykład po awarii zasilania .)
W odpowiedzi na dalsze pytania, oto istotne szczegóły mojego / etc / fstab. Nie sądzę, że w ogóle edytowałem to na podstawie tego, co umieściło Ubuntu.
UUID=3515461e-d425-4525-a07d-da986d2d7e04 / ext4 errors=remount-ro 0 1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot ext4 defaults 0 2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none swap sw 0 0
/etc/default/rcS
nie są tak naprawdę ważne w 2019 r., A Ubuntu 16 i Ubuntu 18 używają teraz systemd. Nie znam pełnej historii dla systemd, alefsck.repair
opcja wiersza poleceń konfiguracji / jądra wydaje się odpowiednia. Dokumenty mówią obecnie, że domyślnie jestpreen
, co oznacza-p
. Można go również ustawićyes
na-y
./etc/default/grub
może to być miejsce na ustawienie tego. Byłbym wdzięczny, gdyby ktoś bardziej kompetentny dostarczyłby nowoczesną systemową odpowiedź.Odpowiedzi:
Ustawienie szukam jest w / etc / default / RCS ,
FSCKFIX=yes
. Oznacza to „automatyczną naprawę systemów plików z niespójnościami podczas rozruchu” i powoduje uruchomienie fsck z-y
flagą. Zostało ustawioneno
w obu moich systemach Ubuntu.Nawet jeśli jest ustawiony na
no
, czas rozruchu fsck jest nadal nieco nieinteraktywny. mountall uruchamia fsck z-a
synonimem-p
, co oznacza „automatycznie naprawia wszelkie problemy z systemem plików, które można bezpiecznie naprawić bez interwencji człowieka”. Najwyraźniej-p
przechodzi w tryb interaktywny, jeśli trzeba wprowadzić niebezpieczne poprawki. Aby uruchomić w pełni automatycznie, potrzebujesz-y
lubFSCKFIX=yes
.Oto odpowiedni fragment kodu z mountall.c
źródło
fsck.repair=yes
parametrGRUB_CMDLINE_LINUX_DEFAULT
do/etc/default/grub
W Ubuntu 15,16,17+ ustawienie wartości FSCKFIX znajduje się w lib / init / vars.sh
Można użyć polecenia,
grep -r FSCKFIX * 2>/dev/null
aby go sfinalizować.źródło
/etc/default/rcS
./lib/init/vars.sh
ma wartość domyślną,FSCKFIX
ale źródła,/etc/default/rcS
które mogą ją zastąpić. OTOH nowo zainstalowany system Ubuntu 18 w ogóle nie miałrcS
pliku.Upewnij się, że nie masz żadnych flag, które mogłyby to powodować w fstab, i sprawdź swoje skrypty init. (Spróbuj grep'ować swoje skrypty inicjujące dla 'fsck', aby dowiedzieć się, gdzie jest używane) Mój system uruchamia fsck nieinteraktywny, więc oto kopia mojego fstab i część mojego skryptu / etc / init / mountall do porównania
Fragment z / etc / init / mountall
źródło
grep FSCKFIX /etc/default/rcS
mówi twój system?