投稿者「bloguser」のアーカイブ

Windows10仮想マシンをWinsows11仮想マシンにアップグレード (3)

今回で3回目の「Windows10仮想マシンをWinsows11仮想マシンにアップグレード」というテーマの記事となります。
前回第2回目は大まかな作業の順番をご紹介しましたが、今回から複数回に分けて詳細な手順をご紹介します。
今回は手順1から2の紹介です。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10を起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows11のISOファイルからアップグレード


手順1:仮想マシンに Windowsの移行先の新規ターゲットディスクを追加

ディスク追加設定前

仮想マシンに仮想ディスクは1台のみ存在しています。SCSI0に100GBのディスクがpool01ストレージに配置されています。現在このSCSI0はMBRパーティションテーブルが作成されておりWindowsがインストールされています。

ディスク追加設定

ProxmoxVEのWeb管理画面から対象のVMのハードウェア設定に進み、追加から「ハードディスク」を選択します。

バス/デバイスを「SCSI」「1」に、ストレージを「pool01」、ディスクサイズを「200」GBに設定し追加ボタンを押します。

※注意:事前に仮想マシンWindows10側にvirtioのSCSIドライバをインストールしておかないと仮想マシンWindowsで仮想SCSIディスクを認識しません。もしSCSIドライバをインストールしておらず、SCSIが認識されない場合はSATAなどの別のバスタイプに設定するか、Windows10にSCSI用のドライバをインストールしてください。

ディスク追加設定後

200GBのSCSI1ディスクが追加されました。この200GBのディスクをプライマリ領域のクローン先(ターゲットディスク)として扱っていきます。

パーティションテーブル、パーティションの作成

一旦、既存のWindows10を起動してdiskpart機能を使用して追加したターゲットディスクに対してパーティションテーブル、パーティションの作成をしておきます。
プライマリ領域のクローンする前に作成しておかないと、パーティションの並びがきれいになりません。

仮想マシンWindows10を起動してdiskpartを管理者として実行し起動します。

list diskでディスクのインデックスを確認します。追加した200GBのターゲットディスクがディスク1である事が確認できます。

diskpartでは下記のコマンドを順次実行していきます。

select Disk 1 
clean
convert gpt
select partition 1
delete partition override
create partition EFI size=260
format quick fs=fat32 label="System"
create partition msr size=128

各行の実行内容としては下記の通りです。

ディスク1を選択(以後すべてディスク1に対する操作)
すべてのパーティションを削除
新たにGPTパーティションテーブルを作成
ディスク先頭のパーティションを選択(MBRパーティションが自動で作成されるため)
ディスク先頭のMBRパーティションを削除
EFIパーティションを260MBで作成
EFIパーティションをfat32でフォーマットしSystemというラベルを付与
MBRパーティションを128MBで作成

最終的にlist partitionで下記のようなパーティションが作成されていれば成功です。

手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック

この後の手順では既存ディスクのプライマリパーティションをクローンしますがその前にプライマリパーティションのファイルシステムの整合性をchkdskコマンドでチェック・修復します。通常はプライマリパーティションのドライブレターはCが割り当たっていると思いますが、もし異なるレターが割り当たっている場合は環境に合わせて変更してください。

chkdsk C: /F

その後、仮想マシンを再起動するとCドライブのチェックが始まり、必要に応じて修復されます。

手順1-2は以上です。次回に続きます。


当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWinsows11仮想マシンにアップグレード (2)

はじめに

前回に続き「Windows10仮想マシンをWinsows11仮想マシンにアップグレード」というテーマの記事となります。
今回は当社の検証環境のご紹介と検証の概要と大まかな作業の流れについてを書きます。

(1)検証環境について

  • 当社では下記のProxmoxVEによる仮想環境基盤で検証を行いました。
  • 検証の際にはWindowsの仮想化に必要な各種ライセンスをMicrosoft代理店から取得した状態で行いました。

注意

  • 検証される際には各種のライセンス規定に抵触しない様に検証環境とそのライセンス状況をご確認ください。
  • 検証前にはすべてバックアップを取り復旧できる事を確認してから行う事をお勧めします。すべての作業は慎重に行い作業の途中にも適宜バックアップを行う事をお勧めします。

仮想環境基盤

ProxmoxVE 8.3.0

root@pve01:~# pveversion
pve-manager/8.3.0/c1689ccb1065a83b (running kernel: 6.8.12-4-pve)

・Window10仮想マシンのハードウェア構成

基本構成としては4core、10GBメモリ、100GBストレージのWindows10です。

解説

100GBストレージの中にはWindows10をMBRパーティションでインストールしてあります。またBIOSがSeaBIOSとなっておりLegacy BIOS bootです。

この構成の場合はTPMデバイス認識無しMBRパーティション中のWindows10Legacyブートされます。

Windows11の要件として不足している点はTPMと、UEFIブートとSecureBootが満たしていません。
TPMは仮想TPMデバイスを追加すれば要件を満たせますが、UEFIブートとSecureBootの要件を満たすためにはGPTパーティションに移行する必要があります。

(2)検証の概要

