目次

Native PC 用 DietPi を UEFI セキュアブートの KVM で動かす

Fedora に KVM をインストール

仮想化支援機構(Intel-VT、AMD-V)の確認

$ grep -oE ' (svm|vmx) ' /proc/cpuinfo 

vmx
vmx
vmx
vmx
vmx
vmx
vmx
vmx

qemu-kvm のインストール

$ sudo dnf install qemu-kvm libvirt virt-install virt-manager virt-viewer bridge-utils

メタデータの期限切れの最終確認: 1:01:17 時間前の 2022年08月29日 14時41分14秒 に実施しました。
パッケージ qemu-kvm-2:6.2.0-14.fc36.x86_64 は既にインストールされています。
依存関係が解決しました。
==============================================================================================================
 パッケージ                               アーキテクチャー バージョン                 リポジトリー      サイズ
==============================================================================================================
インストール:
 bridge-utils                             x86_64           1.7.1-4.fc36               fedora             35 k
 libvirt                                  x86_64           8.1.0-2.fc36               fedora             12 k
 virt-install                             noarch           4.0.0-1.fc36               fedora             40 k
 virt-manager                             noarch           4.0.0-1.fc36               fedora            530 k
 virt-viewer                              x86_64           11.0-2.fc36                fedora            321 k
依存関係のインストール:
 kde-filesystem                           x86_64           4-67.fc36                  fedora             43 k
 kf5-filesystem                           x86_64           5.97.0-2.fc36              updates            11 k
 libburn                                  x86_64           1.5.4-4.fc36               fedora            173 k
 libgovirt                                x86_64           0.3.8-3.fc36               fedora             86 k
 libisoburn                               x86_64           1.5.4-4.fc36               fedora            413 k
 libisofs                                 x86_64           1.5.4-3.fc36               fedora            225 k
 libvirt-client                           x86_64           8.1.0-2.fc36               fedora            383 k
 libvirt-daemon-config-nwfilter           x86_64           8.1.0-2.fc36               fedora             20 k
 libvirt-daemon-driver-libxl              x86_64           8.1.0-2.fc36               fedora            264 k
 libvirt-daemon-driver-lxc                x86_64           8.1.0-2.fc36               fedora            276 k
 libvirt-daemon-driver-vbox               x86_64           8.1.0-2.fc36               fedora            242 k
 python3-libvirt                          x86_64           8.0.0-2.fc36               fedora            318 k
 virt-manager-common                      noarch           4.0.0-1.fc36               fedora            1.0 M
 xorriso                                  x86_64           1.5.4-4.fc36               fedora            315 k

トランザクションの概要
==============================================================================================================
インストール  19 パッケージ

