Es scheint, ich bin nicht der einzig man bemerken dieses Verhalten. Dies scheint vor allem in einigen arm
Umgebungen ein Problem zu sein, in denen ein Bootloader auf der Festplatte Probleme verursachen kann.
Das Problem ist, dass parted sich selbst (und unbemerkt) den Code dorthin legt, und daher denkt das eingebettete System, dass es einen gültigen Bootloader-Code gibt und glücklich hängt.
...und...
Gibt es eine Option für parted, um das Hinzufügen dieses Codes zu vermeiden (und sich wie fdisk verhalten)?
Es scheint, dass dieses Verhalten durch parted
ist absichtlich . Als Benutzer auf dem parted
Mailing-Fenster fragt:
Das Problem ist, dass parted von Anfang an den folgenden Code generiert:
...
Was ist der Zweck dieses Codes? Warum wurde dort hingestellt?
Und die Antwort scheint zu sein:
Dies ist der MBR-Startcode, der normalerweise zum Starten eines BIOS-Systems verwendet wird. Wenn es auf einem Nicht-x86-System Probleme verursacht, sollten Sie es auf Null setzen (oder den System-Bootloader nach der Partitionierung schreiben).
Es scheint, dass mklabel
ein generischer Bootloader auf die Festplatte geschrieben werden soll. Zumindest wenn ein Label von msdos
verwendet wird. Ich denke, das macht Sinn, aber aus fdisk
und syslinux
kommt es für einen Partitionsmanager etwas ungewöhnlich vor, Bootloader-Sektoren zu ändern.
Es scheint, als parted
sollten diese Sektoren nicht überschrieben werden, wenn Daten ungleich Null vorhanden sind.
Nein, es wird nur dann nicht geschrieben, wenn bereits etwas vorhanden ist (z. B. nicht 0x00). Wenn Sie also das SDK dazu bringen könnten, zuerst seinen Bootloader zu schreiben, dann partitionieren Sie es, und parted lässt es unangetastet.
Dies ist jedoch nicht das Verhalten, das ich sehe. Wenn ich Müll schreibe /dev/urandom
, dann laufen parted mklabel
meine nicht-null Daten definitiv.
Wenn ich die mbr.s
Datei libparted
aus dem getrennten Repo zusammenstelle, kann ich sehen, woher diese Bytes stammen.
$ as86 -b /dev/stdout mbr.s | hexdump -e '16/1 "%02x " "\n"' fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b 4c 02 cd 13 ea 00 7c 00 00 eb fe
Das ist genau die Bytesequenz, parted
die auf meiner Festplatte zu erzeugen scheint.