当社の取ったアップグレード方法は既存ディスクをMBR2GPT変換するのではなく新たな仮想ディスクを用意して適切なGPTパーティションと各パーティションを作成し整えた後に、既存仮想ディスクのMBRパーティションにあるWindowsプライマリパーティションを、新ディスクにクローンするという方法を取りました。

MBR2GPT変換を用いてもWindows11のシステム要件を満たすことは可能だったのですが採用しませんでした。
理由はMBR2GPT変換後にパーティション内の並びやパーティションサイズがバラバラになってしまったからです。(Microsoftが例示しているようなきれいな並びになりませんでした。)

MBR2GPT直後の変な並びのパーティション

Microsoftの説明
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions?view=windows-11#partition-layout

MBR2GPTを用いる方法はパーティションの並びと言う見た目の問題のみならず実際にMBR2GPT変換を行った後にパーティションが原因と思われる不具合があったので、今後のメンテナンス性も考慮して見送りました。

一方、当社で検証した新たなディスクにクローンする方法は移行後にディスク内のパーティションが散らばったりせずに理想的なパーティションの並びが実現できました。そのため、今回は新たなディスクにクローンする方法にてご紹介します。

作業の流れ

おおまかな作業手順は下記の通りです。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10を起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows11のISOファイルからアップグレード

工程数があり手間がかかる作業もありますので、最初手作業でやると結構大変です。
次回以降の記事では一つ一つの作業を解説していきます。ぜひ次回以降もご覧下さい。

最後に

当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

VMwareESXiからもWindows10の移行を簡単に行えます。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWinsows11仮想マシンにアップグレード (1)

はじめに

先日、ProxmoxVE上で稼働していた仮想マシンをWindows10からWindows11にアップグレードしました。
その作業の中ではWindows11へのアップグレードの知見が色々と得られました。
せっかくなので本ブログにてこれから複数回にわたり「Windows10仮想マシンをWinsows11仮想マシンにアップグレード」というテーマで得られた知見を共有したいと思います。

第一回目はMicrosoft Windowsの事情と当社のアップデートにまつわる事情をご紹介します。

迫るWindows10のサポート期限

Microsoft Windows10のサポートが2025年10月で終了するとアナウンスされています。(2025年4月現在)

https://www.microsoft.com/ja-jp/windows/end-of-support

仮想マシンのWindows10をお使いの方の中には、サポートが終了してしまうのでそろそろWindows11へ移行したいと思いつつ、まだWindows11への移行に踏み切れないという方もいらっしゃるのではないでしょうか。当社もなかなかWindows11への移行の動き出しができませんでした。

アップデートを取り巻く様々な事情

Windows11への移行に踏み切れなかったのは下記の事情のためでした。

事情1: 仮想マシンがWindows11のシステム要件を満たしていない。

仮想マシンとWindowsとUEFI起動、SecureBoo)、TPMがWindows11のシステム要件を満たしておらず、また満たすための具体的な対応方法が不透明でした。
要件を満たす対応をする必要がありましたが、その中でも特にUEFI起動、SecureBootの要件に対応するためのGPTパーティションのディスクへの移行方法が不透明でした。(既存WIndows10はMBRパーティションでインストールされてました。)

事情2: ユーザによってはCドライブがいっぱい。

そもそものアップグレード前にCドライブのストレージ拡張作業を行い空き容量を確保する前段階の作業の必要がありました。

事情3: アプリ等の環境はそのまま引き継ぎたいというユーザー要望

なるべく今の環境を引き継ぎたいというユーザーからの要望。たしかに複雑に構築されている環境は新たに構築し直すの大変ですね。

上に挙げたもの以外にもさまざまな事情は有りましたが、主な事情はこれらの通りでした。

これらの事情を考慮しながらWindows11にアップグレードするために検証を重ねた結果、当社環境にて安定してアップグレードできる方法が確立できました。

次回以降のブログ記事では具体的な方法をお伝えしていきます。当社と同様の事情をお持ちの方の参考になれば幸いです。


最後に

当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

ProxmoxVE 8.3 リリース

ProxmoxVE 8.3が 2024/11/21に リリースされました。

https://www.proxmox.com/en/about/press-releases/proxmox-virtual-environment-8-3

まずは当社の検証環境Proxmox8.2.7がProxmoxVE 8.3へアップデート可能か試してみました。結果、作業自体はトラブルなく行うことができました。


プレスリリースによると下記のような機能が強化されたとのことです。

ソフトウェア定義ネットワーク (SDN) スタックとファイアウォールの連携強化: 複雑なネットワーク構成とマルチテナント設定を簡単に管理可能。

通知システムのWebhookターゲット: システムイベントに対するHTTP要求をトリガーし、通知のカスタマイズが可能。

リソースツリーの「タグビュー」機能: 仮想ゲストを割り当てられたタグに基づいてグループ化して表示。

Ceph Squidのサポート(テクノロジープレビュー): Ceph Squid 19.2.0が新たにサポートされ、他のCephバージョンも引き続き利用可能。

コンテナのバックアップの高速化: 変更されていないファイルを効率的に検出し、バックアップ時間を短縮。

