Včera jeden z našich počítačů spadl na grub shell nebo upřímně, nejsem si jistý, co to bylo za shell, když jsme zapnuli stroj.
Ukázalo se, že nemůže připojit kořenový souborový systém nebo něco v tomto smyslu z důvodu nekonzistencí.
Utekl jsem, věřím:
fsck -fy /dev/sda2
Restartováno a problém byl pryč.
Zde přichází část s otázkami:
Už mám v jejím kořenovém crontab:
@reboot /home/ruzena/Development/bash/fs-check.sh
zatímco skript obsahuje:
#!/bin/bash
touch /forcefsck
Když o tom přemýšlím, nevím, proč jsem vytvořil soubor skriptu pro tak krátký příkaz, ale stejně…
Dále v souboru:
/etc/default/rcS
Definoval jsem:
FSCKFIX=yes
tak to nechápu. Jak k takové situaci vůbec mohlo dojít?
Co mám udělat, abych vynutil kontrolu kořenového souborového systému (a volitelně opravu) při bootování?
Nebo jsou tyto dvě věci maximum, co mohu udělat?
OS: Linux Mint 18.x Cinnamon 64bitový.
fstab :
cat /etc/fstab | grep ext4
ukazuje:
UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4 / ext4 errors=remount-ro 0 1
grub :
fsck.mode=force
byl již přidán do grub konfigurace.
Přijatá odpověď:
ext4 kontrola souborového systému během bootování
Testováno na OS:Linux Mint 18.x ve virtuálním počítači
Základní informace
/etc/fstab má fsck pořadí jako poslední (6.) sloupec, například:
<file system> <mount point> <type> <options> <dump> <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1
FSCKFIX=yes proměnná v /etc/default/rcS
Tím se změní fsck na automatickou opravu, ale ne vynutit kontrolu fsck.
Z man rcS :
FSCKFIX When the root and all other file systems are checked, fsck is invoked with the -a option which means "autorepair". If there are major inconsistencies then the fsck process will bail out. The system will print a message asking the administrator to repair the file system manually and will present a root shell prompt (actually a sulogin prompt) on the console. Setting this option to yes causes the fsck commands to be run with the -y option instead of the -a option. This will tell fsck always to repair the file systems without asking for permission.
Z man tune2fs
If you are using journaling on your filesystem, your filesystem will never be marked dirty, so it will not normally be checked.
Začít s
Nastavení následujícího
FSCKFIX=yes
v souboru
/etc/default/rcS
Zkontrolujte a poznamenejte si poslední kontrolu fs:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Tyto dvě možnosti NEFUNGOVALY
-
Předávání
-F(vynutitfsckpři restartu) argument proshutdown:shutdown -rF nowAni náhodou; viz:
man shutdown. -
Přidání
/forcefsckprázdný soubor s:touch /forcefsckZdá se, že tyto skripty používají toto:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.shNE pracovat na restartu, ale soubor byl smazán.
Ověřeno:
sudo tune2fs -l /dev/sda1 | grep "Last checked" sudo less /var/log/fsck/checkfs sudo less /var/log/fsck/checkrootZdá se, že toto jsou protokoly pro
initskripty.
Opakuji, tyto dvě možnosti NEFUNGOVALY!
Související:Může Macbook dual bootovat Snow Leopard a Lion?Obě tyto metody fungovaly
-
systemd-fsck spouštěcí přepínače jádra
Úprava hlavního
grubkonfigurační soubor:sudoedit /etc/default/grubGRUB_CMDLINE_LINUX="fsck.mode=force"sudo update-grub sudo rebootTo provedlo kontrolu systému souborů, jak bylo ověřeno pomocí:
sudo tune2fs -l /dev/sda1 | grep "Last checked"Poznámka:Toto DÍLO kontrola, ale chcete-li vynutit opravu, musíte zadat
fsck.repair="preen"nebofsck.repair="yes". -
Pomocí
tune2fspro nastavení počtu připojení systému souborů před provedenímfsck,man tune2fstune2fs' info is kept in the file system superblock-cpřepínač nastavuje počet připojení fs před kontrolou fs.sudo tune2fs -c 1 /dev/sda1Ověřte pomocí:
sudo tune2fs -l /dev/sda1Toto DÍLO pracovat jako ověřeno s:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Shrnutí
Chcete-li vynutit fsck při každém spouštění na Linux Mint 18.x použijte buď tune2fs nebo fsck.mode=force , s volitelným fsck.repair=preen / fsck.repair=yes , přepne se příkazový řádek jádra.