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
(vynutitfsck
při restartu) argument proshutdown
:shutdown -rF now
Ani náhodou; viz:
man shutdown
. -
Přidání
/forcefsck
prázdný soubor s:touch /forcefsck
Zdá se, že tyto skripty používají toto:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.sh
NE 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/checkroot
Zdá se, že toto jsou protokoly pro
init
skripty.
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
grub
konfigurační soubor:sudoedit /etc/default/grub
GRUB_CMDLINE_LINUX="fsck.mode=force"
sudo update-grub sudo reboot
To 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í
tune2fs
pro nastavení počtu připojení systému souborů před provedenímfsck
,man tune2fs
tune2fs' info is kept in the file system superblock
-c
přepínač nastavuje počet připojení fs před kontrolou fs.sudo tune2fs -c 1 /dev/sda1
Ověřte pomocí:
sudo tune2fs -l /dev/sda1
Toto 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.