web-dev-qa-db-ja.com

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

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がリポジトリをインストールした)で動作させる方法を知っている人はいますか?

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

36
Jazz

必要なコマンドは

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

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

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

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

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

それを行うには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とまったく同じように機能すると言うことができます。

注:ユーザーを使用してディスクにアクセスする場合は、diskおよびvboxusersグループに追加する必要があります。

Sudo usermod -aG disk,vboxusers ubuntu

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

さらに読む:

16
JLarky

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構成に配置することをお勧めします。システムが新しいアクティベーションを要求するのを防ぐことができます。

0
schweik

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

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

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

この考えに反するような考慮事項はありますか?

0
Esokrates

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

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

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

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

    fs0:\EFI\Boot\bkpbootx64.efi
    
0
garlix

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

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

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

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

0
Desprit