virtualbox vmで、Windows 7がインストールされている実際のパーティションを使用する方法は?


37

Ubuntu 12.04はにインストールされ/dev/sda5 、Windows 7 はにインストールされます/dev/sda1。Ubuntuを実行している場合、Virtualboxを使用してVMでWindows 7を実行したいと思います。Windows 7パーティションは1 TBで半分いっぱい、つまり大きいため、仮想ハードディスクにコピーしたくありません。

Virtualbox VMに実際のハードディスクを使用することは可能であることを読みましたが、見つけたさまざまな指示は互いに異なっており、動作させることができないようです。Ubuntu 12.04およびVirtualbox 2.1.12_Ubuntu r77245(最新のUbuntuがリポジトリをインストールした)で動作させる方法を知っている人はいますか?

動作する可能性のある方法を再試行したいので、どのように動作するかを投稿してください。


MSWINパーティションが1TiBなのはなぜですか?ただし、完全な解決策ではありません:可能であれば、そこにある必要のないものすべて(データ...メディアファイル?)を移動してから、パーティションをサイズ変更して、アプローチを容易にします。イメージルートを使用する場合、そのパーティションをクリアしてから縮小すると、小さい新しいパーティションの完全なイメージを作成するのに十分なスペースが残ります。:
アラステア

回答:


27

必要なコマンドは

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

これにより、特別なVMDK仮想ディスクファイル(Win7.vmdk)が作成されますが、これは実際にはホストディスクパーティションへのポインター/dev/sda1です。

理論的には、実際のディスクパーティションから直接実行するVMのディスクファイルとしてこれを使用できますが、...

  • (a)私はこれを試したことがないので、どれだけ信頼できるかわからない
  • (b)ライセンスキーと、検出された「ハードウェア」が大幅に変更されたとWindowsが判断したかどうかによって、Windowsアクティベーションで問題が発生する場合があります

ありがとうございました。アクティベーションの問題についても考えませんでした。それは私の計画を停止することは確実です。
ジャズ

1
さらに、それが機能したとしても(疑わしい)、ブートとVMの両方から実行すると、Windowsに深刻なダメージを与える可能性があります。
Takkat

@ ubnewbie2:私はおそらくこれを実験として、および/またはある種のボリュームライセンスキーを使用するときにのみ試してみて、おそらく一方向の操作と見なします。すなわち、あなたはそれを逆にしようとしてより多くの困難を抱えているでしょう。実際にWindows 7を実行し、UbuntuでVirtualBox VMを使用します。多くの場合、フルスクリーンモードで使用されるため、PCはLinuxのみを実行しているように見えます。
StarNamer

参考までに、逆にこれを試しました。Ubuntuを実行しているマシンをWin 7に変更する必要があったため、パーティションのサイズを変更して新しいパーティションを作成し、Win 7をインストールすることにより、スペースを解放しました。予約する最小の仮想ディスク。既存の「生」パーティションを使用して実行します。メモリは減少し、CPUコアが1つしか表示されないため(4ではなく)少し遅くなりますが、正常に動作します。
StarNamer

