vmx オプションを使用した仮想マシンの起動順位の変更
search cancel

vmx オプションを使用した仮想マシンの起動順位の変更

book

Article ID: 327407

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この記事には、仮想マシンの BIOS を使用せず、 8 つの利用可能デバイスに関する制限無しに起動デバイスを変更する手順が記載されています。

Symptoms:
免責事項: これは英文の記事 「Changing the boot order of a virtual machine using vmx options (2011654)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware vSphere ESXi 8.0.x
VMware vSphere ESXi 7.0.x

Resolution

オプション 1 - ESXi 6.x / 7.0 上の仮想マシンについて vSphere Client を使用して起動順位を設定する


1. 仮想マシンをシャットダウンします。
2. インベントリで仮想マシンを右クリックします。
3. 設定の編集 をクリックします。
4. 表示されたダイアログで 仮想マシン オプション タブをクリックします。
5. 起動オプション の下の 強制的に BIOS をセットアップ にチェックを入れます。
6. OK をクリックして変更を保存します。
7. 仮想マシンをパワーオンします。
8. 仮想マシンのコンソールを開き、BIOS > Boot セクションに移動します。
9. 起動順位を設定し、保存します。
 

オプション 2 - 仮想マシンの詳細設定から起動順位を設定する


仮想マシンの詳細設定である bios.bootOrder と bios.hddOrder ( 仮想マシンが UEFI を使用する場合は efi.bootOrder と efi.hddOrder ) を使用して仮想マシンの起動デバイスを選ぶこともできます。


注: これらの設定により、仮想マシンの BIOS で前に設定した可能性のある起動順位が上書きされます。

仮想マシンの起動順序は ethernetX 経由で仮想 NIC に設定できます。X はデバイスの数です。たとえば、ethernet0、ethernet5 のようになります。hdd、cdrom、floppy に設定することもできます。cdrom または floppy に設定された場合、複数のデバイスが存在し、仮想マシンでは起動元デバイスが見つかるまでそれらのデバイスが順次試行されます。bios.bootOrder が hdd に設定された場合、bios.hddOrder を定義し、起動元デバイス(scsi0:3、ide1:0 など)を設定する必要があります。
この設定を行うには、まず仮想マシンがパワーオフ状態であることを確認し、

1. vSphere Client で仮想マシンを右クリックします。
2. 設定の編集 をクリックします。
3. 仮想マシン オプション のタブで 詳細 をクリックします。
4. 構成パラメータ の横の 設定の編集... をクリックします。
5. 構成パラメータの追加 をクリックし、新しく詳細パラメータを作成します。

仮想マシンが BIOS で起動する場合の例:
 
名前
bios.bootOrderethernet5,ethernet2,hdd,cdrom,floppy
bios.hddOrderscsi2:2,scsi0:1,ide1:0

仮想マシンが UEFI で起動する場合の例:
 
名前
bios.bootOrderethernet5,ethernet2,hdd,cdrom,floppy
bios.hddOrderscsi2:2,scsi0:1,ide1:0

6. OK をクリックし、再度 OK をクリックして仮想マシンの設定の編集ウィザードを閉じます。



または、仮想マシンの VMX 構成ファイルを編集することでも起動デバイスを設定することができます。設定時には仮想マシンがパワーオフされていることを確認し、デバイス名が引用符で囲まれていること、カンマで区切られていることを確かめてください。

仮想マシンが BIOS で起動する場合の例:
bios.bootOrder = "ethernet5,ethernet2,hdd,cdrom,floppy"
bios.hddOrder = "scsi2:2,scsi0:1,ide1:0"
仮想マシンが UEFI で起動する場合の例:
efi.bootOrder = "ethernet5,ethernet2,hdd,cdrom,floppy"
efi.hddOrder = "scsi2:2,scsi0:1,ide1:0"
この例では、仮想マシンでは ethernet5 で起動が試行されます。起動元がない場合、ethernet2 を試してみます。失敗した場合、hddOrder で定義されたディスク (hdd) から試行し、次にすべての CD-ROM、最後にはすべてのフロッピーから試行します。


