Wenn ich mir einige Quellen ansehe, denke ich, grub-bios-setupist es das, was für das Schreiben in den MBR verantwortlich ist, denn wenn ich die ersten 512 Bytes auf Null setze und dann erneut laufe grub-bios-setup, sehe ich, dass diese Bytes wieder zu dem zurückkehren, was sie waren, bevor ich sie auf Null gesetzt habe.
Leider verstehe ich den Code nicht gut genug, um zu verstehen, was geschrieben wird grub-bios-setup.
Ich hatte einige Probleme. Ich denke, ein Teil des Geschriebenen hat damit zu tun boot.img. Wenn ich bestimmte Bytes meines Bootsektors vergleiche und boot.imgsie gleich sind (beachten Sie, die Gesamtzahl der hier gelesenen Bytes ist 440).
Sie haben Ähnlichkeiten, sind aber nicht ganz dasselbe. Die ersten 104Bytes unterscheiden sich, und ich kann nicht verstehen, was diesen Unterschied verursacht.
Gibt es eine vergleichbare mbr.binDatei für Grub? Ist es boot.img? Ändert Grub dann einige dieser Bytes? Erzeugt Grub diese unterschiedlichen Bytes im laufenden Betrieb? Sind die von Grub generierten Bytes für jedes System spezifisch und jedes Mal eindeutig, wenn Grub sie schreibt?
Ich habe versucht, auf meinem System nachzuschauen, was es verwendet, aber ... Ich bin vor einiger Zeit zu EFI gewechselt.
Ignacio Vazquez-Abrams vor 6 Jahren
0
1 Antwort auf die Frage
1
Johan Myréen
Ja, boot.imgwird in die ersten 440 Bytes des MBR geschrieben. boot.imgenthält einen "BIOS-Parameterblock", der Daten enthält, die von dem System abhängen, auf dem er installiert ist. Diese Daten werden bei der Installation von Grub in das BPM geschrieben. Hier ist der Quellcode.
Übrigens, ich würde nicht viel Zeit mit GRUB verbringen. Dieser Code wird wahrscheinlich in ein paar Jahren nicht auf neuen PCs ausgeführt. Intel plant, den alten BIOS-Modus bis 2020 zu beseitigen.
Danke für diese Info! Wenn Sie sagen "Diese Daten werden bei der Installation von Grub in das BPM geschrieben", meinen Sie, dass die BPB-Daten zu dem Zeitpunkt abgeleitet / geschrieben werden, wenn Grub im MBR installiert wird? Wenn Sie so etwas wie "grub-install" ausführen, führt dies dazu, dass der systemspezifische BPB und der generische "boot.img" in diesen 440 Bytes im MBR zusammengefasst werden. Oder meinen Sie, dass die BPB geschrieben wird, wenn die Binärdateien / Pakete von Grub auf dem Hostsystem installiert sind?
Will Haley vor 6 Jahren
0
Und ich weiß, EFI ist die moderne / richtige Art, Dinge jetzt zu tun, aber ich wusste nicht, dass das alte BIOS eine gewisse Frist hatte. Gut zu wissen, dass es bis 2020 geht. Vielen Dank!
Will Haley vor 6 Jahren
0
Wenn Grub installiert ist, liest das Setup-Programm `boot.img` in den Speicher und pacthes es, bevor es als neuer MBR auf die Festplatte geschrieben wird. Die Daten stammen aus zwei verschiedenen Quellen: Der BPM und die Partitionstabelle werden von der Festplatte gelesen und einige werden schnell generiert, z. B. das Startlaufwerk (Offset 0x64) und der Kernel_sector (Offset 0x5c). Bei Bedarf werden sogar zwei Befehlsbytes in NOPs geändert. Der BPM ist nicht im MBR vorhanden, die entsprechenden Bytes werden jedoch trotzdem kopiert.
Johan Myréen vor 6 Jahren
0
Die Frist bis 2020 wurde von Intel Ende 2017 angekündigt, aber ich würde nicht den Atem anhalten. Auf der anderen Seite sehe ich das Dumping des BIOS langfristig als eine gute Sache, da die Koexistenz von BIOS und UEFI viel Verwirrung stiftet.
Johan Myréen vor 6 Jahren
0