Pracuję z systemem, w którym chcemy pozwolić użytkownikom na zabawę z datą i godziną, jeśli chcą, i gdzie ponowne uruchomienie może nastąpić dowolnie. Jest to w porządku, z wyjątkiem jednej rzeczy: jeśli następuje duży skok w tył, podczas ponownego uruchamiania pojawia się następujący błąd:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
… A następnie rozruch zawiesza się, czekając na dane wejściowe konsoli użytkownika, a nawet po uzyskaniu dostępu do konsoli wymaga hasła roota, aby kontynuować.
Jest to zdecydowanie mniej niż idealne. Czy jest jakiś sposób, aby pominąć czek lub zmusić go do automatycznego wykonania po ponownym uruchomieniu?
Google zapewnił tylko pomoc, która wymaga ręcznego uruchomienia fsck, jeśli / kiedy zostanie on trafiony, a nie o to mi chodzi. Ręczne uruchamianie fsck po ustawieniu czasu nie działa, ponieważ system plików jest nadal montowany w tym momencie, a samo wyłączenie fsck jest mniej niż idealne.
Używam RedHat 6.
Aktualizacja : Rozwiązaniem, z którego obecnie korzystam, jest zhakowanie fstab, aby wyłączyć sprawdzanie fsck przy ponownym uruchomieniu. Próbowałem edytować ostatni czas montowania na dyskach debugfs
, co działa dobrze w przypadku dysków ext3, ale wydaje się, że zawiesza się niekonsekwentnie na ext4.
Wątpię, czy istnieje sposób na usunięcie tej kontroli, bez modyfikowania kodu źródłowego. Ignorowanie wszystkich błędów z fsck brzmi niebezpiecznie, co jeśli byłby jakiś inny problem?
Dlatego zasugeruję następujące obejście: zmień skrypty rozruchowe, aby ustawić datę systemową na pewien czas w przyszłości (powiedz 2038-01-18 na komputerze 32-bitowym) tuż przed uruchomieniem fsck, i odczytaj ją ze sprzętu zegar później (
hwclock --hctosys
z większą liczbą opcji, zależnie od potrzeb, w zależności od sprzętu i użycia GMT w zegarze sprzętowym).źródło
Wygląda na to, że powinien być uruchamiany na maszynie wirtualnej, gdzie możesz mieć większą kontrolę (lub po prostu przywrócić migawkę).
źródło
Oto rozwiązanie, które działało dla mnie świetnie:
Utwórz /etc/e2fsck.conf:
Więcej na temat tej poprawki tutaj:
http://stillstup.blogspot.com/2010/02/superblock-last-mount-time-is-in-future.html
źródło