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
(paksafsck
saat reboot) argumen keshutdown
:shutdown -rF now
Tidak; lihat:
man shutdown
. -
Menambahkan
/forcefsck
file kosong dengan:touch /forcefsck
Skrip ini sepertinya menggunakan ini:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.sh
melakukan 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/checkroot
Sepertinya ini adalah log untuk
init
skrip.
Saya ulangi, kedua opsi ini TIDAK berfungsi!
Kedua metode ini BERHASIL
-
saklar boot kernel systemd-fsck
Mengedit
grub
utama file konfigurasi: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:DID ini cek, tetapi untuk memaksakan perbaikan juga, Anda perlu menentukan
fsck.repair="preen"
, ataufsck.repair="yes"
. -
Menggunakan
tune2fs
untuk mengatur jumlah pemasangan sistem file sebelum melakukanfsck
,man tune2fs
tune2fs' info is kept in the file system superblock
-c
switch menyetel berapa kali untuk memasang fs sebelum memeriksa fs.sudo tune2fs -c 1 /dev/sda1
Verifikasi dengan:
sudo tune2fs -l /dev/sda1
MELAKUKAN 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:
tune2fs
halaman manual