Ubuntu saya menjalankan fsck pada setiap bootup


19

Pada setiap bootup itu sama:

/dev/sda1: clean, 908443/38690816 files, 44176803/154733312 blocks

Apakah ini semacam opsi yang digunakan Ubuntu untuk memastikan konsistensi sistem file atau ada sesuatu yang salah dengan HDD saya? fsckmembutuhkan waktu hingga 30 detik saat booting dan sekitar tiga kali lipat waktu yang dibutuhkan sebaliknya.

Output penuh (sebagian dalam bahasa Jerman):

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck von util-linux 2.20.1
/dev/sda1: sauber, 908443/38690816 Dateien, 44176803/154733312 Blöcke
udevd[623]: unknown key 'SYSFS{idVendor}' in /lib/udev/rules.d/45-libticables.rules:6

udevd[623]: invalid rule '/lib/udev/rules.d/45-libticables.rules:6'

 * Starting mDNS/DNS-SD daemon                                                 [ OK ]
 * Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated                                                                   [ OK ]
 * Starting configure network device security                                  [ OK ]
 * Starting bluetooth daemon                                                   [ OK ]
 ####* Starting all other stuff

Apa versi Ubuntu yang Anda jalankan? Apakah sistem Anda mati dengan bersih?
ubfan1

Raring x64 = 13,04 64bit. Shutdown berjalan dengan bersih sejauh yang saya bisa katakan (Di mana logfile shutdown?)
s3lph

1
fsck mengatakan itu tidak berjalan, bahwa volumenya bersih.
psusi

Tetapi komponen pengecekan harus dijalankan untuk mengatakan itu bersih, bukan?
s3lph

Jawaban:


25

/ dev / sda1: clean, 908443/38690816 Files, 44176803/154733312 Blok

Baris yang menghasilkan pesan itu adalah ini :

