Jawaban:
Anda dapat menjalankan fsck.ext2 dengan aman pada sistem file ext2 ext3 atau ext4 walaupun sudah terpasang seperti ini
sudo fsck.ext2 -fn /dev/sdXY
Jika drive sudah di-mount, itu akan menampilkan banyak kesalahan, tetapi argumen -n mengatakan tidak menyentuh drive.
$ sudo fsck.ext2 -fn /dev/sda1
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
Ubuntu_Rescue: 291595/1222992 files (0.2% non-contiguous), 1927790/4882432 blocks
sudo tune2fs -C 16000 /dev/sda1
dan reboot.
Keluarga ext modern filesystem mempertimbangkan keseimbangan dan kedekatan ketika mengalokasikan file. Dalam ext3 dan ext4 balancing umumnya diurus dengan menerapkan entri jurnal secara berurutan, dan di ext4 secara khusus, dengan pra-alokasi luasan sistem file untuk meningkatkan blok yang berdekatan. Mengejar tingkat fragmentasi yang lebih rendah dari 20% mungkin tidak sepadan dengan waktu Anda, terutama jika sistem Anda mengakses beberapa file berulang kali. Saya sarankan mengejar taktik ini untuk meningkatkan kecepatan baca untuk sistem disk tunggal:
meningkatkan ram: ini meningkatkan cache sistem file
meningkatkan ukuran blok: dengan berpindah dari 1k ke ukuran blok 4k, Anda mendapatkan kinerja yang lebih baik saat membaca untuk file yang dekat atau lebih besar dari ukuran blok Anda
jika Anda bertele-tele, Anda dapat mengatur file besar dan file kecil menjadi partisi dengan ukuran bloknya, Anda mungkin hanya ingin melakukan ini jika Anda menyimpan foto, video, dan kode sumber di direktori terpisah
tingkatkan pengaturan baca-depan Anda menggunakan utilitas hdparm dan / atau mode laptop
buat cadangan dan kembalikan sistem file Anda secara linear seperti dengan tar
Jika Anda memiliki banyak disk dan menggunakan raid striping dan / atau LVM, Anda harus mempertimbangkan faktor lain, seperti ukuran strip.
Ya, ada fsck
permintaan khusus (sebagai root, atau sudo):
$ fsck /dev/sdXY
Ganti X dan Y dengan parameter yang benar untuk kasus Anda (misalnya /dev/sda1
).
JANGAN RUN INI DI PARTISI MOUNTED! Ini serius dapat merusak sistem file Anda.
Untuk informasi lebih lanjut tentang Linux dan defragmenting, lihat jawaban saya di sini .
Jika Anda tidak perlu menjalankan fsck secara khusus, tetapi hanya ingin memeriksa fragmentasi drive Anda, skrip berikut (diambil dari sini ) harus melakukan trik:
#!/usr/bin/perl -w
#this script search for frag on a fs
use strict;
#number of files
my $files = 0;
#number of fragment
my $fragments = 0;
#number of fragmented files
my $fragfiles = 0;
#search fs for all file
open (FILES, '-|', "find '$ARGV[0]' -xdev -type f -print0");
$/ = "\0";
while (defined (my $file = <FILES>)) {
open (FRAG, "-|", "filefrag", $file);
my $res = <FRAG>;
if ($res =~ m/.*:\s+(\d+) extents? found/) {
my $fragment = $1;
$fragments += $fragment;
if ($fragment > 1) {
$fragfiles++;
}
$files++;
} else {
print ("$res : not understand for $file.\n");
}
close (FRAG);
}
close (FILES);
print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n");
Anda kemudian dapat menjalankannya di direktori (atau mount point) dalam pertanyaan:
$ frag_check.pl $HOME/
1.32410691664555% non contiguous files, 1.05380668862427 average fragments.
Anda dapat menggunakan alat seperti e2defrag untuk mendapatkan informasi ini.
Ingatlah bahwa karena sifat sistem file Linux, defragging biasanya tidak diperlukan.
e4defrag -c
, tetapi tidak berhasil.
-c
opsi sebagai argumen terakhir. Dan ... "tidak berhasil"? Apa kesalahan yang Anda dapatkan?