Was passiert, wenn ich "cat debian.iso> / dev / sdX" mache?

10

Ich erstelle einen Live-USB und verstehe nicht genau: Was passiert, wenn ich eine Datei (oder sogar ein Dateisystem) direkt auf einen Geräteknoten kopiere (im Gegensatz zu einem Dateisystem)?

Boris Burkov
quelle

Antworten:

16

Die Shell öffnet das Gerät /dev/sdX. Die gesamte Ausgabe des catBefehls, deren Inhalt letztendlich ist debian.iso, wird direkt auf dieses Gerät geschrieben.

Das Endergebnis ist, dass debian.isoByte für Byte an den Anfang der zugrunde liegenden Festplatte geschrieben wird /dev/sdX.

Tatsächlich lässt der Geräteknoten den Eindruck entstehen, dass sich der Inhalt Ihres Speichermediums auf niedriger Ebene wie eine einzelne Datei verhält. Sie schreiben in diese "Datei" und damit in das Speichermedium. Diese Philosophie ist als "alles ist eine Datei" bekannt und wird als eines der bestimmenden Merkmale eines Unix-Systems angesehen.

Jim Paris
quelle
9
Unterscheidet sich dieser Befehl von dd if=debian.iso of=/dev/sdX?
2
@htor, nicht wesentlich, ddbietet Ihnen jedoch mehr Kontrolle über die Blockgrößen, wobei die Standardeinstellung implementierungsabhängig ist (z. B. 1 oder 512 Byte). Mit können ddSie möglicherweise eine bessere Größe für Ihr Blockgerät auswählen, z. B. 4096 Byte.
mrb
Danke, Jim. Bedeutet das, dass ich durch Ausführen dieses Befehls MBR mit Partitionstabelle und FAT-Partition auf meinem Flash überschreibe und es irgendwo mit dem ISO-9660-Dateisystem mit seinen 2048-Byte-Sektoren und dem Bootloader fülle? Ich weiß nicht, wie es funktionieren soll, da die bootfähige El Torito-CD-Spezifikation verschiedene Aktionsmodi für dieses CD-Image zulässt - Diskettenemulation, Festplattenemulation und keine Emulation. Könnten Sie auch erklären, welchen Sinn es macht, dd zu sagen (wenn ich es stattdessen verwende), welche Größe von Blöcken es verwenden sollte, wenn die Blockgröße vom Dateisystem bestimmt wird (dh sie müssen 2048 Byte auf ISO sein)
Boris Burkov
2
@Bob Außer bei Bandlaufwerken beeinflusst die Blockgröße, an die Sie übergeben, dddie Leistung, nicht jedoch, welche Daten gelesen und geschrieben werden. Es gibt keine Beziehung zwischen der ddBlockgröße und der CD-Blockgröße oder der Dateisystemblockgröße. Ein paar Megabyte bieten normalerweise die beste Leistung, catkönnen jedoch schneller sein als dd.
Gilles 'SO - hör auf böse zu sein'
2
Wie wäre es mit dem Bootsektor? Wird / dev / sdX danach so normal booten wie das CD / DVD-Image?
Mathe