Wenn ich fsck
in der Vergangenheit ausgeführt habe, habe ich es immer auf einer meiner Meinung nach Dateisystempartition ausgeführt, d. H. fsck -yf /dev/sdaN
Ein Freund von mir ist kürzlich fsck
auf seiner brandneuen Festplatte gelaufen und hat eine Reihe von Fehlern bei der Verwendung gemeldet fsck -yf /dev/sda
. Ich bin gespannt, was ist der Unterschied zwischen der Ausführung fsck
auf der gesamten Festplatte ( /dev/sda
) und der Ausführung auf nur einer Partition ( /dev/sda1
)?
8
/dev/sda
es wirklich nicht verwendet, da sich mein Freund in einer Art Wiederherstellungs-Shell befand, die sich selbst zur Verfügung stellte, bevor das Laufwerk montiert wurde.Antworten:
Wenn fsck ausgeführt wird, sollte zuerst versucht werden, den Superblock eines Dateisystems zu finden, um die Struktur des Dateisystems zu durchlaufen und ihn zu validieren. Da das
/dev/sda
Gerät dem gesamten Laufwerk entspricht, enthält der erste Teil der Festplatte wahrscheinlich die Partitionstabelle oder den Master Boot Record undfsck
kann den Superblock für ein unterstütztes Dateisystem nicht finden (es sei denn, Sie erhalten etwas, das irgendwie mit einer magischen Zahl für a übereinstimmt bekanntes Dateisystem). Ich würde erwarten, dass es irrtümlich beendet wird oder eine ungenaue Ausgabe liefert (wie Ihr Freund erfahren hat). Dieses Experiment habe ich jedoch noch nicht selbst durchgeführt.quelle
Es funktioniert nicht, wenn das Dateisystem in einer Partition installiert wurde (z
sda1
. B. ).fsck
und seine Brüder sind Werkzeuge zum Durchführen von Wartungsarbeiten auf Dateisysteme (daher der Name: f ile s ystem c chec k ), nicht von Blockgeräten.Es ist theoretisch möglich, ein Dateisystem über so etwas direkt auf ein Blockgerät zu stellen
mke2fs -j /dev/sda
, aber das ist eine sehr, sehr schlechte Praxis. Aber wenn Sie dies tun, würde das Dateisystem dann direkt weiterlebensda
, und dannfsck
würden Sie tatsächlich nurfsck
auf das Gerät zeigen. Tu das nicht . Partitionstabellen gibt es nicht ohne Grund, und es geht nicht nur darum, einen nominellen Platz für ein Inhaltsverzeichnis einzunehmen.quelle
Wenn das Gerät ein unterstütztes Dateisystem enthält, sollte fsck funktionieren. Das Gerät kann eine ganze Festplatte wie / dev / sda oder eine Partition oder eine Flopy-Disk (wie erinnert sich jemand daran?) Wie / dev / fd0 oder sogar eine Datei auf einer anderen Festplatte wie ~ / hdimage.img sein . Bei Diskettenlaufwerken wird normalerweise das gesamte Laufwerk verwendet, sodass kein Grund zur Partitionierung besteht. Daher wird das Dateisystem unter / dev / fd0 erstellt. Herkömmlicherweise werden Festplatten in Partitionen unterteilt und Dateisysteme in die Partitionen eingebaut. Wenn Sie jedoch das gesamte Laufwerk als eine Partition verwenden möchten und nicht von dort booten müssen, können Sie ein Dateisystem direkt auf dem Gerät (mke2fs / dev / sdb) erstellen, es bereitstellen und viele Dateien darauf kopieren. dann sollte fsck / dev / sdb funktionieren. Dies wurde als "Superfloppy" -Konfiguration bezeichnet. Ich denke, die alten iomega 100MB-Festplatten wurden normalerweise auch so formatiert. Eine Festplatte muss nicht einmal über ein Dateisystem verfügen - sie kann eine einzelne Datei enthalten. Ich mache oft TAR-Dateien in der richtigen Größe, um auf eine DVD zu passen, brenne sie auf die Festplatte. Die Festplatte kann dann nicht gemountet werden, aber tar -xvf some / where / myfile / dev / sr0 extrahiert myfile von der Festplatte.
quelle