Utilitas fsck Linux digunakan untuk memeriksa dan memperbaiki sistem file Linux (ext2, ext3, ext4, dll.).
Bergantung pada kapan terakhir kali sistem file diperiksa, sistem menjalankan fsck selama waktu boot untuk memeriksa apakah sistem file dalam keadaan konsisten. Administrator sistem juga dapat menjalankannya secara manual ketika ada masalah dengan sistem file.
Pastikan untuk menjalankan fsck pada sistem file yang tidak di-mount untuk menghindari masalah korupsi data.
Artikel ini menjelaskan 10 contoh praktis tentang cara menjalankan perintah fsck untuk memecahkan masalah dan memperbaiki kesalahan sistem file.
1. Pemeriksaan Sistem File pada Partisi Disk
Pertama, lihat semua partisi yang tersedia di sistem Anda menggunakan perintah parted seperti yang ditunjukkan di bawah ini.
# parted /dev/sda 'print' Number Start End Size Type File system Flags 1 1049kB 106MB 105MB primary fat16 diag 2 106MB 15.8GB 15.7GB primary ntfs boot 3 15.8GB 266GB 251GB primary ntfs 4 266GB 500GB 234GB extended 5 266GB 466GB 200GB logical ext4 6 467GB 486GB 18.3GB logical ext2 7 487GB 499GB 12.0GB logical fat32 lba
Anda dapat memeriksa sistem file tertentu (misalnya:/dev/sda6) seperti yang ditunjukkan di bawah ini.
# fsck /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6: clean, 95/2240224 files, 3793506/4476416 blocks
Berikut ini adalah kemungkinan kode keluar untuk perintah fsck.
- 0 – Tidak ada kesalahan
- 1 – Kesalahan sistem file diperbaiki
- 2 – Sistem harus di-boot ulang
- 4 – Kesalahan sistem file tidak diperbaiki
- 8 – Kesalahan operasional
- 16 – Kesalahan penggunaan atau sintaks
- 32 – Fsck dibatalkan oleh permintaan pengguna
- 128 – Kesalahan perpustakaan bersama
2. Perintah Fsck Khusus untuk Jenis Sistem File
fsck secara internal menggunakan perintah pemeriksa sistem file masing-masing untuk operasi pemeriksaan sistem file. Perintah pemeriksa fsck ini biasanya terletak di bawah /sbin.
Contoh berikut menunjukkan berbagai kemungkinan perintah pemeriksa fsck (misalnya:fsck.ext2, fsck.ext3, fsck.ext4, dll.)
# cd /sbin # ls fsck* fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.ext4dev fsck.minix fsck.msdos fsck.nfs fsck.vfat
Perintah fsck akan memberi Anda kesalahan saat tidak menemukan pemeriksa sistem file untuk sistem file yang sedang diperiksa.
Misalnya, jika Anda menjalankan fsck melalui partisi ntfs, Anda akan mendapatkan pesan kesalahan berikut. Tidak ada fsck.ntfs di bawah /sbin. Jadi, ini memberikan pesan kesalahan berikut.
# fsck /dev/sda2 fsck from util-linux 2.20.1 fsck: fsck.ntfs: not found fsck: error 2 while executing fsck.ntfs for /dev/sda2
3. Periksa Semua Sistem File dalam Sekali Jalan menggunakan Opsi -A
Anda dapat memeriksa semua sistem file dalam sekali menjalankan fsck menggunakan opsi ini. Ini memeriksa sistem file dalam urutan yang diberikan oleh fs_passno yang disebutkan untuk setiap sistem file di /etc/fstab.
Harap dicatat bahwa sistem file dengan nilai fs_passno 0 dilewati, dan lebih besar dari 0 diperiksa dalam urutan.
/etc/fstab berisi entri seperti yang tercantum di bawah ini,
# cat /etc/fstab ## proc /proc proc nodev,noexec,nosuid 0 0 ## / was on /dev/sda5 during installation /dev/sda5 / ext4 errors=remount-ro 0 1 ## /mydata was on /dev/sda6 during installation /dev/sda6 /mydata ext2 defaults 0 2 ## /backup was on /dev/sda7 during installation /dev/sda7 /backup vfat defaults 0 3
Di sini, sistem file dengan fs_passno yang sama diperiksa secara paralel di sistem Anda.
# fsck -A
Anda disarankan untuk mengecualikan sistem file root selama pemeriksaan global ini dengan menambahkan opsi -R seperti yang ditunjukkan di bawah ini.
# fsck -AR -y fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6: clean, 95/2240224 files, 3793506/4476416 blocks dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN /dev/sda7: 8 files, 50/1463400 clusters
Catatan:Opsi -y dijelaskan dalam salah satu contoh di bawah ini.
4. Periksa Hanya Jenis Sistem File Tertentu menggunakan Opsi -t
Menggunakan opsi fsck -t, Anda dapat menentukan daftar sistem file yang akan diperiksa. Saat Anda menggunakan dengan opsi -A, fsck hanya akan memeriksa sistem file yang disebutkan dengan opsi ini -t. Perhatikan bahwa fslist adalah nilai yang dipisahkan koma.
Sekarang, berikan ext2 sebagai nilai fslist ke opsi -t seperti yang ditunjukkan di bawah ini:
# fsck -AR -t ext2 -y fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6: clean, 11/2240224 files, 70327/4476416 blocks
Dalam contoh ini, /dev/sda6 adalah satu-satunya partisi yang dibuat dengan sistem file ext2, sehingga akan diperiksa sesuai dengan itu.
Menggunakan kata kunci 'tidak' di depan sistem file, Anda dapat memeriksa semua jenis sistem file lain kecuali sistem file tertentu.
Dalam contoh berikut, sistem file ext2 dikecualikan dari pemeriksaan.
# fsck -AR -t noext2 -y fsck from util-linux 2.20.1 dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN /dev/sda7: 0 files, 1/1463400 clusters
5. Jangan jalankan Fsck di Mounted Filesystem menggunakan Option -M
Sebaiknya gunakan opsi ini sebagai default dengan semua operasi fsck Anda. Ini mencegah Anda menjalankan fsck secara tidak sengaja pada sistem file yang di-mount.
# mount | grep "/dev/sd*" /dev/sda5 on / type ext4 (rw,errors=remount-ro) /dev/sda6 on /mydata type ext2 (rw) /dev/sda7 on /backup type vfat (rw)
Seperti yang ditunjukkan di atas, /dev/sda7 sudah terpasang. Jika Anda mencoba menjalankan fsck pada sistem file yang dipasang di /dev/sda7 ini (bersama dengan opsi -M), fsck akan keluar dengan kode keluar 0 seperti yang ditunjukkan di bawah ini.
# fsck -M /dev/sda7 # echo $? 0
6. Lewati Judul Tampilan menggunakan Opsi -T
Menggunakan opsi -T, Anda dapat melewatkan judul yang ditampilkan di awal output perintah fsck.
# fsck -TAR e2fsck 1.42 (29-Nov-2011) /dev/sda6 is mounted. e2fsck: Cannot continue, aborting. dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN /dev/sda7: 8 files, 50/1463400 clusters
Perhatikan bahwa judulnya seperti “fsck from util-linux 2.20.1”.
7. Paksa Pemeriksaan Sistem File Meskipun Bersih menggunakan Opsi -f
Secara default fsck mencoba melewati sistem file bersih untuk melakukan pekerjaan lebih cepat.
# fsck /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6: clean, 95/2240224 files, 3793503/4476416 blocks
Anda dapat memaksanya untuk memeriksa sistem file menggunakan -f seperti yang ditunjukkan di bawah ini.
# fsck /dev/sda6 -f fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda6: 95/2240224 files (7.4% non-contiguous), 3793503/4476416 blocks
8. Mencoba Memperbaiki Masalah yang Terdeteksi Secara Otomatis menggunakan Opsi -y
Pada contoh berikut, partisi /dev/sda6 rusak seperti yang ditunjukkan di bawah ini.
# mount /dev/sda6 /mydata # cd /mydata # ls -li ls: cannot access test: Input/output error total 72 49061 -rw-r--r-- 1 root root 8 Aug 21 21:50 1 49058 -rw-r--r-- 1 root root 36864 Aug 21 21:24 file_with_holes 49057 -rw-r--r-- 1 root root 8192 Aug 21 21:23 fwh 11 drwxr-xr-x 2 root root 49152 Aug 19 00:29 lost+found 2060353 ?rwSr-S-wT 16 root root 4096 Aug 21 21:11 Movies ? -????????? ? ? ? ? ? test
Seperti yang terlihat di atas, direktori Film dan file test atribut tidak valid.
Dalam contoh berikut, -y akan meneruskan "ya" ke semua pertanyaan untuk memperbaiki korupsi yang terdeteksi secara otomatis.
# fsck -y /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inode 2060353 is a unknown file type with mode 0137642 but it looks like it is really a directory. Fix? yes Pass 2: Checking directory structure Entry 'test' in / (2) has deleted/unused inode 49059. Clear? yes Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda6: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda6: 96/2240224 files (7.3% non-contiguous), 3793508/4476416 blocks
9. Hindari Perbaikan, tetapi Laporkan Masalah ke Stdout menggunakan Opsi -n
Dimungkinkan untuk mencetak masalah yang terdeteksi tersebut ke dalam stdout tanpa memperbaiki sistem file menggunakan opsi fsck -n.
Pertama, Anda dapat melihat/melihat masalah di partisi /dev/sda6 bahwa direktori Movies (dan file fwh) tidak memiliki detail atribut yang valid.
# mount /dev/sda6 /mydata # cd /mydata # ls -lrt total 64 drwxr-xr-x 2 root root 49152 Aug 19 00:29 lost+found ?--xrwx-wx 16 root root 4096 Aug 21 21:11 Movies ?-----x-wx 1 root root 8192 Aug 21 21:23 fwh -rw-r--r-- 1 root root 36864 Aug 21 21:24 file_with_holes -rw-r--r-- 1 root root 8 Aug 21 21:50 1
Masalah di atas pada partisi tertentu yang ditampilkan di stdout tanpa melakukan perbaikan apa pun sebagai berikut,
Contoh fsck berikut menampilkan masalah di stdout tanpa memperbaikinya. (keluaran sebagian ditunjukkan di bawah).
# fsck -n /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inode 2060353 is a unknown file type with mode 0173 but it looks like it is really a directory. Fix? no Inode 2060353, i_blocks is 8, should be 0. Fix? no Pass 2: Checking directory structure Inode 2060353 (/Movies) has invalid mode (0173). Clear? no Inode 49057 (/fwh) has invalid mode (013). Clear? no Entry 'fwh' in / (2) has an incorrect filetype (was 1, should be 0). Fix? no Pass 3: Checking directory connectivity Unconnected directory inode 65409 (???) Connect to /lost+found? no '..' in ... (65409) is ??? (2060353), should be (0). Fix? no Unconnected directory inode 2076736 (???) Connect to /lost+found? no Pass 4: Checking reference counts Inode 2 ref count is 4, should be 3. Fix? no Inode 65409 ref count is 3, should be 2. Fix? no Inode 2060353 ref count is 16, should be 15. Fix? no Unattached inode 2060354 Connect to /lost+found? no Pass 5: Checking group summary information Block bitmap differences: -(164356--164357) -4149248 Fix? no Directories count wrong for group #126 (1, counted=0). Fix? no /dev/sda6: ********** WARNING: Filesystem still has errors ********** /dev/sda6: 96/2240224 files (7.3% non-contiguous), 3793508/4476416 blocks
10. Perbaiki Bagian yang Rusak Secara Otomatis menggunakan Opsi -a
Untuk memperbaiki bagian yang rusak secara otomatis ( tanpa interaksi pengguna ), gunakan opsi -a seperti yang ditunjukkan di bawah ini.
# fsck -a -AR
Opsi -a sama dengan -p di utilitas e2fsck. Ini menyebabkan e2fsck memperbaiki masalah yang terdeteksi yang harus diperbaiki dengan aman tanpa interaksi pengguna.
Jika fsck memerlukan perhatian administrator, itu hanya keluar dengan kode kesalahan 4 sebelum mencetak deskripsi masalah.
# fsck -a /dev/sda6 fsck from util-linux 2.20.1 /dev/sda6 contains a file system with errors, check forced. /dev/sda6: Inode 2060353 is a unknown file type with mode 0173 but it looks like it is really a directory. /dev/sda6: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) # echo $? 4
Seperti yang Anda ingat, opsi fsck -y dapat digunakan di sini untuk memperbaiki masalah di atas secara otomatis.
# fsck -y /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inode 2060353 is a unknown file type with mode 0173 but it looks like it is really a directory. Fix? yes Pass 2: Checking directory structure Inode 49057 (/fwh) has invalid mode (013). Clear? yes Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: -(164356--164357) Fix? yes Free blocks count wrong for group #5 (0, counted=2). Fix? yes Free blocks count wrong (682908, counted=682910). Fix? yes /dev/sda6: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda6: 95/2240224 files (7.4% non-contiguous), 3793506/4476416 blocks