Lubię uruchamiać system bez nadzoru na co dzień w „kiosku”.
Jednak system może zostać wyłączony w dowolnym momencie bez wcześniejszego prawidłowego wyłączenia. Domyślnie nie oczekuje się, że Ubuntu zostanie zamknięty z powodu utraty zasilania. Po ponownym uruchomieniu po utracie zasilania można uruchomić program fsck, aby sprawdzić system plików, a program fsck może nakazać systemowi ponowne uruchomienie po zakończeniu. Więc nawet jeśli żadne dane konfiguracyjne nie zostaną uszkodzone, maszyna może nie uruchomić się dobrze po utracie zasilania. Więc przetestowałem kilka obejść:
zmień priorytet fsck montowania roota na
0
(ostatnie pole wefstab
wpisie roota), aby uniemożliwić działaniefsck
po każdej utracie zasilania. System może się jednak uruchomić z zamontowanym rootem tylko do odczytu, co nie jest oczekiwane przez wiele usług i powoduje wyświetlenie monitu logowania do konsoli zamiast logowania graficznego.Zastąp
errrors=remount-ro
przezerrors=continue
. Daje to złe wrażenie, że niespójny system plików może spowodować dalszą utratę danych. Jednak pofsck
ponownym włączeniu powinien zwiększyć zdolność rozruchową systemu po utracie zasilania. Upuściłem więc 1).Ponownie skonfiguruj grub2, aby używał normalnego domyślnego limitu czasu opcji po nieudanym uruchomieniu. Do tego dodałem
GRUB_RECORDFAIL_TIMEOUT=0
do/etc/default/grub
.
Jednak trudno jest ustalić, czy włamania te są odporne na utratę zasilania systemu. Jakieś pomysły? Coś więcej można zrobić?
Odpowiedzi:
W przypadku aplikacji kiosku problem został rozwiązany za pomocą partycji root tylko do odczytu. Ponadto wszelkie zmiany wprowadzane lub zapisywane przez użytkowników są cofane przy następnym uruchomieniu.
Aby zapewnić zapisywalny katalog główny dla większości potrzeb aplikacji, overlayfs można użyć do nałożenia partycji tylko do odczytu zapisywalnymi plikami RAM.
Istnieje skrypt, który pomaga utworzyć taką konfigurację na dole https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash . Skrypt zawiera instrukcje konfiguracji:
sudo chmod 0755 root-ro
sudo update-initramfs -u
Proponuję, aby dodać
GRUB_RECORDFAIL_TIMEOUT=0
do/etc/default/grub
i uruchomićsudo update-grub
też, w przeciwnym razie mogą pojawić się menu startowe bez limitu czasu.Następnie uruchom ponownie. Maszyna następnie uruchamia się w trybie tylko do odczytu, co można sprawdzić za pomocą
mount
. Wszelkie zastosowane zmiany znikną przy następnym uruchomieniu. Aby wprowadzić zmiany, zainstalować oprogramowanie i aktualizacje itp., Wystarczy wejść do menu GRUB, nacisnąć,e
aby zmienić wiersze poleceń rozruchu, i dołączyćdisable-root-ro=true
do linii zaczynającej się od jądra. Naciśnij klawisz F10, aby kontynuować uruchamianie. Następnie możesz użyć,mount
aby potwierdzić, że root jest zamontowany w zwykły sposób do zapisu. Wprowadź zmiany i uruchom ponownie, system jest ponownie tylko do odczytu.źródło
Kilka razy po nieczystym ponownym uruchomieniu (np. Naciśnięciu przycisku utraty zasilania lub resetu, a nawet panice jądra), system nie uruchomi się z prośbą o naciśnięcie „y”, aby fsck naprawić partycję.
Jeśli chcesz tego uniknąć, edytuj / etc / default / rcS i zmień:
Do:
Zapewni to automatyczne uruchomienie naprawy bez monitowania użytkownika.
Minusem może być to, że możesz stracić dane i możesz chcieć wyjąć dysk twardy i sklonować go jako pierwszy, jeśli jest na nim coś krytycznego, czego nie ma kopii zapasowej.
Na przykład jeśli kontroler dysku twardego ma błąd i fsck błędnie zidentyfikował partycję jako uszkodzoną i spróbuje ją naprawić, może to doprowadzić do utraty danych, której można by uniknąć. Sam tego nigdy nie doświadczyłem i miałem do czynienia z blisko tysiącem serwerów w ciągu ostatnich 7 lat - ale nadal warto o tym pamiętać.
źródło
Na dzień dzisiejszy do kiosku tylko do odczytu rozwiązanie można również zainstalować pakiet
overlayroot
przezktóry z łatwością zapewni kompletne rozwiązanie, takie jak jedno z zatwierdzonych odpowiedzi. Pozwala także na korzystne dowodzenie
który zaloguje się do powłoki, na której jest zamontowany poprzedni dysk podstawowy tylko do odczytu
/
. Następnie można wprowadzić dowolne zmiany w chronionym systemie, takie jak np. Użyćapt-get
do zainstalowania pakietów na poprzednim dysku tylko do odczytu. Jednak po wyjściu z powłoki zdecydowanie zaleca się ponowne uruchomienie komputera, ponieważ tymczasowo nadpisane pliki w pamięci RAM mogą zasłaniać nowo zainstalowane.źródło