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、最新のゲスト追加がインストールされています。
完全に機能する回避策を見つけました。 sda7
はLinuxをインストールしたパーティション、5,6,7
は仮想化するネイティブパーティション、「ceztko」は私のホーム:P
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のバグである可能性があります。しかし、ブートディスクにmbrとしてインストールすると、アクセスできないWindowsパーティションと混同されるgrubのバグだと思います。
あなたが言及した方法で「仮想化された」実際のハードディスクからUbuntuを起動するとすぐに、デュアルブート設定のGrubはおそらくあなたの物理ハードドライブの最初の(ブート)パーティションのMBRに存在するため、ブートマネージャーGrubは見つかりません。そこから、GrubはWindowsまたはUbuntuを起動するかどうかを決定します。
仮想マシンからUbuntuを起動する場合は、実際のシステムで必要なのと同じ方法でブートマネージャー(Grub)が必要です。
これを実現するには、UbuntuパーティションにGrubをインストールするか、仮想マシンに簡単に追加できるGrub用の小さなブートパーティションを作成する必要があります。詳細については こちら を、 GNU Grubマニュアル を読んでください。
警告:どちらの方法でも、デュアルブート設定が壊れたり、何か間違っているとWindowsまたはUbuntuシステムが起動できなくなる可能性があります。
ホストとゲストデータにアクセスするためのより安全な方法は、Ubuntuを10〜15 GBのVDIにインストールし、ホスト/home
をデータアクセス用にゲストOSにマウントすることです。そうすることで、ホストUbuntuインストールを中断せずにホストまたはゲストカーネルモジュールをロードすることもできます。
私は同様の問題を抱えており、少し異なった問題を解決しました。つまり、ネイティブLinuxを起動しませんでした。
.vmdk rawdiskに-partitionsパラメーターを指定した場合、MBRおよび後続のいくつかのセクターのイメージも作成され、元の物理セクターに影響を与えることなく仮想Linux内で直接上書きできます。参照用にvmdkファイルを確認してください。私の場合、フラットな画像は最初の32kbをカバーしていました。
仮想Linuxを初めて起動するには、たとえば SuperGrubDisk ISOイメージを使用できます。正常に起動した後、通常どおり、仮想環境下のローカルインストールからMBRを修正します。
仮想MBRにgrubをインストールする場合は、MBRがgrubイメージ全体に収まるほど大きくない可能性があることに注意してください。これに気づくのは、システムを起動しようとした場合のみです。この場合、ハードディスクの最初のセクターを表すフラット画像を拡大できます。それに応じて.vmdkファイルを調整する必要があります。
完全なソリューション:
OSローダーの通常の場所であるGrubは1つであり、パーティション内の「PBR上」にあります。そして、それは破壊に対して最も安全な場所であり、MBRに公開するのではありません。
そして、これにより、PBRをロードして実行することにより、Linuxが従来の方法でブートされます。 GAG は、マルチブートおよび/または論理パーティションをブートするニースプログラムです。 SystemRescueCd のようなCDでホストのツールと一緒に入手するのが最善です。 CDを作成するか、ISOファイルを使用して起動し、GAGを選択して構成します。
Linuxで許可されているように6か月間サスペンド/レジュームしない場合、Tuxから毎日挨拶されます。 GAGがその仮想MBRを書き換えるというヒントをありがとう。
また、GAGの著者に連絡できる場合は、次のように伝えてください。