0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Error] VirtualBox Cannot register the hard disk… Syntax error: Invalid parameter etc..

Last updated at Posted at 2022-11-16

Error

Runtime error opening 'C:\Users\your_name\VirtualBox VMs\Metasploitable2\Metasploitable2.vbox' for reading: -103 (Path not found.).
F:\tinderbox\win-6.1\src\VBox\Main\src-server\MachineImpl.cpp[754] (long __cdecl Machine::i_registeredInit(void)).
終了コード : 
E_FAIL (0x80004005)
コンポーネント: 
MachineWrap
インターフェース: 
IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}
Could not open the medium 'C:\Users\your_name\Downloads\metasploitable-linux-2.0.0\Metasploitable2-Linux\Metasploitable.vmdk'.
VD: error VERR_PATH_NOT_FOUND opening image file 'C:\Users\your_name\Downloads\metasploitable-linux-2.0.0\Metasploitable2-Linux\Metasploitable.vmdk' (VERR_PATH_NOT_FOUND).


終了コード : 
E_FAIL (0x80004005)
コンポーネント: 
MediumWrap
インターフェース: 
IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
仮想マシン"metasploitable2"のセッションを開きませんでした

原因

など、仮想マシンのファイル(.dvi,.vbox)を移動した際にこのようなエラーが出る

解決方法

登録済み VM の削除

VM VirtualBox から登録済みの VM を削除してから、仮想メディアマネージャーで移動前のディスクを削除します。

もし、手動で移動した VM が「VM VirutualBox マネージャー」の左側のリストに載っているなら、まずはそれを削除します。「除去のみ」今回はこちらで治った。

登録済みメディアの削除

今回のエラーの原因は、「VM VirutualBox マネージャー」からは削除されているのに、メディアの情報が残っていることが原因です。メディアの登録情報は「仮想メディアマネージャー」で確認・操作できます。

メニューで「ファイル」→「仮想メディアマネージャー」をクリックして、「仮想メディアマネージャー」を開きます。

タブ「ハードドライブ」で移動済みのドライブに黄色の警告マークがついていると思います。それを削除してください。

vboxmanage コマンドの確認

vboxmanage コマンド (Windows の場合は VBoxManage.exe) にパスが通っていない場合、絶対パスで実行できるよう、コマンドの場所を確認しておきます。

Windows の場合、C:\Program Files\Oracle\VirtualBox\VBoxManage.exe あたりにあると思います。

UUID 変更

下記コマンドを実行します。(管理者 コマンドプロンプト)

cd <メディア(.dvi)がある場所>

(Windows、VirtualBox 4.3.30 の場合)
(変更前の UUID 確認)
> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showhdinfo <メディアファイル.dvi>
(変更実行)
> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands sethduuid <メディアファイル.dvi>

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showhdinfo "C:\Users\yourneme\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi"

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands sethduuid "C:\Users\yourname\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi"

C:\WINDOWS\system32>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showhdinfo "C:\Users\yourname\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi"                                                    
UUID:           265b5550-36fe-4747-beb5-e3cad1396d86                                                                    
Parent UUID:    base                                                                                                    
State:          inaccessible                                                                                            
Access Error:   UUID {146e7d15-376e-4454-ad03-11b45edf4517} of the medium 'C:\Users\yourname\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi' does not match the value {265b5550-36fe-4747-beb5-e3cad1396d86} stored in the media registry ('C:\Users\rudycandy\.VirtualBox\VirtualBox.xml')                                      
Type:           normal (base)     
Location:       C:\Users\yourname\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi Storage format: VDI 
Format variant: dynamic default
Capacity:       81920 MBytes 
Size on disk:   27159 MBytes  
Encryption:     disabled      
Property:       AllocationBlockSize=1048576
C:\WINDOWS\system32>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands sethduuid "C:\Users\yourname\VirtualBox VMs\Kali-Linux-2021.1-vbox-amd64\kali-linux-2021.1-vbox-amd64-disk001.vdi"                                    
UUID changed to: 146e7d15-376e-4454-ad03-11b45edf4517

注意

internalcommands sethduuid で変更した後確認でshowhdinfoのコマンドを実行するとuuidが変更する前の値になるので、internalcommands sethduuidの後はshowhdinfoを入力しない。(確認しない)

構成ファイル (.vboxファイル) 編集

手動で仮想メディアの UUID を変更したため、構成ファイル (.vboxファイル) も編集する必要があります。また、VM 自体の UUID も重複が許されませんので、あわせて編集する必要があるでしょう。

関係ないタグ、属性を省略して、修正箇所のみ記載します。「uuid」でファイル内を検索して、編集漏れがないか確認してください。

VirtualBox > Machine[uuid]
  コピー元の値を +1 するなど、他のすべての VM と重複しないように。
VirtualBox > Machine[name]
  「VM VirtualBox マネージャー」上で、コピー元と区別できるように。特に変更がなければ変えなくてよい。
VirtualBox > Machine > MediaRegistry > HardDisks > HardDisk[uuid]
  vboxmanage コマンドで変更後の UUID に。
VirtualBox > Machine > MediaRegistry > HardDisks > HardDisk[location]
  ディスクのファイル名も変更した場合に。/user/yournameあたりが変更する箇所の可能性がある。
VirtualBox > Machine > StorageControllers > StorageController > AttachedDevice > Image[uuid]
  vboxmanage コマンドで変更後の UUID に。

<VirtualBox>
  <Machine uuid="{07d03d86-30b5-4863-94f6-8ec9c9affd83}" name="CentOS6-devel">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{50842340-e454-4ed6-ae7e-8d8579cae72a}" location="CentOS6-devel.vdi"/>
      </HardDisks>
    </MediaRegistry>
    <StorageControllers>
      <StorageController>
        <AttachedDevice>
          <Image uuid="{50842340-e454-4ed6-ae7e-8d8579cae72a}"/>
        </AttachedDevice>
      </StorageController>
    </StorageControllers>
  </Machine>
</VirtualBox>

解決

何とか解決することができた。

この方法は仮想イメージの移植と似ているので今後移植予定なら役立つ方法だろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?