Apa yang harus saya lakukan untuk memaksa pemeriksaan filesystem root (dan secara opsional memperbaiki) saat boot?

10

Kemarin, salah satu komputer kami jatuh ke grubshell atau jujur, saya tidak yakin apa itu shell ketika kami menyalakan mesin.

Ini menunjukkan bahwa ia tidak dapat me-mount root filesystem atau sesuatu dalam hal ini, karena tidak konsisten.

Saya berlari, saya percaya:

fsck -fy /dev/sda2

Reboot dan masalahnya hilang.

Inilah bagian pertanyaannya:

Saya sudah punya di crontab akarnya:

@reboot /home/ruzena/Development/bash/fs-check.sh

sedangkan skrip berisi:

#!/bin/bash
touch /forcefsck

Berpikir tentang itu, saya tidak tahu, mengapa saya membuat file skrip untuk perintah sesingkat itu, tapi bagaimanapun ...

Selanjutnya, dalam file:

/etc/default/rcS

Saya telah mendefinisikan:

FSCKFIX=yes

Jadi saya tidak mengerti. Bagaimana mungkin situasi itu muncul?


Apa yang harus saya lakukan untuk memaksa pemeriksaan filesystem root (dan secara opsional memperbaiki) saat boot?

Atau apakah dua hal ini maksimum, yang bisa saya lakukan?

OS: Linux Mint 18.x Kayu Manis 64-bit.

fstab:

cat /etc/fstab | grep ext4

menunjukkan:

UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4    /    ext4    errors=remount-ro    0    1

grub:

fsck.mode=force

sudah ditambahkan ke grubkonfigurasi.

LinuxSecurityFreak
sumber

Jawaban:

12

ext4 pemeriksaan filesystem saat boot

Diuji pada OS: Linux Mint 18.x dalam Mesin Virtual

Informasi dasar

/etc/fstabmemiliki fsckurutan sebagai kolom terakhir (ke-6), misalnya:

<file system>    <mount point>    <type>    <options>    <dump>    <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1

FSCKFIX=yes variabel dalam /etc/default/rcS

Ini akan mengubah fsck menjadi perbaikan otomatis, tetapi tidak memaksakan pemeriksaan fsck.

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

Dari man tune2fs

If you are using journaling on your filesystem, your filesystem
will never be marked dirty, so it will not normally be checked.

Dimulai dari

Pengaturan berikut

FSCKFIX=yes

dalam file

/etc/default/rcS

Periksa dan catat terakhir kali fs diperiksa:

sudo tune2fs -l /dev/sda1 | grep "Last checked"

Kedua opsi ini TIDAK berfungsi

  1. Melewati argumen -F(memaksa fscksaat reboot) ke shutdown:

    shutdown -rF now
    

    Nggak; lihat: man shutdown.

  2. Menambahkan /forcefsckfile kosong dengan:

    touch /forcefsck
    

    Skrip ini sepertinya menggunakan ini:

    /etc/init.d/checkfs.sh
    /etc/init.d/checkroot.sh
    

    tidak tidak bekerja di reboot, tapi file tersebut telah dihapus.

    Diverifikasi oleh:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    sudo less /var/log/fsck/checkfs
    sudo less /var/log/fsck/checkroot
    

    Ini tampaknya menjadi log untuk initskrip.

Saya ulangi, kedua opsi ini TIDAK bekerja!


Kedua metode ini TIDAK berfungsi

  1. switch boot kernel systemd-fsck

    Mengedit grubfile konfigurasi utama :

    sudoedit /etc/default/grub
    
    GRUB_CMDLINE_LINUX="fsck.mode=force"
    
    sudo update-grub
    sudo reboot
    

    Ini memang melakukan pemeriksaan sistem file yang diverifikasi dengan:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

    Catatan: Ini DID cek, tapi untuk memaksa memperbaiki juga, Anda perlu menentukan fsck.repair="preen", atau fsck.repair="yes".

  2. Menggunakan tune2fsuntuk mengatur jumlah pemasangan sistem file sebelum melakukan fsck,man tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c switch mengatur berapa kali untuk memasang fs sebelum memeriksa fs.

    sudo tune2fs -c 1 /dev/sda1
    

    Verifikasi dengan:

    sudo tune2fs -l /dev/sda1
    

    DID ini berfungsi sebagai diverifikasi dengan:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

Ringkasan

Untuk memaksa a fsckpada setiap boot di Linux Mint 18.x, gunakan salah satu tune2fs, atau fsck.mode=force, dengan opsional fsck.repair=preen/ fsck.repair=yes, baris perintah kernel berganti.

jc__
sumber