ダウンロードサイズの合計: 4.6 M
インストール後のサイズ: 17 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/19): kde-filesystem-4-67.fc36.x86_64.rpm                                   182 kB/s |  43 kB     00:00    
(2/19): bridge-utils-1.7.1-4.fc36.x86_64.rpm                                  128 kB/s |  35 kB     00:00    
(3/19): libburn-1.5.4-4.fc36.x86_64.rpm                                       479 kB/s | 173 kB     00:00    
(4/19): libgovirt-0.3.8-3.fc36.x86_64.rpm                                     558 kB/s |  86 kB     00:00    
(5/19): libvirt-8.1.0-2.fc36.x86_64.rpm                                       108 kB/s |  12 kB     00:00    
(6/19): libisofs-1.5.4-3.fc36.x86_64.rpm                                      1.2 MB/s | 225 kB     00:00    
(7/19): libisoburn-1.5.4-4.fc36.x86_64.rpm                                    1.2 MB/s | 413 kB     00:00    
(8/19): libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64.rpm                202 kB/s |  20 kB     00:00    
(9/19): libvirt-client-8.1.0-2.fc36.x86_64.rpm                                1.4 MB/s | 383 kB     00:00    
(10/19): libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64.rpm                    1.4 MB/s | 276 kB     00:00    
(11/19): libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64.rpm                  956 kB/s | 264 kB     00:00    
(12/19): libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64.rpm                   1.4 MB/s | 242 kB     00:00    
(13/19): virt-install-4.0.0-1.fc36.noarch.rpm                                 280 kB/s |  40 kB     00:00    
(14/19): python3-libvirt-8.0.0-2.fc36.x86_64.rpm                              1.1 MB/s | 318 kB     00:00    
(15/19): virt-manager-4.0.0-1.fc36.noarch.rpm                                 870 kB/s | 530 kB     00:00    
(16/19): virt-viewer-11.0-2.fc36.x86_64.rpm                                   537 kB/s | 321 kB     00:00    
(17/19): virt-manager-common-4.0.0-1.fc36.noarch.rpm                          1.3 MB/s | 1.0 MB     00:00    
(18/19): xorriso-1.5.4-4.fc36.x86_64.rpm                                      1.0 MB/s | 315 kB     00:00    
(19/19): kf5-filesystem-5.97.0-2.fc36.x86_64.rpm                              6.9 kB/s |  11 kB     00:01    
--------------------------------------------------------------------------------------------------------------
合計                                                                          1.0 MB/s | 4.6 MB     00:04     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                      1/1 
  インストール中   : libvirt-client-8.1.0-2.fc36.x86_64                                                  1/19 
  インストール中   : kf5-filesystem-5.97.0-2.fc36.x86_64                                                 2/19 
  インストール中   : python3-libvirt-8.0.0-2.fc36.x86_64                                                 3/19 
  scriptletの実行中: libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64                                      4/19 
  インストール中   : libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64                                      4/19 
  scriptletの実行中: libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64                                      4/19 
  scriptletの実行中: libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64                                       5/19 
  インストール中   : libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64                                       5/19 
  scriptletの実行中: libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64                                       5/19 
Created symlink /etc/systemd/system/multi-user.target.wants/virtlxcd.service → /usr/lib/systemd/system/virtlxcd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlxcd.socket → /usr/lib/systemd/system/virtlxcd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlxcd-ro.socket → /usr/lib/systemd/system/virtlxcd-ro.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlxcd-admin.socket → /usr/lib/systemd/system/virtlxcd-admin.socket.

  scriptletの実行中: libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64                                     6/19 
  インストール中   : libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64                                     6/19 
  scriptletの実行中: libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64                                     6/19 
