ext4 pemeriksaan sistem file selama boot
Diuji di OS:Linux Mint 18.x di Mesin Virtual
Informasi dasar
/etc/fstab memiliki fsck pesan 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 di /etc/default/rcS
Ini akan mengubah fsck menjadi perbaikan otomatis, tetapi tidak paksa 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.
Mulai dengan
Mengatur yang berikut
FSCKFIX=yes
dalam file
/etc/default/rcS
Periksa dan perhatikan terakhir kali fs diperiksa:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Kedua opsi ini TIDAK berfungsi
-
Meneruskan
-F(paksafscksaat reboot) argumen keshutdown:shutdown -rF nowTidak; lihat:
man shutdown. -
Menambahkan
/forcefsckfile kosong dengan:touch /forcefsckSkrip ini sepertinya menggunakan ini:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.shmelakukan TIDAK berfungsi saat reboot, tetapi file telah dihapus.
Diverifikasi oleh:
sudo tune2fs -l /dev/sda1 | grep "Last checked" sudo less /var/log/fsck/checkfs sudo less /var/log/fsck/checkrootSepertinya ini adalah log untuk
initskrip.
Saya ulangi, kedua opsi ini TIDAK berfungsi!
Kedua metode ini BERHASIL
-
saklar boot kernel systemd-fsck
Mengedit
grubutama file konfigurasi:sudoedit /etc/default/grubGRUB_CMDLINE_LINUX="fsck.mode=force"sudo update-grub sudo rebootIni memang melakukan pemeriksaan sistem file yang diverifikasi dengan:
sudo tune2fs -l /dev/sda1 | grep "Last checked"Catatan:DID ini cek, tetapi untuk memaksakan perbaikan juga, Anda perlu menentukan
fsck.repair="preen", ataufsck.repair="yes". -
Menggunakan
tune2fsuntuk mengatur jumlah pemasangan sistem file sebelum melakukanfsck,man tune2fstune2fs' info is kept in the file system superblock-cswitch menyetel berapa kali untuk memasang fs sebelum memeriksa fs.sudo tune2fs -c 1 /dev/sda1Verifikasi dengan:
sudo tune2fs -l /dev/sda1MELAKUKAN ini berfungsi sebagaimana diverifikasi dengan:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Ringkasan
Untuk memaksa fsck pada setiap boot di Linux Mint 18.x, gunakan tune2fs , atau fsck.mode=force , dengan fsck.repair=preen opsional / fsck.repair=yes , baris perintah kernel beralih.
Penyelidikan lebih lanjut dan pembaruan atas jawaban yang ada
Saya sekarang hanya ingin memeriksa, apakah hal di atas masih berfungsi pada sistem berbasis Ubuntu 20.04 LTS (langsung diuji di Linux Mint 20 Cinnamon dan Ubuntu MATE 20.04 ), dan saya menemukan beberapa hal, mari kita mulai dengan interval pemeriksaan sistem file (saya menjalankan semua perintah sebagai root (seperti yang mungkin Anda perhatikan ~# di depan perintah):
Interval pemeriksaan sistem file
~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Check interval'
Check interval: 0 (<none>)
Yah, ini tidak terduga. Saya pikir kami sudah merawatnya, tetapi untungnya bisa diperbaiki dengan sangat mudah. Perhatikan, angka yang diperlukan sebagai argumen secara default dalam hitungan hari, jadi pastikan untuk menggunakan 1 detik (1 detik), bukan hanya 1 yang berarti 1 hari (86400 detik):
~# LC_ALL=C tune2fs -i 1s /dev/nvme0n1p2
tune2fs 1.45.5 (07-Jan-2020)
Setting interval between checks to 1 seconds
Sekarang, jika kita mengulangi pemeriksaan di atas, kita mendapatkan:
Check interval: 1 (0:00:01)
Ini tidak berarti sistem file akan diperiksa setiap satu detik, tentu saja. Sebaliknya, itu akan memaksa pemeriksaan sistem file pada setiap pemasangan sistem file. (Karena tidak ada cara mem-boot sistem apa pun dua kali dalam satu detik.)
Jumlah pemasangan maksimum sistem file sebelum pemeriksaan
Setelan bawaan:
~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Maximum mount count'
Maximum mount count: -1
Pengaturan ini menyesuaikan berapa banyak pemasangan yang diperlukan hingga sistem file diperiksa. Tidak apa-apa apa yang tertulis di jawaban aslinya:
~# LC_ALL=C tune2fs -c 1 /dev/nvme0n1p2
tune2fs 1.45.5 (07-Jan-2020)
Setting maximal mount count to 1
Pastikan Anda tidak menggunakan 0 atau -1 karena akan diabaikan.
Saya mungkin akan menambahkan lebih banyak info nanti... Jadi, terus periksa (permainan kata-kata).
Sumber informasi:
tune2fshalaman manual