GNU/Linux >> Belajar Linux >  >> Linux

10 Contoh Perintah Fsck Linux untuk Memeriksa dan Memperbaiki Sistem File

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

Linux
  1. 7 Contoh Perintah Linux df

  2. 8 Contoh Perintah Linux TR

  3. sa Contoh Perintah di Linux

  1. w Contoh Perintah di Linux

  2. Contoh Perintah ac di Linux

  3. Contoh Perintah df di Linux

  1. Perintah Linux Cat:Penggunaan dan Contohnya

  2. Perintah Linux - Gambaran Umum dan Contoh

  3. Contoh Perintah mkfs.ext4 di Linux