Created symlink /etc/systemd/system/multi-user.target.wants/virtxend.service → /usr/lib/systemd/system/virtxend.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtxend.socket → /usr/lib/systemd/system/virtxend.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtxend-ro.socket → /usr/lib/systemd/system/virtxend-ro.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtxend-admin.socket → /usr/lib/systemd/system/virtxend-admin.socket.

  インストール中   : libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64                                  7/19 
  scriptletの実行中: libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64                                  7/19 
  インストール中   : libisofs-1.5.4-3.fc36.x86_64                                                        8/19 
  インストール中   : libgovirt-0.3.8-3.fc36.x86_64                                                       9/19 
  インストール中   : libburn-1.5.4-4.fc36.x86_64                                                        10/19 
  インストール中   : libisoburn-1.5.4-4.fc36.x86_64                                                     11/19 
  インストール中   : kde-filesystem-4-67.fc36.x86_64                                                    12/19 
  インストール中   : xorriso-1.5.4-4.fc36.x86_64                                                        13/19 
  scriptletの実行中: xorriso-1.5.4-4.fc36.x86_64                                                        13/19 
  インストール中   : virt-manager-common-4.0.0-1.fc36.noarch                                            14/19 
  インストール中   : virt-install-4.0.0-1.fc36.noarch                                                   15/19 
  インストール中   : virt-manager-4.0.0-1.fc36.noarch                                                   16/19 
  インストール中   : virt-viewer-11.0-2.fc36.x86_64                                                     17/19 
  インストール中   : libvirt-8.1.0-2.fc36.x86_64                                                        18/19 
  インストール中   : bridge-utils-1.7.1-4.fc36.x86_64                                                   19/19 
  scriptletの実行中: libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64                                     19/19 
  scriptletの実行中: libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64                                      19/19 
  scriptletの実行中: libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64                                    19/19 
  scriptletの実行中: libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64                                 19/19 
  scriptletの実行中: bridge-utils-1.7.1-4.fc36.x86_64                                                   19/19 
  検証             : bridge-utils-1.7.1-4.fc36.x86_64                                                    1/19 
  検証             : kde-filesystem-4-67.fc36.x86_64                                                     2/19 
  検証             : libburn-1.5.4-4.fc36.x86_64                                                         3/19 
  検証             : libgovirt-0.3.8-3.fc36.x86_64                                                       4/19 
  検証             : libisoburn-1.5.4-4.fc36.x86_64                                                      5/19 
  検証             : libisofs-1.5.4-3.fc36.x86_64                                                        6/19 
  検証             : libvirt-8.1.0-2.fc36.x86_64                                                         7/19 
  検証             : libvirt-client-8.1.0-2.fc36.x86_64                                                  8/19 
  検証             : libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64                                  9/19 
  検証             : libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64                                    10/19 
  検証             : libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64                                      11/19 
  検証             : libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64                                     12/19 
  検証             : python3-libvirt-8.0.0-2.fc36.x86_64                                                13/19 
  検証             : virt-install-4.0.0-1.fc36.noarch                                                   14/19 
  検証             : virt-manager-4.0.0-1.fc36.noarch                                                   15/19 
  検証             : virt-manager-common-4.0.0-1.fc36.noarch                                            16/19 
  検証             : virt-viewer-11.0-2.fc36.x86_64                                                     17/19 
  検証             : xorriso-1.5.4-4.fc36.x86_64                                                        18/19 
  検証             : kf5-filesystem-5.97.0-2.fc36.x86_64                                                19/19 

インストール済み:
  bridge-utils-1.7.1-4.fc36.x86_64                     kde-filesystem-4-67.fc36.x86_64                        
  kf5-filesystem-5.97.0-2.fc36.x86_64                  libburn-1.5.4-4.fc36.x86_64                            
  libgovirt-0.3.8-3.fc36.x86_64                        libisoburn-1.5.4-4.fc36.x86_64                         
  libisofs-1.5.4-3.fc36.x86_64                         libvirt-8.1.0-2.fc36.x86_64                            
  libvirt-client-8.1.0-2.fc36.x86_64                   libvirt-daemon-config-nwfilter-8.1.0-2.fc36.x86_64     
  libvirt-daemon-driver-libxl-8.1.0-2.fc36.x86_64      libvirt-daemon-driver-lxc-8.1.0-2.fc36.x86_64          
  libvirt-daemon-driver-vbox-8.1.0-2.fc36.x86_64       python3-libvirt-8.0.0-2.fc36.x86_64                    
  virt-install-4.0.0-1.fc36.noarch                     virt-manager-4.0.0-1.fc36.noarch                       
  virt-manager-common-4.0.0-1.fc36.noarch              virt-viewer-11.0-2.fc36.x86_64                         
  xorriso-1.5.4-4.fc36.x86_64                         

完了しました!

kvm が有効になっていることの確認

$ lsmod | grep kvm

kvm_intel             368640  0
kvm                  1073152  1 kvm_intel
irqbypass              16384  1 kvm

仮想マシンマネージャー (virt-manager) の起動確認🤔
[アクティビティ] - [アプリケーション] - [仮想マシンマネージャー] を起動する。
virt-manager icon

管理者の認証を行って、仮想マシンマネージャーが起動して QEMU/KVM に接続されていれば (未接続ではないこと) 利用可能である🤤

仮想マシンマネージャー 001

