Qubes OS - テンプレートカーネルのアップデート

Qubes OS - テンプレートカーネルのアップデート

公式のドキュメントに従ってDebianテンプレートでカーネルを更新しようとしていますが、Qubes OS何かが欠けているか、何か間違っているようです。

私はそれを使用していますgcc 6.3.0



キューブ文書:
Debian VMへのカーネルのインストール

DebianベースのVMでは、qubes-kernel-vm-supportパッケージをインストールする必要があります。このパッケージには、Qubes VMの起動に必要な追加のカーネルモジュールとinitramfsの追加エントリが含まれています(詳細については、テンプレートの実装を参照)。また、構成を作成するにはいくつかの GRUB ツールが必要です。注: dom0 が提供する実際の grub ブートローダは必要ありません。しかし、一つ持っていても悪くありません。

sudo apt-get update
sudo apt-get install qubes-kernel-vm-support grub2-common

次に、必要なカーネルをインストールします。デプロイカーネルパッケージ(linux-image-amd64パッケージ)を使用している場合は、initramfsとカーネルモジュールを自動的に処理する必要があります。そうでない場合、またはカーネルを手動でビルドする場合は、dkms と initramfs-tools を使用して次のようにします。

sudo dkms autoinstall -k <kernel-version> # replace this <kernel-version> with actual kernel version
sudo update-initramfs -u

カーネルをインストールしたら、GRUB構成を作成する必要があります。 VMの起動速度を上げるためにGRUB_TIMEOUTを下げるなど、/etc/default/grubでいくつかの設定を調整する必要があるかもしれません。その後、実際の構成を作成する必要があります。 Fedoraでは、update-grub2ツールを使用してこれを行うことができます。

sudo mkdir /boot/grub
sudo update-grub2

その後、仮想マシンをシャットダウンします。これで、pvgrub2 を VM カーネルとして設定でき、VM に設定されたカーネルが起動します。



Debian ドキュメント:
カーネルのコンパイルを恐れないでください。楽しく収益性があります。

Debian 方式でカーネルをコンパイルするには、fakeroot、kernel-package、linux-source-version など、いくつかのパッケージが必要です。

その後、私たちはあなたのコンピュータを自由に制御でき、ホームディレクトリにカーネルソースコードを抽出すると仮定します[22]。カーネルソースを解凍したいディレクトリにあることを確認し、tar xf /usr/src/linux-source-version.tar.xzを使用して解凍し、以前に作成したlinux-source-versionディレクトリに変更します。

これでカーネルを設定できます。 X11がインストール、構成、および実行中の場合はmake xconfigを実行し、そうでない場合はmake menuconfigを実行します(libncurses5-devをインストールする必要があります)。時間をかけてオンラインヘルプを読み、慎重に選択してください。不明な場合は、通常、不明なデバイスドライバ(イーサネットカード、SCSIコントローラなどのハードウェア周辺機器を管理するソフトウェア)を含めるのが最善です。注:特定のハードウェアに関連しない他のオプションがあり、理解できない場合は、デフォルトのままにしてください。 「ロード可能モジュールのサポート」から「カーネルモジュールローダー」を選択することを忘れないでください(デフォルトでは選択されていません)。含まれていない場合、Debian のインストールに問題が発生します。

ソースツリーをクリーンアップし、カーネルパッケージパラメータをリセットします。

make-kpkg clean

これでカーネルをコンパイルします。

fakeroot make-kpkg --initrd

コンパイルすると、他のソフトウェアパッケージと同様にカスタムカーネルをインストールできます。 rootとしてdpkg -i ../linux-image-version-subarchitecture.debを実行します。たとえば、System.mapは正しくインストールされ、現在の設定セットを含む/boot/config-3.16がインストールされます。新しいカーネルパッケージは、新しいカーネルを使用するようにブートローダを自動的に更新するのに十分スマートです。モジュールパッケージを作成した場合は、そのパッケージもインストールする必要があります。



Debian モード出力:

...
...
...
This is kernel package version 13.014+nmu1.
install -p -d -o root -g root  -m  755 /usr/src/linux-source-4.8/debian/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64/DEBIAN
sed -e 's/=V/4.8.15-rt10-11.pvops.qubes.x86_64/g'    -e 's/=IB//g' \
    -e 's/=ST/linux/g'  -e 's/=R//g' \
        -e 's/=KPV/13.014+nmu1/g'                       \
    -e 's/=K/vmlinuz/g'          \
    -e 's/=I/YES/g'     -e 's,=D,/boot,g'        \
    -e 's@=A@amd64@g'   \
    -e 's@=B@x86_64@g'     \
...
dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
                 character '_' not allowed
debian/ruleset/targets/image.mk:230: recipe for target 'debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64' failed
make: *** [debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64] Error 255



手動コンパイル:
私はDebianからダウンロードしてlinux-source-4.8解凍しました/usr/src

それから:

make defconf
make menuconf   # custom settings
make

上記のエラー:

dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
                 character '_' not allowed



この問題は解決しやすいと思いますが、カーネルを手動でコンパイルできる場合はどうすればよいですか?必須
make installですか、それとも直接使用するmake modules_install必要がありますか?dkms autoinstallこれに関する特別な規定はありません。



修正する:

Debianパッケージを直接インストールすると、linux-image-amd64コンソールが消えて仮想マシンが正しく動作しなくなったため、再起動してみましたが、シリアルコンソールに接続してください。インストール中に競合が発生し、インストールを
実行して完了しましたがコンピュータが起動しないという警告メッセージが表示されました。実際に更新して再起動しましたが、ルートをインストールできませんでした。dpkgdpkg --configure -ainitramfsGRUBinitramfs

ベストアンサー1

AFAIK Qubes-OS は VM 内部カーネルを使用して VM を起動しません。代わりに、Dom0にある独自のカーネルを使用してください。

おすすめ記事