
ハードウェア コントローラで動作する (SD カードから) Ubuntu イメージがあります。カードのサイズが 2 GB であるため、イメージ全体で 2 GB かかります。イメージは古いカーネル上に構築されています。マザーボードを交換する必要があります。古いマザーボードは使用できなくなり、新しい適切なマザーボードは古いカーネルと通信しません。そして最も重要なことは、(開発者を変更する際の混乱により) イメージのルート パスワードが取り返しのつかないほど失われていることです。つまり、内部からカーネルを文明的な方法で交換しても、残念ながら機能しません。質問: システムの外部で、ラップトップの既存のイメージを使用してカードを書き換えるだけで、他の部分を変更せずにカーネルを変更することは可能でしょうか。また、どうすればできますか。そうでない場合は、合理化されデバッグされたイメージ全体を再構築する必要がありますが、これは避けたいものです。
答え1
まず、作業コピーを使用するのではなく、バックアップ コピーを作成して、何かひどい問題が発生した場合に備えてそれを使用することを強調しておきます。
これはうまくいかないかもしれませんが、最善の策です。
カーネルは、最初は /boot 内のファイルに依存します。
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
新しいバージョンからこれらすべてのファイルが必要になります。当然、ほとんどのファイル名にはバージョン番号が含まれており、使用しているカーネルのバージョンによって異なります。
/lib/modules/ 内には、カーネル バージョンごとに 1 つのフォルダーのシリーズがあります。例:
4.19.4-1-default
このフォルダ内のすべてのモジュールをコピーする必要があります。
最後に、この新しいファイルを指すように grub または grub2 ファイルを変更する必要があります。
- SDカードをバックアップし、バックアップコピーを使用する
- 古いマザーボードが UEFI 非対応の場合は、新しいマザーボードで無効にしてください。そうしないと問題が発生します。
- 別のSDカード/HDDを入手する
- 使用していたディストリビューションの新しいバージョンをインストールします。
- /boot と /lib/modules/ を OS のバックアップ コピーの適切な場所にコピーします。存在する場合は、/usr/lib/bootloader もコピーする必要があります。
- 起動して何が起こるか見てみましょう。
おそらく、さらに互換性の問題が発生するでしょう。最大の危険は、あまりに先に進み、initd から systemd に移行するか、その他の大きな変更を行うことです。
使用していたディストリビューションのバージョンを確認し、最初は 1 バージョンだけ上にアップグレードすることをお勧めします。インストールに失敗した場合は、一度に 1 バージョンずつアップグレードできます。
起動可能なシステムがある場合は、apt-get などを使用して、適切な方法で完全なディストリビューションのアップグレードを実行することをお勧めします。