Antworten:
Sie können fsck.ext2 sicher auf einem ext2 ext3- oder ext4-Dateisystem ausführen, auch wenn es so eingehängt ist
sudo fsck.ext2 -fn /dev/sdXY
Wenn das Laufwerk gemountet ist, werden viele Fehler ausgegeben, aber das Argument -n weist es an, das Laufwerk nicht zu berühren.
$ 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
und starten Sie den Computer neu.
Die moderne ext-Familie von Dateisystemen berücksichtigt bei der Zuweisung von Dateien das Gleichgewicht und die Kontinuität. In ext3 und ext4 wird der Ausgleich im Allgemeinen durch Anwenden von Journaleinträgen in der angegebenen Reihenfolge und in ext4 durch Vorbelegung von Dateisystem-Extents zur Erhöhung zusammenhängender Blöcke sichergestellt. Das Verfolgen von Fragmentierungsstufen unter 20% ist Ihre Zeit möglicherweise nicht wert, insbesondere wenn Ihr System wiederholt auf einige Dateien zugreift. Ich schlage vor, diese Taktiken zu befolgen, um die Lesegeschwindigkeit für ein einzelnes Plattensystem zu erhöhen:
RAM vergrößern: Dies vergrößert den Cache des Dateisystems
Erhöhen Sie die Blockgröße: Durch Verschieben von 1 KB auf 4 KB erhalten Sie eine bessere Leseleistung für Dateien, die sich Ihrer Blockgröße nähern oder größer sind
Wenn Sie pedantisch sind, können Sie große und kleine Dateien nach ihrer Blockgröße in Partitionen unterteilen. Dies ist möglicherweise nur dann sinnvoll, wenn Sie Fotos, Videos und Quellcode in separaten Verzeichnissen gespeichert haben
Erhöhen Sie die Vorausleseeinstellung mit dem Dienstprogramm hdparm und / oder im Laptop-Modus
Sichern und Wiederherstellen Ihres Dateisystems auf lineare Weise, z. B. mit tar
Wenn Sie über mehrere Festplatten verfügen und RAID-Striping und / oder LVM verwenden, müssen Sie andere Faktoren berücksichtigen, z. B. die Stripe-Größe.
Ja, es gibt einen bestimmten fsck
Aufruf (als root oder sudo):
$ fsck /dev/sdXY
Ersetzen Sie X und Y durch die richtigen Parameter für Ihren Fall (z /dev/sda1
. B. ).
NICHT AUF EINER MONTIERTEN TEILUNG LAUFEN! Dies kann Ihr Dateisystem ernsthaft beschädigen.
Weitere Informationen zu Linux und zur Defragmentierung finden Sie in meiner Antwort hier .
Wenn Sie fsck nicht speziell ausführen müssen, sondern nur die Fragmentierung Ihres Laufwerks überprüfen möchten, sollte das folgende Skript (von hier übernommen ) den Trick ausführen:
#!/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");
Sie können es dann in dem betreffenden Verzeichnis (oder Mount-Punkt) ausführen:
$ frag_check.pl $HOME/
1.32410691664555% non contiguous files, 1.05380668862427 average fragments.
Sie können ein Tool wie e2defrag verwenden, um diese Informationen abzurufen.
Beachten Sie, dass aufgrund der Beschaffenheit von Linux-Dateisystemen ein Defragmentieren normalerweise nicht erforderlich ist.
e4defrag -c
, aber es hat nicht funktioniert.
-c
Option als letztes Argument. Und ... "hat nicht funktioniert"? Was ist der Fehler, den Sie bekommen?