Was ist der Unterschied zwischen fsck und e2fsck?

30

Was ist der Unterschied zwischen den Linux Disk Error Checking Tools fsck und e2fsck?

Fred Hamilton
quelle

Antworten:

29

fsck ist nur der ursprüngliche Name. Wenn sie neue Dateisysteme herausbrachten, benötigten sie für jedes ein spezifisches Tool, efsck für ext, e2fsck für ext2, dosfsck, fsckvfat. Also haben sie fsck zum Frontend gemacht, das nur das passende Tool aufruft.

Hyperslug
quelle
Hmm, anscheinend können Sie das fsck "Front-End" für einige allgemeine Aufgaben verwenden, aber nicht für alles? Zum Beispiel wird die Option -c ( superuser.com/questions/20010/… ) in der e2fsck-Manpage, aber in der von fsck erwähnt.
Jonik
Gibt es ein GPT fsck?
Jonathan
@ Jonathan fsck überprüft Dateisysteme, während GPT die Partitionstabelle selbst ist. Wahrscheinlich gibt es ein Tool, mit dem man das überprüfen kann, aber mir fällt nur das Festplatten-Dienstprogramm des Mac (oder die Befehlszeile diskutil) ein. Der gptBefehl verfügt zumindest auf dem Mac über die Option "Aus Sicherungstabelle wiederherstellen".
SilverWolf - Wiedereinsetzung von Monica
15

fsck ist ein Wrapper für die dateisystemspezifische Toolfamilie fsck. * . Sie können mit einer Einschränkung austauschbar verwendet werden (aus der fsck-Manpage):

Optionen, die von fsck nicht verstanden werden, werden an den dateisystemspezifischen Checker übergeben. Diese Argumente dürfen keine Argumente annehmen, da es für fsck keine Möglichkeit gibt, richtig zu erraten, welche Argumente Optionen annehmen und welche nicht.

Optionen und Argumente, die auf - folgen, werden als dateisystemspezifische Optionen behandelt, die an das dateisystemspezifische Überprüfungsprogramm übergeben werden.

Bitte beachten Sie, dass fsck nicht dafür ausgelegt ist, beliebig komplizierte Optionen an dateisystemspezifische Prüfer weiterzugeben. Wenn Sie etwas kompliziertes tun, führen Sie einfach den dateisystemspezifischen Checker direkt aus. Wenn Sie fsck mit einigen schrecklich komplizierten Optionen und Argumenten bestanden haben und es nicht das tut, was Sie erwarten, machen Sie sich nicht die Mühe, es als Fehler zu melden. Sie tun mit ziemlicher Sicherheit etwas, das Sie mit fsck nicht tun sollten.

Fsck erledigt jedoch die meisten normalen Operationen auf einem Dateisystem.

Nagul
quelle
5

Auf meinem System habe ich:

  • fsck
  • fsck.ext2
  • fsck.ext3
  • fsck.ext4
  • e2fsck
  • ... (weitere fsck.*Tools für andere, nicht ext. Dateisysteme)

Nun ist keine dieser Verknüpfungen symbolisch, aber e2fsckund die fsck.ext2/3/4Tools haben alle den gleichen Inode, sodass es sich tatsächlich um dieselbe Datei handelt. (Es ist möglich, dass diese Binärdatei ihren eigenen Namen abfragt, wenn sie ausgeführt wird, und sich für den Namen, mit dem sie aufgerufen wird, anders verhält, aber ich bezweifle, dass dies der Fall ist.)

Wir haben also nur zwei Tools:

  • fsck
  • e2fsck

Und wie bereits gesagt, fsckhandelt es sich lediglich um ein Front-End, das das entsprechende Tool für das betreffende Dateisystem aufruft, in diesem Fall e2fsckfür ein Dateisystem der ext-Familie.

Ich nehme an, der Grund für die verschiedenen fsck.ext2/3/4Dateien ist, dass 1. es einfach ist, Skripte zu schreiben, die alle Dateisystemtypen generisch verarbeiten können (sie können den Namen des fsck-Tools trivial vom Dateisystemtyp ableiten) und 2. Flexibilität, so dass es trivial ist das e2fsck bei Bedarf in zwei oder mehr unabhängige Tools aufzuteilen.

Paul Ruane
quelle
Vielen Dank für die längere Erklärung, da ich nach dem Lesen von @hyperslug answer bereits einen Herzinfarkt gespürt habe :-) Ich habe ein ext3-Dateisystem und habe e2fsck ausgeführt.
Greenoldman
Nun ist keine dieser Verknüpfungen ein Symbol, aber e2fsck und die fsck.ext2 / 3/4-Tools teilen sich alle den gleichen Inode und sind daher tatsächlich die gleiche Datei. (Es ist möglich, dass diese Binärdatei ihren eigenen Namen abfragt, wenn sie ausgeführt wird, und sich für den Namen, mit dem sie aufgerufen wird, anders verhält, aber ich bezweifle, dass dies der Fall ist.) - Warum nicht - Dies ist eine besonders * nix-artige Methode von Dinge zu tun und könnte tatsächlich der Fall sein!
SlySven
Diese alternativen Namen sind tatsächlich Beispiele für die weniger gefleckte harte Verbindung (die meisten Leute kennen symbolische Verbindungen, aber ihr härterer Bruder verwendet sie auch, obwohl sie auf dasselbe Gerät beschränkt sind .)
SlySven,