他のハイパーバイザーからの移行機能の改善: OVFおよびOVAファイルからのゲストインポートが簡素化され、VMwareゲストなどからの移行が容易に。

色々な機能が追加・強化されて楽しみですね。当社の様なハードウェアベンダーの立場からするとハードウェアとの相性問題についても気になります。これから検証していきます。

アップデート作業や機能については改めて記事にしようと思います。

当社ではハードウェア販売時にProxmoxVEのインストールサービスを承っております。
またProxmoxVEのHCIの環境構築サービスも始めました。
是非お問い合わせください。

https://www.systemworks.co.jp/hci.php

ProxmoxVEの仮想マシンにGPUパススルー設定

背景
今回のブログ記事では、Proxmox VEにおけるGPUパススルー設定についてご紹介します。

GPUパススルーとは、仮想マシン(VM)にホストマシンのGPUを直接割り当てる技術です。これにより、仮想マシンがホストのGPUを直接利用できるようになります。
イメージとしては赤線枠の部分のようにServer Nodeに搭載されているGPUデバイスを仮想マシン(VM)に割り当てて使用できるという形になります。

Proxmox VEはGPUパススルー機能をサポートしています。この機能を活用することで、Proxmox VEを用いた仮想環境基盤の活用の幅が広がります。本記事が仮想環境基盤構築をご検討の方のお役に立てば幸いです。

検証環境

項目内容
仮想環境Proxmox VE 8.2.4
パススルーのソースデバイスNVIDIA T400
パススルーのターゲット仮想マシンUbuntu 24.04 LTS

参考資料

手順

ステップ1: BIOSでIOMMUの有効化
IOMMU(Input-Output Memory Management Unit)は、コンピュータの入出力デバイスが物理メモリに直接アクセスする際にアドレス変換を行い、メモリの保護と効率的な資源管理を実現するハードウェアコンポーネントです。以下のBIOS設定を行います。

なお、BIOS設定やカーネルオプション設定はシステムの構成によって異なります。本記事では当社での検証の一例を紹介しています。実際の作業の際にはシステム構成に合わせて設定方法を確認してください。

ステップ2: カーネルオプションでIOMMUの有効化
カーネルオプション設定は以下の通りです。

GPU搭載ノードのコンソールからシェルを開き、/etc/kernel/cmdlineファイルにintel_iommu=oniommu=ptオプションを追加してください。なお、カーネルオプション設定はブートローダの種類によって異なりますので、構成に合わせて設定する必要があります。ProxmoxではGRUBまたはsystemd-bootの2種類のブートローダが使用されます。

ステップ3: VFIOモジュールの設定
VFIOモジュールは、ユーザー空間へ直接デバイスアクセスを公開するためのIOMMU/デバイス非依存フレームワークです。詳細はこちらをご覧ください。

Proxmox VEでVFIOモジュールを有効にするには、以下の手順を行います。

  1. GPUが搭載されているノードのコンソールからシェルを開き、以下のコマンドを実行してGPUデバイスを確認します。
  1. デバイスのバスIDとベンダーID、デバイスIDを確認します。
  2. vfio.confというファイルを新規作成し、以下の内容を追加します。
  1. Proxmox VE起動時に以下のモジュールを自動的に読み込むように設定ファイルを記述します。

ステップ4: GPUドライバモジュールをブラックリストに登録
ブラックリストは、特定のカーネルモジュールの自動ロードを防ぐために使用されます。Proxmox VEのWebUI上で操作し、以下のブラックリストファイルを新規に作成します。

ステップ5: 再起動
これまでの設定変更を反映するために、ノードを再起動します。クラスタ構築済みの環境では、再起動を行う際に適切な手順で慎重に行ってください。

ステップ6: PCIeデバイスのマッピング
Proxmoxの管理WebUIにて、データセンター→リソースマッピング→PCIeデバイス→追加を選択します。

マッピングの識別名を入力し、ノード上のデバイスにチェックを入れて作成を押します。

マッピング済のデバイスに先ほど作成したデバイスが存在する事を確認します。

ステップ7: 仮想マシンにPCIeデバイスの割り当て
PCIeデバイス(GPUデバイス)を割り当てたい仮想マシンを選択し、ハードウェア→追加→PCIデバイスを選択します。

Mappedデバイスに先ほどステップ6で追加したT400という項目が表示されます。T400を選択し追加ボタンを押します。

割り当てを行う仮想マシンにPCIデバイス(GPUデバイス)が追加されたことを確認します。

ステップ8: 仮想マシン上でGPUデバイスの認識確認
仮想マシンを起動し、ターミナルでlspciを実行してNVIDIAデバイスが認識されているか確認します。NVIDIAドライバをインストールし、nvidia-smiを実行してデバイスが認識されていることを確認します。

まとめ
今回はProxmox VEにおけるGPUパススルーの方法をご紹介しました。
システムの構成によってBIOS設定やブートオプションの設定方法に若干の違いはありますが、おおよその流れは本記事でご紹介できたかと思います。GPUパススルーによって仮想基盤上でGPUリソースを効率的に活用する一助となれば幸いです。

当社では仮想化基盤(HCI)構築サービスの提供をはじめました。お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php