it-swarm.com.de

Wenn ich ein bootfähiges USB-Laufwerk auf ein anderes USB-Laufwerk kopiere, wird dann ein doppeltes bootfähiges Laufwerk erstellt?

Ich dachte, es ist eine dumme Frage, aber eine Suche mit Google scheint anzuzeigen dass es nicht einmal möglich ist, Daten auf einem bootfähigen Laufwerk auf einen anderen USB-Stick zu kopieren/einzufügen? Aber selbst wenn wir es kopieren könnten, warum sollte es dann nicht funktionieren? (Das erstellt ein Duplikat des bootfähigen Laufwerks.)

36
zar

Durch einfaches Kopieren der Dateien wird kein bootfähiges Laufwerk erstellt. Es sind nicht nur die Dateien auf einem USB-Stick, die es bootfähig machen, sondern auch die Partitionstabelle Konfiguration, die Metadaten über die Organisation des Laufwerksinhalts, die einem PC mitteilen, ob es bootfähig ist , und ob es MBR oder GPT ist .

Wie unter cyberciti.biz angegeben:

Jede Festplatte und Partition enthält eine Art Signatur und Metadaten/magische Zeichenfolgen. Die Metadaten, die vom Betriebssystem zum Konfigurieren von Datenträgern oder zum Anhängen von Treibern und Bereitstellen von Datenträgern auf Ihrem System verwendet werden.

Sie können das Flash-Laufwerk jedoch mit einer Reihe von Tools klonen, z. B. mit dd , EaseUS Todo Backup und dem hervorragenden Open Source-Programm Clonezilla und Rufus . (Danke an Alex für die Erinnerungen an dd und Rufus).

Es gibt sogar elektronische Geräte, die Flash-Laufwerke automatisch replizieren .

57
K7AAY

Beim Kopieren werden nur Dateien in formatierten Partitionen kopiert. Sie werden nicht in der Lage sein, spezielle Dinge zu tun, die für den Bootprozess notwendig sind, wie das Setzen der Boot-Flags, das Schreiben des Bootloaders oder manchmal sogar das Kopieren normaler Dateien an die richtige Stelle (read: sector) in der Partition und das Setzen der Dateiattribute/Berechtigungen. Sofern Sie nicht das Glück haben, diese Dinge zur Verfügung zu haben, müssen Sie aufgrund einer vorherigen Erstellung der Bootdiskette, eines Formatierungswerkzeugs, das den Bootloader in den MBR schreibt, usw. weitere Schritte ausführen, um die Diskette bootfähig zu machen


Insbesondere beim Booten im BIOS-Modus sucht das BIOS nach dem ersten Sektor (MBR), um festzustellen, ob eine gültige Boot-Signatur 0xAA55 vorhanden ist. Wenn ja, wird dieser Sektor geladen und die Steuerung an den Bootloader im MBR übertragen. Der MBR beschreibt die Partitionskonfiguration, daher kann nicht innerhalb der Partition liegen und istnicht das, was Sie mit normalen Tools kopieren können.

Da der MBR zu klein ist, um nützlich zu sein, teilen die meisten modernen Bootloader den Bootvorgang in mehrere Stufen auf, wobei der Bootcode im MBR die nächste Stufe lädt. Die weiteren Intra-Stufen werden wiederum häufig inBereiche außerhalb der Partitioneneingefügt. Einige mögen es in das EBR setzen, aber Grub legt normalerweise seine zweite Stufe in den leeren Bereich zwischen der ersten Partition und dem MBR, der als Post-MBR-Lücke bezeichnet wird. Deshalb, wenn man die Partitionen nicht richtig ausrichtet, gibt es keinen Platz für Grub, um seinen Boot-Code zu setzen, was zu Einbettungsfehler führt.

Viele Bootloader wie LILO oder alte Windows/DOS-Bootloader enthalten auch Hardcode Informationen im MBR, wie die Position der nächsten Stufe oder der Systemdateien. Sie arbeiten nicht mit dem Lesen der Partitionsdaten, sondern mit dem Lesen eines hartcodierten Sektors, da es zu viel Code erfordert, um das Dateisystem zu analysieren, das nur sehr schwer in winzige Bereiche wie den MBR oder die Lücke nach dem MBR gequetscht werden kann. Sogar grub unterstützt eine solche harte Codierung . Das bedeutet, dass sich einige Systemdateien Sektor für Sektor am genauen Speicherort befinden müssen, was Sie mit einer normalen Kopie nicht erreichen können. Dies ist der Grund, warum beim Ausführen des Windows-Defragmentierungsprogramms oder beim Verkleinern von Dateisystemen "nicht verschiebbare Systemdateien"angezeigt wird, was manchmal nicht richtig ist, da Windows nur zu ängstlich ist, diese Dateien zu verschieben, obwohl sie neueren Datums sind Lader sind viel schlauer und kümmern sich nicht um solche Dinge.

Und schließlich müssen Sie auch die Boot-Partition als aktiv festlegen , damit der Bootloader weiß, was gebootet werden soll. Dies muss durch ein Partitionierungswerkzeug oder manuelles Hex-Editieren erfolgen, da es sich auch außerhalb des Partitionsbereichs befindet.


