Ich habe kürzlich entdeckt, dass ich einen bootfähigen USB-Stick aus einer ISO-Datei erstellen kann, indem ich einfach cat
(oder dd
) benutze .
Ich kann keine Informationen darüber finden, wie das funktioniert. Warum sollte
cat my.iso > /dev/sdb && sync
Nehmen Sie diese Datei und schreiben Sie alle darin enthaltenen Dateien im bootfähigen Format auf ein Gerät?
cat
anstelle von zu verwenden,dd
wenn Sie liveUSBs machenAntworten:
Eine ISO-Datei ist ein vollständiges, formatiertes Dateisystem-Image. Alles
cat
oderdd
nichts ist eine bitweise Kopie dieses Dateisystem-Images auf Ihr Zielmedium.Hinter den Kulissen spielt sich keine Magie ab. Die Vorbereitung des ISO-Dateisystems erfolgte im Voraus (häufig mit einem speziellen Tool). Alles was Sie
cat
tun müssen, ist diese Sammlung von Bytes herauszuschreiben. Es interpretiert das.iso
überhaupt nicht und versteht auch nicht, dass es versucht, überhaupt ein bootfähiges Wechselmedium zu erstellen.Der Kernel und der Gerätetreiber müssen ordnungsgemäß unterstützt werden, damit das
write
s auf diesem Medium funktioniert. Dort geht ein bisschen "Magie" vor sich, da beschreibbare optische Medien nicht genau so funktionieren wie herkömmliche Festplatten. Diese Magie besteht jedoch nicht darin, den Inhalt der ISO-Datei zu interpretieren.Sie können die
.iso
Datei direkt einhängen, ohne sie zu brennen, indem Sie einen Loop-Mount verwenden (falls auf Ihrem Betriebssystem so etwas verfügbar ist). Auf ähnliche Weise können Sie eine Datei erstellen, die beispielsweise einext4
Dateisystem enthält, und Sie können diescat
auf einer Partition tun.quelle
Dies funktioniert, weil das ISO-Image mit verarbeitet wurde
isohybrid
, wodurch ein normaler Syslinux-Bootloader in das ISO-Image installiert wird. Dies ist möglich, weil iso9660 normalerweise nicht die ersten paar Sektoren des Images verwendet, sodass ein mehr oder weniger normaler Festplatten-Bootloader dort platziert werden kann. Beim Brennen auf eine optische Platte wird diese ignoriert und das BIOS startet die Platte mit der herkömmlichen el torito-CD-ROM-Startmethode. Wenn das Image auf einem Flash-Laufwerk abgelegt wird, wird der Syslinux-Bootsektor geladen.quelle