GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak vynutit kontrolu kořenového souborového systému (a případně opravu) při spouštění?

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/fstabfsck 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

  1. Předávání -F (vynutit fsck při restartu) argument pro shutdown :

    shutdown -rF now
    

    Ani náhodou; viz:man shutdown .

  2. 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

  1. 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" nebo fsck.repair="yes" .

  2. Pomocí tune2fs pro nastavení počtu připojení systému souborů před provedením fsck , 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.


Linux
  1. Jak zajistit, aby byly soubory a adresáře neodstranitelné, a to i přes kořen v Linuxu

  2. Inodes a souborový systém Linux

  3. Linux – Jak zobrazit typ souborového systému přes terminál?

  1. Jak resetovat heslo root v Linuxu a FreeBSD

  2. Jak vynutit kontrolu kořenového souborového systému pomocí fsck během restartu

  3. Jak mohu zkontrolovat integritu souboru avi a automaticky jej opravit v systému Linux?

  1. Jak zkontrolovat verzi OS a Linuxu

  2. Linux – Jak změnit zapomenuté heslo roota?

  3. Zkontrolujte a opravte chyby souborového systému pomocí příkazu fsck v Linuxu