In UEFI sind die Dinge viel einfacher. Es kennt FAT-Dateisysteme (und noch mehr Dateisysteme bei nicht standardmäßigen Implementierungen). Daher werden Startdateien in der EFI-Systempartition A.K.A ESP gespeichert. Die UEFI lädt die * .efi-Anwendungen in das ESP, das dann die Betriebssysteme lädt.

Die UEFI-Firmware unterstützt das Booten von Wechseldatenträgern wie USB-Sticks. Zu diesem Zweck muss ein Wechseldatenträger mit einem FAT12-, FAT16- oder FAT32-Dateisystem formatiert werden, während ein Bootloader gemäß der standardmäßigen ESP -Dateihierarchie gespeichert werden muss oder indem ein vollständiger Pfad von angegeben wird einen Bootloader zum Bootmanager des Systems.

Im Grunde müssen Sie nur die * .efi-Datei (en) in das ESP kopieren und die Systemdateien in den richtigen Ordner legen. Es gibt jedoch immer noch ein kleines Problem, da die FAT-Partition, die die * .efi-Datei enthält, in der MBR- oder GPT-Tabelle als ESP markiert sein muss außerhalb der Partitionen, was nicht möglich ist durch Kopieren wie oben. Insbesondere muss der Partitionstyp von 0Ch/0Bh/whatever zu EFh in MBR und zu C12A7328-F81F-11D2-BA4B-00A0C93EC93B in GPT geändert werden, da ESP ist Nicht FAT12/16/32, sondern ein eigenständiges Dateisystem, das auf der FAT-Dateisystemfamilie basiert


Und es gibt noch viele andere Partitionierungsschemata wie BSD Disk Label oder APM, die zum Booten anders modifiziert werden müssen. Oder die USB-Sticks wurden formatiert ohne Partitionstabelle (AFAIK Windows führt dies standardmäßig aus), wodurch die Bootfähigkeit unterschiedlich ist. Es gilt jedoch das gleiche Limit: Sie müssen nicht partitionierte Bereiche ändern

21
phuclv

Üblicherweise erforderte der BIOS-Start eine spezielle unsichtbare Markierung. Hier sind ein paar Beispiele :

  • Wenn MBR-partitioniert ("Festplatte"), dann innerhalb der Partitionstabelle
  • Wenn Diskette/Super-Diskette ("Zip-Laufwerk"), im Grunde das gesamte Laufwerk ohne Partitionstabelle formatiert, dann innerhalb der ersten paar Bytes
  • Wenn CD, dann El Torito

In diesen Fällen können Sie Dateien nicht einfach kopieren. Das resultierende Laufwerk kann nicht mehr gestartet werden, da diese speziellen Markierungen fehlen.

Allerdings ist der UEFI-Start etwas Besonderes, schlauer und behebt speziell diese Probleme. Wie immer empfehle ich, diesen Blog-Beitrag für eine vereinfachte Einführung in UEFI zu lesen. Beachten Sie insbesondere den Fallback-Boot-Abschnitt. Dies wird auch etwas ausführlicher besprochen hier .

Alles, was Sie dazu benötigen, ist eine Datei in einem bestimmten Pfad in einer Partition, die von der Firmware durchsucht wird. Für eine optimale Verträglichkeit1Ja, dies sollte eine FAT32-formatierte Partition sein, die als EFI-Systempartition auf einer GPT-partitionierten Festplatte gekennzeichnet ist. Die meisten Firmware-Versionen durchsuchen jedoch auch (einzelne) Partitionen auf MBR-partitionierten und nicht-partitionierten (Superfloppy) Festplatten.

Dies bedeutet, dass alles, was Sie für den UEFI-Start wirklich benötigen, ein FAT32 ist1-formatierte Einzelpartition mit einem Fallback-Starteintrag. Auf einer x86_64-Architektur bedeutet dies, dass Sie nur eine \EFI\BOOT\BOOTx64.EFI-Datei benötigen. Sie können einfach von einem Flash-Laufwerk auf ein anderes kopieren, einschließlich dieser Datei, und alles sollte funktionieren.


1 FAT32 und GPT sind standardmäßig erforderlich. MBR und Superfloppy sind nicht AFAIK, aber die Unterstützung für sie ist bei Desktop-Hardware ziemlich universell. Laptop ist etwas esoterischer; Tablets sind ein Kinderspiel, und Mac EFI ist einzigartig.

2 Der UEFI-Standard erfordert FAT32-Unterstützung. Einige Firmware unterstützen möglicherweise auch NTFS (obwohl dies alles andere als garantiert ist), und Sie können tatsächlich einen NTFS-Treiber in einen FAT32-ESP einbetten.

3
Bob

Es kommt darauf an, was Sie mit "kopieren" meinen.

Kopieren und Einfügen in die GUI Ihres Betriebssystems? Nein, das funktioniert nicht - einige Dateien, die ein bootfähiger USB-Stick benötigt, werden als "versteckt"/unsichtbar betrachtet und nicht kopiert.

Es gibt Kopiertypen, die funktionieren . Dies wird oft als "Imaging" eines neuen USB bezeichnet, um vom "Kopieren" seines Inhalts zu unterscheiden. Die gebräuchlichste Methode hierfür ist ein Befehlszeilentool. Bei Bedarf stehen jedoch grafische Optionen zur Verfügung.

Das sollte Hintergrund genug sein, um Ihre Suche auf Kurs zu bringen!

0
Sapphon