DietPi Native PC for UEFI をダウンロード

DietPi - Lightweight justice for your SBC!
DietPi Native PC for UEFI

ダウンロードするインストーライメージは 7zip 形式である🤔

$ curl -LO https://dietpi.com/downloads/images/DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  562M  100  562M    0     0  8150k      0  0:01:10  0:01:10 --:--:-- 7674k

7zip コマンド のインストールが必要です😊

$ sudo dnf install p7zip

メタデータの期限切れの最終確認: 4:25:22 時間前の 2022年08月29日 14時41分14秒 に実施しました。
依存関係が解決しました。
==============================================================================================================
 パッケージ             アーキテクチャー        バージョン                      リポジトリー            サイズ
==============================================================================================================
インストール:
 p7zip                  x86_64                  16.02-22.fc36                   fedora                  671 k

トランザクションの概要
==============================================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 671 k
インストール後のサイズ: 1.8 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
p7zip-16.02-22.fc36.x86_64.rpm                                                1.6 MB/s | 671 kB     00:00    
--------------------------------------------------------------------------------------------------------------
合計                                                                          362 kB/s | 671 kB     00:01     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                      1/1 
  インストール中   : p7zip-16.02-22.fc36.x86_64                                                           1/1 
  scriptletの実行中: p7zip-16.02-22.fc36.x86_64                                                           1/1 
  検証             : p7zip-16.02-22.fc36.x86_64                                                           1/1 

インストール済み:
  p7zip-16.02-22.fc36.x86_64                                                                                  

完了しました!

ダウンロードした 7z 形式の圧縮ファイルを DietPi_img ディレクトリに解凍する🤤

$ 7za e -oDietPi_img DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z


7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7 CPU       Q 740  @ 1.73GHz (106E5),ASM)

Scanning the drive for archives:
1 file, 590193276 bytes (563 MiB)

Extracting archive: DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z
--
Path = DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z
Type = 7z
Physical Size = 590193276
Headers Size = 262
Method = LZMA2:26
Solid = +
Blocks = 1

Everything is Ok                                         

Files: 3
Size:       611335304
Compressed: 590193276

解凍した中身を確認する🤔

$ ll DietPi_img/

合計 597012
-rw-r--r-- 1 tomoyan tomoyan 611319808  7月 31 23:47 DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.iso
-rw-r--r-- 1 tomoyan tomoyan     15237  7月 31 23:47 README.md
-rw-r--r-- 1 tomoyan tomoyan       259  7月 31 23:47 hash.txt

QEMU KVM の UEFI ファームウェア

x86 QEMU/KVM 仮想マシンの UEFI は OVMF (Open Virtual Machine Firmware)と呼ばれている🤔
これは、UEFI リファレンス実装である EDK2 (EFI Development Kit - EFI 開発キット) に由来している。
Using UEFI with QEMU - Fedora Project Wiki より

Fedora リポジトリから UEFI for QEMU をインストールする

2016年6月以降 OVMF は Fedora リポジトリで利用可能である。インストールする必要がある RPM パッケージは edk2-ovmf だけである🤔
おそらくすでにインストールされていので、セキュアブート用のファームウェア OVMF_CODE.secboot.fd が含まれている😍

$ dnf list edk2-ovmf

メタデータの期限切れの最終確認: 0:22:02 時間前の 2022年08月30日 06時03分25秒 に実施しました。
インストール済みパッケージ
edk2-ovmf.noarch                            20220526git16779ede2d36-4.fc36                            @updates

$ dnf info edk2-ovmf

メタデータの期限切れの最終確認: 0:35:16 時間前の 2022年08月30日 06時03分25秒 に実施しました。
インストール済みパッケージ
名前         : edk2-ovmf
バージョン   : 20220526git16779ede2d36
リリース     : 4.fc36
Arch         : noarch
サイズ       : 15 M
ソース       : edk2-20220526git16779ede2d36-4.fc36.src.rpm
リポジトリー : @System
repo から    : updates
概要         : UEFI firmware for x86_64 virtual machines
URL          : http://www.tianocore.org/ovmf/
ライセンス   : BSD-2-Clause-Patent and OpenSSL
説明         : OVMF (Open Virtual Machine Firmware) is a project to enable UEFI support for
             : Virtual Machines. This package contains a sample 64-bit UEFI firmware for QEMU
             : and KVM.