注: BIOS とは異なり、すべての利用可能な NIC およびディスクから選択できますが、起動順序リストで使用できるのは最大 5 つの NIC と 8 つのディスクです。bootOrder/hddOrder 構成済み仮想マシンを ESXi/ESX 4.1 以降で実行されていないホストに移動すると、次の再起動時に使用されると予想される起動順序が使用されないことがあります。
 

オプション3 - PowerCLI を使用して仮想マシンの起動順位を設定する


以下の例にあるような PowerCLI のスクリプトを使用して仮想マシンの起動順位を変更することもできます。
この例では仮想マシンが2つの仮想ディスクと1つの仮想 NIC を持っていて、仮想 NIC から起動することを想定しています。
Connect-VIServer "vcenter-fqdn" -user username -password password! -WarningAction 0 -ErrorVariable ErrorInfo -ea SilentlyContinue | out-null
$spec = @()
$vm = @()
 
$vmName = 'vm-name'
$vm = Get-VM -Name $vmName

# display the VM name
echo $vm

$spec = New-Object -TypeName VMware.Vim.VirtualMachineConfigSpec
$spec.BootOptions = $vm.ExtensionData.Config.BootOptions

$disk1 = New-Object -TypeName VMware.Vim.VirtualMachineBootOptionsBootableDiskDevice
$disk1.DeviceKey = (Get-HardDisk -Name 'Hard disk 2' -VM $vm).ExtensionData.Key
$disk2 = New-Object -TypeName VMware.Vim.VirtualMachineBootOptionsBootableDiskDevice
$disk2.DeviceKey = (Get-HardDisk -Name 'Hard disk 1' -VM $vm).ExtensionData.Key

$net = New-Object -TypeName VMware.Vim.VirtualMachineBootOptionsBootableEthernetDevice
$net.DeviceKey = (Get-NetworkAdapter -Name 'Network adapter 1' -VM $vm).ExtensionData.Key

$spec.BootOptions.BootOrder = $net,$disk1,$disk2,

$vm.ExtensionData.ReconfigVM($spec)

# Display the new boot order
$vm.ExtensionData.Config.BootOptions | Select BootOrder

Disconnect-VIServer * -Confirm:$false
このスクリプトは新しく設定された起動順位をデバイス ID のリストで表示します。200x は仮想ディスク、400x は仮想 NIC です。

 

ESX/ESXi 4.1 で vSphere Client を使用して仮想マシンの起動順位を構成するには

  1. 仮想マシンをシャットダウンします。
  2. インベントリで仮想マシンをクリックします。
  3. その仮想マシンの サマリ タブをクリックし、設定の編集 をクリックします。
  4. 仮想マシンの [プロパティ] ダイアログで、オプション タブをクリックします。
  5. [詳細] で 全般 をクリックします。
  6. 構成パラメータ をクリックします。
  7. 行の追加 をクリックします。
  8. 新しい 2 行を作成します。
     
    • bios.bootOrder を [名前] 列に、デバイスを [値] 列に入力します。
    • bios.hddOrder を [名前] 列に、デバイスを [値] 列に入力します。
       
  9. OK をクリックして、変更を保存します。
注:仮想マシンが UEFI でブートする場合は、bios.* の代わりに以下を使用します。
  • efi.bootOrder

  • efi.hddOrder


ESXi 5 以降で仮想マシンの bootOrder を構成するには、API および vSphere API 5.0 に導入された bootOrder プロパティを使用するか、.vmx ファイルを直接編集する必要があります。

Additional Information

vSphere API 5.0 の bootOrder プロパティについては、「VirtualMachineBootOptions」を参照してください。

構成ファイルの直接編集 については、「Editing configuration files in VMware ESXi and ESX (1017022)」と「Editing files on an ESX host using vi or nano (1020302)」を参照してください。

注: .vmx ファイルを安全に編集するために、仮想マシンをパワーオフし、登録解除(vCenter Server/ESXi インベントリから削除)する必要があります。

仮想マシン構成ファイルを 変更する場合は、「Registering a virtual machine with the vSphere Web Client (2032904)」に従って vCenter Server/ESXi イベントリに登録し直してください。

Impact/Risks:
本記事の設定は BIOS の起動順位をオーバーライドします。本記事の設定を行うと、BIOS からの起動順位の変更はブロックされます。BIOS UI を使用して起動順位の変更を行うためには、設定された bios.bootOrder と bios.hddOrder を削除する必要があります。