LoginSignup
1
0

More than 3 years have passed since last update.

VirtualBoxでCentOS7用のVMDKをインポート

Last updated at Posted at 2019-06-28

VMware WorkStation からエクスポートした(と思われる)CentOS7 の vmdk ファイル(ディスクイメージ)を、VirtualBox for Windows にインポートした時の自分用メモです。執筆時のバージョンは、Oracle VM VirtualBox 6.0.8 r1 です。

VMに割り当てるIPの確保

 今回、Vagrant+VirtualBox で動作中の他の VM と同じセグメント(Vagrant の private_network で追加したもの)に固定 IP を使って接続するつもりなので、まずはそのセグメントの CIDR アドレスを調べます。他の VM が使っているセグメントは、VirtualBox マネージャーを使って調べられます(まぁ、Vagrantfile 見れという話ではありますが)。

image.png

アダプター2は『ホストオンリーアダプター、’VirtualBox Host-Only Ethernet Adapter #2’』であることがわかりました。次に、ホストマシンのコマンドプロンプトもしくは PowerShell で ipconfig を叩きます。

image.png

 これにより、この環境では当該セグメントの CIDR は 192.168.56.0/24 であることがわかります。その中でホストマシンが .1 を使いますので、ゲストに 2 から順に割り当てることにします。今回は .33 を割り当てます。ホスト名は適当に newvm とします。

 エディタで c:/windows/system32/drivers/etc/hosts を開き、以下を追加します。

192.168.56.33 newvm

 以上で準備完了です。

VMの作成

VirtualBox マネージャーから新規に仮想マシンを作成します。

image.png

 CentOS7 をインポートするので、タイプ:Linux、バージョン:Other Linux(64-bit) としました。メモリは適当に 2GB、ハードディスクは「追加しない」とします。これで[作成]すると、以下のようなエントリが追加されます。ネットワークはデフォルトで 「アダプター1:(NAT)」が追加されます。

image.png

 次に、[設定]>[ネットワーク]>アダプター2を定義します。名前のところはデフォルトで新しいアダプターを割り当てようとするので、最初に調べた[VirtualBox Host-Only Ethernet Adapter #2’] に変更します。これで同じ他の仮想マシンと同じセグメントに所属することになります。

image.png

次に VMDK ファイルを取り込みます。

  • [設定]>[ストレージ]>[新しいストレージコントローラを追加]>[SCSIコントローラーを追加]

image.png

  • [コントローラー:SCSI]>[ハードディスクの追加]

image.png

image.png

  • [既存のディスクを選択]

image.png

  • [追加]
  • インポートしたい VMDK ファイルを選んで[開く]

image.png

もしエラーになった場合は[詳細]をクリックします。「with UUID … already exists.」 は、同じ VMDK ファイルをその VirtualBox 上で2回以上使いまわそうとすると発生します。

image.png

メディアの追加に成功した場合は以下のようになるので、このVMDKをクリックして[選択]します。

image.png

以下のようになるので[OK]で閉じます。

image.png

仮想マシンの起動

 ここまでできたら仮想マシンを[起動]します。VirtualBox のコンソールが表示されますが、この画面ではマウスもコピペもできないのでやや苦行モードとなります。この画面から別のウィンドウにフォーカスを移すには右の[Ctrl]ボタンを押してください。

 ブートが終わったら root でログインします(パスワードは VMDK を作った人に聞いてください)。

 以下、VMDK の元イメージでは、あまり他システムへの展開の考慮がなされていないものとします。ただし、最低でも VMDK をエクスポートする前に VMware Tools をアンインストールしておかないと、ネットワーク周りで余計なトラブルになるそうです。

キーボードの調整

 キーボードから ‘(‘ や ‘)’ を押してみて、想定どおりに入らない場合はキーボードが英語モードになっているので jp109 に変更します。

# localectl
  System Locale: LANG=ja_JP.UTF-8
     VC Keymap: us
     X11 Layout: us, jp
     X11 Variant: ,
# localectl set-keymap jp106
# localectl
  System Locale: LANG=ja_JP.UTF-8
     VC Keymap: jp106
     X11 Layout: jp
     X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

ここでいったんリブートします。

ネットワークの設定

再度 root で入って、ネットワークの設定を確認します。

image.png

 筆者の環境ではこのようになりました。NIC は enp0s3 と enp0s8 というデバイス名で認識しています。接続名(CONNECTION)は日本語で作成されているようで文字化けしています。

 SSH で入れさえすれば後はどうとでもなるのですが、ここでは単純にするために接続名は eth0, eth1 に変更し、さらに eth1 に固定 IP を振ることとします。

# nmcli con show > $$.txt
# ls
3958.txt                  # この数字はプロセスIDなので環境毎に変わります
# cat 3958.txt
NAME           UUID                 TYPE     DEVICE
■ ■ ■ 1        {ユニーク文字列1}     ethernet enps03
ensXX          {ユニーク文字列2}     ethernet  --
■ ■ ■ 2        {ユニーク文字列3}     ethernet --
# vi 3958.txt          # 以下のように修正
# (前の環境の忘れ形見と思われる ensXX も、合わせて削除します。)
# cat 3958.txt
nmcli con delete {ユニーク文字列1}
nmcli con delete {ユニーク文字列2}
nmcli con delete {ユニーク文字列3}
nmcli con add type eth ifname enps03 con-name eth0
nmcli con add type eth ifname enps08 con-name eth1
# sh 3958.txt
# nmcli dev
DEVICE TYPE     STATE                                  CONNECTION
enp0s3 ethernet connected                              eth0
ens0s8 ethernet connecting  (getting IP configuration) eth1
lo     loopback unmanaged

これでだいぶ見やすくなりました。次は IP アドレスを設定します。

# nmcli con mod eth1 ipv4.method manual ipv4.addresses 192.168.56.33/24 connection.autoconnect yes
# reboot

 再度ログインして確認すると、ようやく固定 IP が割り当てられました。ここまで来たら適当なアカウントを作成して、ホストマシンや他の VM から SSH で入れるようになると思います。

image.png

1
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
1
0