Linux Kernel von außerhalb des Systems ersetzen

387
zimopisec

Es gibt ein bestimmtes Ubuntu-Image, das (von der SD-Karte) mit einem Hardware-Controller funktioniert. Das gesamte Bild benötigt 2 Gigabyte. Dies ist die Kartengröße. Das Image basiert auf dem alten Kernel. Wir müssen das Motherboard ersetzen, da das alte Motherboard nicht mehr verfügbar ist und neue Komponenten nicht mit dem alten Kernel sprechen. Und vor allem, unwiderruflich (aufgrund eines gewissen Chaos beim Ändern von Entwicklern) geht das Root-Passwort aus dem Image verloren - das heißt, den Kernel auf zivilisierte Weise zu ersetzen, von innen aus funktioniert dies leider nicht. Die Frage: ist es möglich - und wie kann ich den Kernel wechseln, ohne den Rest außerhalb des Systems zu ändern, indem ich einfach die Karte mit dem vorhandenen Bild von meinem Laptop umschreibe? Wenn nicht, muss das gesamte optimierte und debuggene Image neu erstellt werden, was ich gerne vermeiden möchte.

0

1 Antwort auf die Frage

0
cybernard

Erstens kann ich nicht genug betonen, Ihre Arbeitskopie nicht zu verwenden, sondern eine Sicherungskopie zu erstellen und zu verwenden, wenn etwas schief geht.

Dies kann nicht funktionieren, aber es ist der beste Schuss.

Der Kernel ist von den Dateien in / boot abhängig, um mit zu beginnen.

System.map-4.19.1-1-default .vmlinuz-4.19.4-1-default.hmac config-4.19.4-1-default initrd-4.19.1-1-default initrd is symlinked to above symvers-4.19.1-1-default.gz sysctl.conf-4.19.1-1-default vmlinux-4.19.1-1-default.gz vmlinuz symlink to below vmlinuz-4.19.4-1-default 

Sie benötigen alle diese Dateien in der neuen Version. Offensichtlich enthalten die meisten Dateinamen die Versionsnummer und hängen von der verwendeten Kernel-Version ab.

In / lib / modules / befindet sich eine Reihe von Ordnern für jede Kernelversion. Zum Beispiel:

4.19.4-1-default 

Alle Module in diesem Ordner müssten kopiert werden.

Schließlich müssen Ihre Grub- oder Grub2-Dateien geändert werden, um auf diese neuen Dateien zu verweisen.

  1. Sichern Sie Ihre SD-Karte und verwenden Sie die Sicherungskopie
  2. Wenn es sich bei Ihrem alten Motherboard nicht um UEFI handelt, deaktivieren Sie es auf dem neuen Motherboard, oder es treten Probleme auf.
  3. Besorgen Sie sich eine andere SD-Karte / HDD
  4. Installieren Sie eine neuere Version Ihrer verwendeten Distribution.
  5. Kopieren Sie / boot und / lib / modules / an die entsprechenden Stellen der Sicherungskopie Ihres Betriebssystems. Wenn vorhanden, sollte / usr / lib / bootloader auch kopiert werden.
  6. Booten und sehen, was passiert.

Es wird wahrscheinlich weitere Kompatibilitätsprobleme geben. Die größte Gefahr besteht darin, weit voranzukommen und von initd zu systemd oder einer anderen großen Änderung zu wechseln.

Ich würde empfehlen, herauszufinden, welche Version der Distribution Sie verwendet haben, und nur eine Version höher zu setzen. Wenn die Installation fehlschlägt, können Sie jeweils eine Version vorrücken.

Wenn Sie ein bootfähiges System haben, schlage ich vor, apt-get oder etc zu verwenden, um ein vollständiges Distro-Upgrade im richtigen Zustand durchzuführen.