Ich hätte schwören können, ich hätte so etwas in einigen hybriden ISO-Images gesehen (die Sorte, die für Linux-Distributionen verwendet wird, sodass sie ohne Nachbearbeitung auf eine CD-R gebrannt oder auf ein USB-Flash-Laufwerk geschrieben werden können); Ich habe jedoch nur ein paar geprüft und sie scheinen das nicht zu tun. Vielleicht erinnere ich mich nicht richtig, oder vielleicht habe ich die richtigen nicht überprüft. Ich sehe darüber auch nichts auf der isohybrid
Manpage - aber ich bin mir nicht sicher, ob dies zum Erstellen dieser Bilder am häufigsten verwendet wird. Vielleicht möchten Sie dieser Spur jedoch weiter folgen als ich ...
FWIW, ich bin der Autor von GPT fdisk. Es ist schon eine Weile her, seit ich den relevanten Code berühren musste, aber ein kurzer Überblick legt nahe, dass GPT fdisk dies tun sollteeine Platte lesen, bei der die primäre Partitionstabelle nicht bei LBA 2 beginnt; GPT fdisk unterstützt jedoch nicht das Ändern dieses Speicherorts. Ich kann nicht versprechen, dass die Tabelle wieder am ursprünglichen Speicherort gespeichert wird, selbst wenn eine solche Festplatte erfolgreich gelesen werden konnte. Möglicherweise können Sie sie hacken, um diese Tabelle zu Experimentierzwecken an anderer Stelle zu starten. In der Tat habe ich das nur versucht, aber es gibt eine Reihe von Stellen im Code, die hartcodierte Werte "1" oder "2" verwenden, um die LBA-Werte aufzufüllen, und ich habe sie nicht alle in meinem Anfang gefunden versuchen, also schrieb ich den Header in die Mitte der Partitionstabelle, was natürlich nicht schön war. Wenn Sie es versuchen wollen, schauen Sie sich die gpt.cc
Datei an. Beginnen Sie mit der Suche nach dem Ort partitionEntriesLBA
und der firstUsableLBA
Einstellung, aber einige der relevanten Konstanten befinden sich auch in Funktionsaufrufen.
Ich bezweifle, dass Sie den Ort des primären GPT-Headers ändern können. Der schützende MBR ist an sich nicht wirklich Teil der GPT-Datenstrukturen. Ihr Zweck besteht darin, die Festplatte als GPT-Platte zu identifizieren und zu verhindern, dass GPT-unbewusste Tools sich mit der Festplatte verbinden, und nicht, wo GPT-Datenstrukturen beginnen. Das StartingLBA
Feld dort ist vorhanden, weil es Teil der MBR-Datenstruktur ist, nicht weil GPT es für irgendetwas verwendet. Ich nehme an, es ist möglich, dass einige Tools den Startpunkt der MBR-Schutzpartition als Zeiger auf den primären Header verwenden, aber ich bezweifle, dass eine Mehrheit dies tun würde. Gewiss tut GPT fdisk nicht; es kodiert LBA 1 als Position des primären Headers.
Wenn Sie weitere Fragen dazu haben, möchten Sie vielleicht in der edk2-devel-Mailingliste posten. Es gibt viele EFI-Entwickler, und einige von ihnen kennen vielleicht Präzedenzfälle für das, was Sie versuchen, oder alternative Wege, um Ihr Ziel zu erreichen.