-最後にあるパーティションは、仮想ボックスが「見たい」パーティションのリスト(使用したいパーティション#ではなく) VBoxManage internalcommands --helpで、内部コマンドでできることやオプションの意味を示します。
ボートコーダー

16

はい、内部createrawvmdkコマンドでそれを行うことができます。これは、ディスクイメージ全体ではなく、実際のハードウェアへのポインタを作成します。

それを行うには2つの方法があります

  • A.(/ dev / sdbの)フルディスクイメージ

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B.パーティションイメージ

    @StarNamerが示したように、使用するパーティションは1つまたは少数です。

    1つの(/ dev / sda1)パーティションのイメージを作成するには:

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    / dev / sda2と/ dev / sda1をこの順序でマッピングするカスタムパーティションテーブルを作成するには:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

最も顕著な違いは、フルディスクイメージがディスク内にあるようにブートローダーとパーティションテーブルを正確に使用することです。そのため、理論上(以前はqemuでのみそれを行いました)、仮想マシンからOSをセットアップできます。そして、私の限られた経験から、私は完全なディスクイメージがまったく同じように機能すると言うことができますqemu -hda /dev/sdb

注:ユーザーを使用してディスクにアクセスする場合は、ディスクdiskvboxusersグループに追加する必要があります。たとえば、

sudo usermod -aG disk,vboxusers ubuntu

その後、コンピューターに再ログインするか再起動してください。

参考文献:


「フルディスクイメージは、ディスクにあるとおりにブートローダーとパーティションテーブルを使用します」-どのシナリオで、最初の(/ dev / sdb)または2番目(パーティションが指定されている)ですか?
naught101

1
また、VirtualBoxのは、そうでない場合は、あなたが取得するには、rootとして実行する必要があります Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101

3
「また、仮想ボックスはルートとして実行する必要があります」。実際、グループディスクのメンバーである必要があります。rootとしてvirtual-boxを実行するよりもはるかに安全です。

2
ここでは、Ubuntu 16.04をホ​​ストシステムとして使用し、Windows 10をゲストとして使用して、私にとってうまくいったことを示しsudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3ます。その方法で、WindowsパーティションとEFIブートローダーパーティションを含めました。その後、virtualbox.org / ticket / 7702にあるshilkaの指示に従い、cloverefiboot を追加しました。チャームのように機能します!
dzmanto

VirutalBox(およびVBoxManage)コマンドの接頭辞を付けsudo -g diskて、virtualboxへのアクセスのみを許可し、他のすべてのプロセスには許可しないこともできます。
Jan Hudec

0

「Immutable」と呼ばれるディスクオプションがあるため、理論的には、rawディスクにリンクするvmdkにこのオプションを選択しても、元のパーティションは変更されません。

これを行うには、[ファイル]の下にある[仮想メディアマネージャー]を開き、画像を選択して[変更]をクリックします(この画像がどのマシンにも接続されていないことを確認してください。これで、メディアタイプを「Immutable」に設定できます。

ただし、これはテストしていません。誰かが(もちろんテスト設定で)そうするなら、ここに報告するのは良いことです。

この考えに反対する考えを持っている人はいますか?


0

ここ数年、デュアルブートのWindowsとUbuntuを実行し、UbuntuパーティションもWindows VirtualBoxで起動して、Linuxがまだマスターしていないタッチスクリーン機能を利用しています。

以下のような手順でセットアップしました。

新しいマシンは、古いマシンの単一システムよりも両方のOSを同時に処理できます。

欠点:アップデートでVirtualBox接続が無効になった場合に備えて、セットアップに使用する指示を保存する必要があります(私の現在の問題)。


0

何回も試行した後、私はきちんとしたきれいなソリューションになりました:

  1. 仮想化するWindowsパーティションを起動します
  2. SysinternalsからDisk2VHDユーティリティをダウンロードします
  3. UEFIパーティションがある場合は次の手順従ってください
  4. CのVHD(VHD Xではない)イメージを作成します:パーティション、リカバリ、UEFI(存在する場合)、その他必要なもの
  5. Linuxに戻ってVirtualBoxを開き、Windowsオペレーティングシステムの仕様に応じてVMを作成します
  6. ポイント4で作成したVHDディスクをそのVMに接続します
  7. それでおしまい
  8. 利益

UEFIの場合のトラブルシューティング:

  1. VM設定のVirtualBoxで、[システム]タブの[EFIを有効にする]オプションをオンにします
  2. EFIシェルで動けなくなる場合は、次のコマンドを実行します。

    fs0:\EFI\Boot\bkpbootx64.efi
    

downvoteについてのコメントはありますか?
ギャリックス

これは数日前に起こったと思いますが、少なくとも故意ではなく、あなたに下票を与えたことを覚えていません。喜んで投票します、ごめんなさい。
userfuser

0

VirtualBoxには多くの欠点があります。私は数年前にそれを残します。ここで、qemu-kvmを使用し、他の優れた機能に加えて、ディスクイメージと同じ方法でディスクデバイスを使用するように構成できます。トリックは、仮想「-drive if = sd、id = sda、format = raw、file = / dev / sda」を構成することです。

しかし!仮想化を試みる前に、MSWをベアメタルで実行している間に最初にいくつかの変更を行う必要があります。適切なドライバーが存在する「ドライバー」フォルダーと、これらのドライバーを有効にしてシステム起動前に次のように実行します。

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

BSODを表示したくない場合は、仮想マシンに関して適切なドライバーを探す必要があります。

どのドライバーをアクティブにするかを言うのは困難です。最良の方法は、最初にテストシステムをインストールしてから、「Start」= dword:00000000でレジスタキーを探してテストシステムにインストールし、ベアメタルマシンでこれらのキーを設定することです。また、ベアメタルのMACアドレスを確認してqemu構成に配置することをお勧めします。システムが新しいアクティベーションを要求するのを防ぐことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.