/* Print the summary message when we're skipping a full check */
log_out(ctx, _("%s: clean, %u/%u files, %llu/%llu blocks"),

Itu melompati "pemeriksaan penuh" tetapi hanya memastikan bahwa beberapa tes cepat untuk jurnal bersih dan tidak ada inode anak yatim:

cat /var/log/boot.log 
fsck from util-linux 2.20.1
fsck from util-linux 2.20.1
/dev/sda1: clean, 260598/771552 files, 1684682/3080192 blocks
/dev/sdb10: recovering journal
/dev/sdb10: Clearing orphaned inode 142568 (uid=1000, gid=1000, mode=0100664, size=32768)
/dev/sdb10: Clearing orphaned inode 138527 (uid=1000, gid=1000, mode=0100600, size=9580)
/dev/sdb10: clean, 54957/991232 files, 3498365/3958006 blocks

Ini normal dan diharapkan. Jika itu benar-benar pemeriksaan menyeluruh, itu akan membutuhkan lebih banyak waktu tetapi biasanya butuh satu detik atau kurang. systemd-fsck(8)Halaman manual Systemd memiliki kondisi di mana pemeriksaan lengkap dipicu:

systemd-fsck-root.service bertanggung jawab untuk pemeriksaan sistem file pada sistem file root, tetapi hanya jika sistem file root tidak diperiksa di initramfs. systemd-fsck @ .service digunakan untuk semua sistem file lainnya dan untuk sistem file root di initramfs.

Layanan ini dimulai saat boot jika passno di / etc / fstab untuk sistem file diatur ke nilai yang lebih besar dari nol. Pemeriksaan sistem file untuk root dilakukan sebelum sistem file lainnya. Sistem file lain mungkin diperiksa secara paralel, kecuali ketika mereka berada di disk berputar yang sama.

systemd-fsck tidak tahu detail tentang sistem file tertentu, dan cukup menjalankan pemeriksa sistem file khusus untuk setiap jenis sistem file (/sbin/fsck.*). Pembantu ini akan memutuskan apakah sistem file benar-benar harus diperiksa berdasarkan waktu sejak pemeriksaan terakhir, jumlah mount, haram unmount, dll.

Anda cukup memeriksa bahwa tes tidak membutuhkan apa-apa untuk dijalankan (jika Anda menggunakan systemd):

sudo systemd-analyze blame | grep fsck
          1.608s systemd-fsck@dev-disk-by\x2duuid-408535fe\x2d28e6\x2d4d82\x2dbb59\x2d9810ead089a3.service
            87ms systemd-fsck@dev-mapper-vlhome\x2dlvhome.service

Jawaban atas q di tautan Anda mengatakan Anda dapat mengontrol perilaku dengan memodifikasi /etc/fstab. Apakah hanya mungkin untuk mengatur 0atau 1dapatkah saya memberi tahu sistem saya kapan harus melakukan tes "cepat" ini?
s3lph

@the_Seppi tidak, Anda tidak dapat menonaktifkan fsck di fstab tetapi urutannya, jawaban saya yang lain menjelaskannya, bacalah tentang akhirnya.
Braiam

Saya membaca bahwa mengubah digit terakhir ke 0 menonaktifkan fsck di mount
s3lph

@the_Seppi ya, Anda benar, 1dan 2menentukan urutan untuk diperiksa tetapi 0atau tidak ada yang mengatakan bahwa itu tidak perlu. Tapi kemudian saya memiliki kedua nilai di 0 dan masih mendapatkan cek
Braiam

2
Ada bug yang dilaporkan di launchpad: bug pemula # 1504688 . Ini berisi kemungkinan solusi di komentar # 17 .
azurkin

1

Apakah Anda yakin itu fsck yang mengambil 30-an dan bukan hanya bahwa pesan konsol berikutnya yang berkaitan dengan udevd membutuhkan waktu 30 detik? Dengan kata lain, mungkin udevd mengambil 30 detik untuk waktu habis mengerjakan hal libticables sebelum menampilkan pesan konsol?

Coba hapus (atau pindahkan tempat lain sementara)

/lib/udev/rules.d/45-libticables.rules

dan lihat apakah itu membantu.


Tidak, itu pasti fsck. Ini Running /scripts/init-bottom ...donedicetak sekitar 3s, fsck-clean sekitar 30-an.
s3lph

Jenis sistem file apa yang Anda gunakan?
Joseph Santaniello

Saya menggunakan EXT4
s3lph

Apakah jeda sebelum mencetak "fsck von ..." atau sebelum "/ dev / sda ..."?
Joseph Santaniello

Di mana Anda memasang / dev / sda1? Anda dapat mencoba menambahkan: noauto,x-systemd.automountke opsi fstab jika itu / home atau apalah. Jadi sistem akan melewati pemasangan hingga diakses
Joseph Santaniello

0

Fsck ini pada setiap boot terjadi pada saya karena jam buruk Tampaknya systemd-fsck @ berjalan sebelum systemd-timesyncd, dan tanpa RTC yang didukung baterai, waktu sistem salah pada saat fsck dijalankan.

Saya mengonfirmasi bahwa inilah yang memicu pemeriksaan penuh (alih-alih meminta fsck keluar dengan cepat), dengan menonaktifkan systemd-timesynd, mengatur jam ke nilai pra-sinkronisasi yang ditemukan di journalctl, dan menjalankan fsck. E2fsck kemudian mulai melakukan pemeriksaan penuh, setelah itu mendeteksi bahwa waktu penulisan superblok terakhir adalah di masa depan:

fsck from util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Superblock last write time (Mon Jun 19 00:48:11 2017,
    now = Tue Jan 31 20:09:28 2017) is in the future.
Fix<y>? yes
Pass 1: Checking inodes, blocks, and sizes
...

Perhatikan bahwa, pemicu untuk pemeriksaan penuh ini tidak terkait dengan pemicu lain jumlah pemasangan maksimum dan interval waktu sejak pemeriksaan terakhir, yang terlihat pada dumpe2fs -h, disebutkan dalam jawaban lain di sini.

Perhatikan bahwa, tanpa mengatur jam (yaitu, membiarkan timesyncd menyinkronkannya), fsck tidak akan melakukan pemeriksaan penuh, tetapi akan keluar dengan cepat dengan pesan 'filesystem clean'.

Sebagai solusi, saya menonaktifkan fsck di / etc / fstab dengan menetapkan bidang 'pass' ke 0. Akhirnya, saya akan membeli RTC yang didukung baterai untuk perangkat ini.


-1

Pencarian saya menghasilkan kesimpulan bahwa jumlah pemasangan maksimum default Ubuntu diatur ke -1. Ini berarti bahwa fsck tidak akan pernah berjalan pada sembarang boot terlepas dari jumlah mount. Anda dapat memeriksa milik Anda dengan perintah -

sudo dumpe2fs -h /dev/sda8 | grep -i 'mount count'

Anda dapat meningkatkannya menggunakan kebutuhan Anda tune2fs. Contoh khas adalah sebagai berikut -

sudo tune2fs -c 30 -i 1w /dev/sda8

Kustomisasi sesuai keinginan Anda.


1
Tidak, itu berarti nilainya akan diuraikan kembali oleh kernel dan e2fsck: linux.die.net/man/8/tune2fs "Jika jumlah mount-mount adalah 0 atau -1, berapa kali filesystem yang dipasang akan diabaikan. oleh e2fsck (8) dan kernel. "
HappyCactus

Buruk saya, akan mengubah posting.
Vivek Ji
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.