Wie lädt grub2 den Kernel von einem LVM-Volume?

9

Grub2 kann den Kernel auch dann laden, wenn /booter sich auf einem LVM-Volume befindet. Um diese Funktion nutzen zu können, muss insmod lvmim entsprechenden Grub-Eintrag hinzugefügt werden (das Modul kann sich auf der Grub-BIOS-Partition befinden, die sich nicht auf einem LVM-Volume befindet). Aber es erklärt mir nicht, wie grub den Kernel liest, da der Kernel geladen werden sollte, bevor etwas in ihn eingefügt werden kann.

Wie funktioniert es?

vehsakul
quelle

Antworten:

11

Der insmodBefehl in GRUB2 bezieht sich ausschließlich auf GRUB-Module und nicht auf den Kernel, den er lädt. Wenn Sie dies tun insmod lvm, laden Sie ein GRUB-Modul, damit es das LVM-Volume lesen kann.

Graeme
quelle
6

Es wurde bereits erwähnt, dass der Befehl grub2 insmod nicht mit dem Kernel zusammenhängt, sondern lediglich Module für grub unterstützt. Dies war möglicherweise eine schlechte Wahl des Schlüsselworts, da dies zu Verwechslungen mit Kernelmodulen führen kann, aber die beiden sind nicht miteinander verbunden.

Wie greift grub2 ohne Kernel auf LVM zu? LVM hat eine definierte Festplattenstruktur und enthält Metadaten. Alles, was eine unformatierte Festplatte lesen und die LVM2-Metadaten interpretieren kann, um ein Dateisystem zu finden, kann eine Datei abrufen, ohne einen Kernel zu benötigen. Sobald das lvm grub2-Modul das Dateisystem mit dem Kernel gefunden hat, wird der Kernel wie aus einem normalen Dateisystem geladen - von der Raw-Festplatte in den Speicher kopiert, unkomprimiert und ausgeführt.

Casey
quelle