Sim, existe uma invocação específica de fsck
(como root ou sudo):
$ fsck /dev/sdXY
Substitua X e Y pelos parâmetros corretos para o seu caso (por exemplo, /dev/sda1
).
NÃO EXECUTE ISSO EM UMA PARTIÇÃO MONTADA! Pode danificar seriamente o seu sistema de arquivos.
Para mais informações sobre o Linux e desfragmentação, veja minha resposta aqui .
Se você não precisa executar especificamente o fsck, mas apenas verificar a fragmentação da sua unidade, o seguinte script (tirado de ) deve fazer o truque:
#!/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");
$/ = "$ frag_check.pl $HOME/
1.32410691664555% non contiguous files, 1.05380668862427 average fragments.
";
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");
Você pode, então, executá-lo no diretório (ou ponto de montagem) em questão:
$ fsck /dev/sdXY