Proxmox 7.0をインストールするメモ (Hyper-Vからの移行)
- Ryzen 1700
- ASRock X370 Gaming K4
- Dell PERC h740p
- GeForce GTX 1060
Proxmox自体のインストール
- isoをダウンロードして balenaEtherでUSBメモリに書いてそこから起動してインストール。
- 特にむずかしいところはないので省略
- ちなみにHyper-Vからの移行なのでそのための覚書も含む
- ProxmoxはDebianベースということを覚えておくと吉
MegaRAID CLIのインストール
Broadcomのサイトがあまりに使いにくいので以下の手順にしたがう。
元:https://gist.github.com/fxkraus/595ab82e07cd6f8e057d31bc0bc5e779
ようやくすると、必要なツール類を入れて、BroadcomからMegaCLIをダウンロードして展開。
展開した結果RPMファイルが得られるが、ProxmoxはdebianベースなのでRPM->DEBに変換する。
DEBファイルをインストールして、動作確認。という流れ。
apt install libncurses5 unzip alien
wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/8-07-14_MegaCLI.zip
unzip 8-07-14_MegaCLI.zip
cd Linux
alien MegaCli-8.07.14-1.noarch.rpm
dpkg -i megacli_8.07.14-2_all.deb
/opt/MegaRAID/MegaCli/MegaCli64 -h
/opt/MegaRAID/MegaCli/MegaCli64 -AdpCount
/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL
VHDX からのコンバート
接続先VMの作成
必要なVMをWeb GUIから作成する。
ディスクはあとで正式なものを接続するが、作成しないと先に進めないため、容量は0.1GBのような小さい値で作成する。
VMの作成が完了したら、
- 作成したVMの
ハードウェア
からディスクを選択してDetach
する。 - ハードウェア一覧の一番下に
未使用:〜〜
のようにディスクが表示されるので更にそれを選択して、削除
しておく。これでコンバートの下準備が完了。
VHDXからコンバートする
qm importdisk 100 Windows10_c.vhdx SUM980EVO
-
100
-> VMID。Proxmoxのツリー表示で表示される数字。VMを作ったときに採番される。100からの連番 - Windows_10_c.vhdx -> 変換元VHDX
- SUM980EVO -> ストレージの名前。 Proxmoxのツリーで
データセンター
を選択して真ん中の選択でストレージ
を選んだ時に表示される一覧の、IDを指定する。
root@proxmox:~/hyper-v/Windows10# qm importdisk 100 Windows10_c.vhdx SUM980EVO
importing disk 'Windows10_c.vhdx' to VM 100 ...
Logical volume "vm-100-disk-0" created.
transferred 0.0 B of 59.0 GiB (0.00%)
transferred 604.2 MiB of 59.0 GiB (1.00%)
transferred 1.2 GiB of 59.0 GiB (2.01%)
transferred 1.8 GiB of 59.0 GiB (3.01%)
transferred 2.4 GiB of 59.0 GiB (4.01%)
~~~~~~~~~~~
transferred 58.6 GiB of 59.0 GiB (99.30%)
transferred 59.0 GiB of 59.0 GiB (100.00%)
transferred 59.0 GiB of 59.0 GiB (100.00%)
Successfully imported disk as 'unused0:SUM980EVO:vm-100-disk-0'
メッセージの通り、VMに未使用のディスクとして追加されている。
アタッチには、 VMのハードウェア
から未使用のディスクを選択して編集
ボタンを押す。
起動順設定
アタッチしたディスクが起動ディスクの場合、VM
オプション
ブート順
の設定で今追加したディスクからのブートを有効にして(チェックを入れる)、ブート順の優先順位を上げておく(三 をドラッグ)
ディスクパススルー (RDM)
物理ディスク全体をVMに見せるには以下のコマンドを使用する。
qm set 100 -virtio0 /dev/disk/by-id/scsi-36d0946606c11150028b3e11557046428
- 100 -> VMID
- -virtio0 接続するバス sataN virtioN ideN 既存のを指定すると上書きされる。適当に空いているところをセットしておいて、Web GUIからデタッチすれば接続先を変更できる。
- /dev/disk〜 デバイス
by-id の次がわからない場合は、 ls -l /dev/disk/by-id/
でリンク先を表示させるとわかりやすくなると思う。 (/sdaとかその名前が表示される)
TrueNAS
TrueNASはKVMのエージェントが入っていないので、Web GUIからのシャットダウン・リブートに一切応答しない。これでは困るのでどうにかする。
手順的には上記の通りと言いたいところだが、 virtio_console.ko
はリンク先のGitHubに存在しない。というよりFreeBSD由来のファイルなのでFreeBSDのisoから持ってくる必要がある(と思われる。) 使用しているTrueNAS 12-U6 はFreeBSD 12ベースなので、
のisoの /boot/kernel/virtio_console
を持ってくる。
UEFIのDebian VMが自動起動できない(Linux全般?)
VHDXから変換をかけて起動させると、EFI Shellが起動してしまう。
EFI Shellで以下のようにすると起動させることができる。
FS0:
cd EFI
cd debian
grubx64.efi
この原因は、EFIブートエントリにgrubがないことが原因と思われる。
# efibootmgr
efibootmgr
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0001,0000,0002
Boot0000* UiApp
Boot0001* UEFI QEMU QEMU HARDDISK
Boot0002* EFI Internal Shell
Debianの場合、debianという名前のブートエントリがなければ起動してこない。
修正方法
VMの設定を確認した上で grub-install
で修復可能。
- BIOS の設定が OVMF(UEFI) に設定されている
- ハードウェアに EFIディスク が存在している
$ sudo grub-install
Installing for x86_64-efi platform.
Installation finished. No error reported.
$ efibootmgr
BootCurrent: 0003
Timeout: 3 seconds
BootOrder: 0004,0001,0002,0000,0003 ※ 0004が先頭になっている
Boot0000* UiApp
Boot0001* UEFI QEMU DVD-ROM QM00003
Boot0002* UEFI QEMU HARDDISK QM00005
Boot0003* EFI Internal Shell
Boot0004* debian ※ 追加されたエントリ
蛇足
WindowsとFreeBSD(TrueNAS)は同じUEFIなのに問題が発生していない理由がよくわからない。
startup.nsh でも置いてるのかなぁ
Discussion