$ rpm -ql edk2-ovmf

/usr/share/OVMF
/usr/share/OVMF/OVMF_CODE.fd
/usr/share/OVMF/OVMF_CODE.secboot.fd
/usr/share/OVMF/OVMF_VARS.fd
/usr/share/OVMF/OVMF_VARS.secboot.fd
/usr/share/OVMF/UefiShell.iso
/usr/share/doc/edk2-ovmf
/usr/share/doc/edk2-ovmf/README
/usr/share/doc/edk2-ovmf/ovmf-whitepaper-c770f8c.txt
/usr/share/edk2
/usr/share/edk2/ovmf
/usr/share/edk2/ovmf/EnrollDefaultKeys.efi
/usr/share/edk2/ovmf/MICROVM.fd
/usr/share/edk2/ovmf/OVMF.amdsev.fd
/usr/share/edk2/ovmf/OVMF.inteltdx.fd
/usr/share/edk2/ovmf/OVMF_CODE.cc.fd
/usr/share/edk2/ovmf/OVMF_CODE.fd
/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd
/usr/share/edk2/ovmf/OVMF_VARS.fd
/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd
/usr/share/edk2/ovmf/Shell.efi
/usr/share/edk2/ovmf/UefiShell.iso
/usr/share/licenses/edk2-ovmf
/usr/share/licenses/edk2-ovmf/LICENSE.openssl
/usr/share/licenses/edk2-ovmf/License-History.txt
/usr/share/licenses/edk2-ovmf/License.OvmfPkg.txt
/usr/share/licenses/edk2-ovmf/License.txt| {{:linux:virt-manager_001.png?400|virt-manager 001}} | {{:linux:virt-manager_002.png?400|virt-manager 002}} |

/usr/share/qemu
/usr/share/qemu/firmware
/usr/share/qemu/firmware/40-edk2-ovmf-sb.json
/usr/share/qemu/firmware/50-edk2-ovmf-amdsev.json
/usr/share/qemu/firmware/50-edk2-ovmf-cc.json
/usr/share/qemu/firmware/50-edk2-ovmf-inteltdx.json
/usr/share/qemu/firmware/50-edk2-ovmf.json
/usr/share/qemu/firmware/60-edk2-ovmf-microvm.json
/usr/share/qemu/firmware/60-edk2-ovmf-nosb.json

仮想マシンマネージャーによる UEFI ブート仮想マシンの作成

virt-manager 001 virt-manager 002
virt-manager 003
virt-manager 004 virt-manager 005
virt-manager 006 virt-manager 007
virt-manager 008
virt-manager 009 virt-manager 009-1
virt-manager 010 virt-manager 011
virt-manager 012 virt-manager 013
virt-manager 014
virt-manager 015 virt-manager 015-1

DietPi Native PC for UEFI のインストーラを QEMU/KVM で起動

DietPi Native PC for UEFI 001 DietPi Native PC for UEFI 002
DietPi Native PC for UEFI 003

DietPi Native PC for UEFI 004 |

DietPi Native PC for UEFI 005

参考文献

DietPi Install on KVM - VM Engine (KVM) - Unraid
第441回 QEMU/KVMでUEFIファームウェアを使う | gihyo.jp
Using UEFI with QEMU - Fedora Project Wiki

付録

Wikiとは進化する文献🤔何度でも書き直して、自由🗽に改変して、すべての更新履歴は自動世代管理されます😊新しいネタにチャレンジしてます🤔速い実験、検証環境が必要だ‼️😻まだ、中身は書きかけですけど…🤔