web-dev-qa-db-ja.com

指定されたパーティションでcreaterawvmdkコマンドを使用して作成されたvmdkでvirtualboxでネイティブUbuntuを実行できません

Win7 x64とUbuntu 11.10 x64のデュアルブートセットアップを単一のHDDに持っています。

Win7ホストで実行されているVirtual-box内で、ゲストOSとしてネイティブUbuntuを実行したかった。

次のコマンドを使用して、パーティションを一覧表示しました。

C:\ >vboxmanage internalcommands listpartitions -rawdisk \\.\physicaldrive0
Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)
1       0x07  0   /32 /33  153 /27 /2           1200         2048
2       0x07  153 /27 /3   1023/254/63        363337      2459648
5       0x82  1023/254/63  1023/254/63          9537    746575872
6       0x83  1023/254/63  1023/254/63         46430    766107783
7       0x83  1023/254/63  1023/254/63         46431    861200384
4       0x07  1023/254/63  1023/254/63         10000    956291072

次に、vmdkファイルを次のように作成しました(ubuntuパーティション5、6、7を指定):

C:> vboxmanage internalcommands createrawvmdk -filename "C:\ ubuntu_01.vmdk" -rawdisk \。\ physicaldrive0 -partitions 5,6,7


vmdkファイルは正常に作成されましたが、VMを作成してこの仮想ドライブを指定すると、VMが起動せず、空白の黒い画面に白い画面が表示されます左上隅のカーソル。 Grubブートメニューも表示されません。

次に、パーティションを指定せずに別のvmdkファイルを作成しました。

C:> vboxmanage internalcommands createrawvmdk -filename "C:\ ubuntu_02.vmdk" -rawdisk \。\ physicaldrive0

今回はVMが起動し、VM内からubuntuが正常に起動します(grub 2起動メニューが表示され、Ubuntuを選択すると、正常に起動します)。

Virtualboxのゲストubuntu OSにディスク全体ではなく、特定のネイティブubuntuパーティションのみを使用するにはどうすればよいですか?助けてください。

ホスト:Win 7 x64
ゲスト:Ubuntu 11.10 x64
Vboxバージョン:4.1.6 r74713、最新のゲスト追加がインストールされています。

4
Zaki

完全に機能する回避策を見つけました。 sda7はLinuxをインストールしたパーティション、5,6,7は仮想化するネイティブパーティション、「ceztko」は私のホーム:P

  • native linuxから、grubをnative linuxパーティションSudo grub-install --force /dev/sda7に再インストールします
  • パーティションブートセクタをホームにコピーします:# dd if=/dev/sda7 of=/home/ceztko/virtualbox-native.mbr bs=512 count=1
  • virtualbox-native.mbrをWindowsインストールにコピーします
  • Windowsから再起動し、管理者プロンプトから:

    VBoxManage internalcommands createrawvmdk -filename C:\users\ceztko\ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 5,6,7 -mbr c:\users\ceztko\Dropbox\resources\virtualbox-native.mbr

  • VirtualBoxを実行し、新しい仮想ドライブを仮想マシンに割り当てます。
  • 楽しい!

これはVirtualboxのバグである可能性があります。しかし、ブートディスクにmbrとしてインストールすると、アクセスできないWindowsパーティションと混同されるgrubのバグだと思います。

4
ceztko

あなたが言及した方法で「仮想化された」実際のハードディスクからUbuntuを起動するとすぐに、デュアルブート設定のGrubはおそらくあなたの物理ハードドライブの最初の(ブート)パーティションのMBRに存在するため、ブートマネージャーGrubは見つかりません。そこから、GrubはWindowsまたはUbuntuを起動するかどうかを決定します。

仮想マシンからUbuntuを起動する場合は、実際のシステムで必要なのと同じ方法でブートマネージャー(Grub)が必要です。

これを実現するには、UbuntuパーティションにGrubをインストールするか、仮想マシンに簡単に追加できるGrub用の小さなブートパーティションを作成する必要があります。詳細については こちら を、 GNU Grubマニュアル を読んでください。

警告:どちらの方法でも、デュアルブート設定が壊れたり、何か間違っているとWindowsまたはUbuntuシステムが起動できなくなる可能性があります。


安全な方法:

ホストとゲストデータにアクセスするためのより安全な方法は、Ubuntuを10〜15 GBのVDIにインストールし、ホスト/homeをデータアクセス用にゲストOSにマウントすることです。そうすることで、ホストUbuntuインストールを中断せずにホストまたはゲストカーネルモジュールをロードすることもできます。

4
Takkat

私は同様の問題を抱えており、少し異なった問題を解決しました。つまり、ネイティブLinuxを起動しませんでした。

.vmdk rawdiskに-partitionsパラメーターを指定した場合、MBRおよび後続のいくつかのセクターのイメージも作成され、元の物理セクターに影響を与えることなく仮想Linux内で直接上書きできます。参照用にvmdkファイルを確認してください。私の場合、フラットな画像は最初の32kbをカバーしていました。

仮想Linuxを初めて起動するには、たとえば SuperGrubDisk ISOイメージを使用できます。正常に起動した後、通常どおり、仮想環境下のローカルインストールからMBRを修正します。

仮想MBRにgrubをインストールする場合は、MBRがgrubイメージ全体に収まるほど大きくない可能性があることに注意してください。これに気づくのは、システムを起動しようとした場合のみです。この場合、ハードディスクの最初のセクターを表すフラット画像を拡大できます。それに応じて.vmdkファイルを調整する必要があります。

1
user1149304

完全なソリューション:

OSローダーの通常の場所であるGrubは1つであり、パーティション内の「PBR上」にあります。そして、それは破壊に対して最も安全な場所であり、MBRに公開するのではありません。

そして、これにより、PBRをロードして実行することにより、Linuxが従来の方法でブートされます。 GAG は、マルチブートおよび/または論理パーティションをブートするニースプログラムです。 SystemRescueCd のようなCDでホストのツールと一緒に入手するのが最善です。 CDを作成するか、ISOファイルを使用して起動し、GAGを選択して構成します。

Linuxで許可されているように6か月間サスペンド/レジュームしない場合、Tuxから毎日挨拶されます。 GAGがその仮想MBRを書き換えるというヒントをありがとう。

また、GAGの著者に連絡できる場合は、次のように伝えてください。

  1. 永遠の感謝
  2. 彼は完全に読み込まれたメイン画面で構成を開始し、アイコンを削除、並べ替え、変更する必要があります。これにより、開始するために多くの操作を行う必要がなく、すでに使用可能な構成がすぐに作成されます。
0
Papou