- 物理パーティションにインストールしたOSをVirtual Boxで使う
- Windows 上の VirtualBox で実パーティション上の Linux を起動する
- Using a raw host hard disk from a guest
あたり.
Step 1. 仮想ディスクの作成
まず,vmdk 形式の仮想ディスクを作成する必要がある.VirtualBox 付属の VBoxManage コマンドを使うのだが,Linux で作成したディスクを Windows で使ったりは出来ないようだ.(出来れば楽だったんだが.もしかすると VirtualBox のバージョンが違ってたかも)
VBoxManage internalcommands createrawvmdk -filename FILE.vmdk -rawdisk /dev/sda
にて作成するが (この時はディスクにアクセスするため,root or 管理者権限が必要になる),デバイス名は Win -> "\\.\PhysicalDrive0", Mac -> "/dev/disk1" 等に読み変える.基本的にはこれで終了だが,この仮想ディスクを使っているゲスト OS から,ホスト OS で使っているパーティションにアクセスすると VirtualBox が落ちてしまうので,アクセス禁止にしておくのが無難だ.それには作成時にアクセスを許可するパーティションを指定してやればいい.今回の場合,
VBoxManage internalcommands createrawvmdk -filename FILE.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 3,5,6,7,8
とやって Linux 方面にのみアクセスするようにした.この状態で起動した場合でも,p1,p2 は見えなくなるわけではなく,単にアクセスエラーになる.従って fstab を書き換える等の手間は不要だ.
パーティションを限って .vmdk を作成すると,FILE.vmdk と FILE-pt.vmdk の 2 つのファイルが出来る.多分両方必要なのだと思うが,仮想ディスクとして指定するのは FILE.vmdk のほうだ.(両ファイルを同じ場所に置くことを推奨したい)
Step 2. 新規仮想マシンの作成
ディスクが出来たら VirtualBox を起動する.この時もディスクにアクセスするので root or 管理者権限が必要だ.新しい設定を作っていく途中で仮想ディスクとして上で作成した FILE.vmdk を指定してやれば OK.
(もっとも今回は,生 Arch が amd64 バイナリだったため,起動に失敗した.やれやれ)
(64bit ゲストを動かすためには,設定で 64bit を選択する必要がある)
Step 3. 起動
その状態で起動すると,不思議なことに生パーティションを使って起動できる.MBR は,/dev/sda のものが FILE.vmdk にコピーされているようだ.他サイトで説明されているように,ディスク作成時に指定してやることで好きな MBR を使うこともできる.また,読み書きするのに "-relative" オプションも不要.(ホストが Linux の時には必要?)
速度は,仮想ディスクを使う時よりもわずかに遅いようだ.他は変るところはないと思う.