ハードドライブ – Virtual Boxで物理ハードディスクを使用する

hard-drive operating-systems virtual-machine virtualbox virtualization

Virtual Boxを使用して、セカンダリの物理ディスクにOSをインストールし、Virtual Boxと一般的なセカンダリOSのインストールの両方(別々の時間に)で起動するにはどうすればいいですか?

  87  None  2012-10-28


ベストアンサー

この質問が投稿されたときに、私はドヤ顔でコメントをしてしまいました


ストレートな指示

今日、物理ドライブからの起動に成功しました。この達成には;が必要です

  • 60分ストレート読み
  • これを書くこと30分
  • VirtualBoxで様々なオプションを20分ほど試してみました

    読者の皆様、ディスクがこのような方法でアクセスされたときに、データを消去することが同じように簡単にできるという事実に注意を向けてください。これを達成する方法についての手順は、演習として残されています

写真(実際にありました

grub 2

1.実際のドライブから読み取るvmdkドライブを作成します

Linux ホスト上で、物理ハードディスク全体を表すイメージを作成するには、コマンドを使用します (実際のデータはすべて物理ディスクに保存されるため、実際のデータは含まれません)

VBoxManage internalcommands createrawvmdk \
-filename /path/to/file.vmdk \
-rawdisk /dev/sda

物理ディスクデバイスファイル/dev/sdaへの読み込みアクセス権を持っている必要があります。これを達成するには、デバイスファイルの所有者とアクセス権を変更するか、 VBoxManage internalcommands createrawvmdk… を root として実行してください (コマンドの前に sudo を付けてください)

Windowsホスト上では、上記のデバイス仕様の代わりに、例えば、\.\PhysicalDrive0を使用します。Mac OS X ホストでは、例えば /dev/disk1 (そして、disk1 の全てのパーティションをアンマウントする) を使用します

(all on one line)
C:\VirtualBoxDrives>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
internalcommands createrawvmdk
-filename C:\VirtualBoxDrives\raw-0.vmdk
-rawdisk \\.\PHYSICALDRIVE0

(output)
RAW host disk access VMDK file C:\VirtualBoxDrives\raw-0.vmdk created successf..

 

2.vmdk ドライブを VM に割り当てます

VM -> 設定 -> ストレージ -> ide / sata を追加 -> 既存のディスクを選択 -> 参照します

assign

 

3.ライトスルーモードのいずれかを設定します

File -> Virtual Media Manager -> e.g raw-0.vmdk -> [modify] -> (o) ライトスルー

  • すべてのドライブに繰り返してください

set writethrough

 

3.ブート優先度の並べ替え (セミオプション)

VM -> Settings -> System -> Boot order

[./] Hard Disk
[./] CD/DVD
[  ] Floppy
[  ] Network

VM -> 設定 -> ストレージ -> コントローラ。SATA -> 例: raw-5.vmdk -> ハードディスク。Sataポート0

 

関連する章(マニュアル

  • 第9章 先進的なトピックを紹介しています。先進的なトピック

    • 9.9.高度なストレージ構成
      • 9.9.1.ゲストからの生のホストハードディスクを使用する
      • 9.9.1.1.物理ハードディスク全体へのアクセス
  • 第5章 仮想ストレージ仮想ストレージ

    • 5.2.ディスクイメージファイル(VDI、VDK、VHD、HDD)
    • 5.3.仮想メディアマネージャー
    • 5.4.特殊な画像書き込みモード

Windowsで物理ドライブを列挙する

C:\Users\win7>wmic diskdrive list brief

Caption                               DeviceID            Model                                 Partitions  Size
Samsung SSD 840 EVO 250GB ATA Device  \\.\PHYSICALDRIVE3  Samsung SSD 840 EVO 250GB ATA Device  6           250057228288
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE1  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE2  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE0  ST1000DM003-1CH162 ATA Device         5           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE5  WDC WD1000DHTZ-04N21V0 ATA Device     6           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE4  WDC WD1000DHTZ-04N21V0 ATA Device     5           1000202273280
ST1000DM 003-1CH162 SCSI Disk Device  \\.\PHYSICALDRIVE6  ST1000DM 003-1CH162 SCSI Disk Device  5           1000202273280

PowerShellでドライブ番号を取得することもできます

PS C:\ Get-Disk

119  Ярослав Рахматуллин  2014-05-20


VirtualBox のドキュメントでは、生のハードディスクにアクセスすることを指しています

http://www.virtualbox.org/manual/ch09.html#rawdisk

Linux ホスト上で、物理ハードディスク全体を表すイメージを作成するには、コマンドを使用します (実際のデータはすべて物理ディスクに保存されるため、実際のデータは含まれません)

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
-rawdisk /dev/sda

これによりイメージの /path/to/file.vmdk が作成され (絶対値でなければなりません)、すべてのデータは /dev/sda から読み書きされます

Linux ホスト上で raw パーティションサポート用の特別なイメージを作成するには (既に述べたように、少量のデータを格納します)、コマンドを使用します

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
-rawdisk /dev/sda -partitions 1,5

VirtualBox は Linux ホストと同じパーティション番号を使用します。その結果、上記の例で指定された番号は、それぞれ拡張パーティションの最初のプライマリパーティションと最初の論理ドライブを参照しています

caveatsとWindows固有の説明については、ドキュメントを参照してください

11  trpt4him  2012-10-31


私は、Ubuntuが物理的なext4フォーマットされたパーティションにインストールされているmacOS上でLinux VM(具体的にはUbuntu 19.10)を起動しようとしていました。私が見つけた答えの多くは、@ЯрославРахматуллинからのものを含めて、私はそこに私のほとんどの方法を得たが、私は次のようなエラーメッセージを取得し続けた

FATAL: 起動可能なメディアが見つかりませんでした。システムが停止しました

ある回答では、LiveCD に起動してから GRUB の設定を変更して対処することについて言及しています。しかし、私のMacにはGRUBがインストールされていません。結局、私の状況の鍵は、VMが物理ディスク上のEFIパーティションにアクセスできるようにすることと、VMの設定でEFIサポートを有効にすることだとわかりました

enter image description here

以下は私のホストMacマシンからのdiskutil listの出力です

/dev/disk0 (internal, physical):
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *251.0 GB   disk0
1:                        EFI NO NAME                 536.9 MB   disk0s1
2:                  Apple_HFS Macintosh HD            161.1 GB   disk0s2
3:       Microsoft Basic Data Development             9.1 GB     disk0s3
4:                  Apple_HFS Recovery HD             650.0 MB   disk0s4
5:           Linux Filesystem                         79.2 GB    disk0s5

これより、以下のように VMDK ファイルを生成し、ゲスト VM に EFI パーティションへの読み取り専用アクセスと NTFS (3) パーティションと Ext4 (5) パーティションへの完全な書き込みアクセスを与えました

sudo VBoxManage internalcommands createrawvmdk -filename disk0.vmdk -rawdisk -partitions 1r,3,5

これでMacOSとUbuntuのデュアルブートができるようになり、すでにMacOSに入っているときは、必要に応じてVMとしてUbuntuを起動することができるようになりました。嬉しい日々です

2  John Rix  2019-11-07


ただ、Windows 10でこれを行う方法を詳しく説明したい

  1. 物理ディスクIDを取得します

    • Open powershell
    • Type ‘Get-Disk’
    • ディスクを探してください(番号欄の値をメモしてください)
  2. 読み取り専用属性を明確にする(クレジット。https://forums.virtualbox.org/viewtopic.php?f=6&t=38914#p175089のKorkman。)

    • DISKPART(コマンドラインユーティリティ)を実行します
    • ディスク番号はゼロから始まります。パーティションがどのように見えるか知っている場合は LIST PARTITION で、ディスクサイズを見るには LIST DISK で大まかに確認することができます
    • OFFLINE DISKを使用してディスクをオフラインにします
    • ATTRIBUTES DISK CLEAR READONLY
    • ATTRIBUTES DISKで確認してください
  3. VirtualBoxサービスのアカウントを変更(Kapodamyにクレジット。https://unix.stackexchange.com/questions/284704/verr-access-denied-when-trying-to-add-a-raw-disk-to-virtual-box)。)

    • Runでservices.mscを実行します
    • 仮想ボックスサービスを探し、ログオンタブのアカウントを管理者に変更します
    • サービスの再起動
  4. VMDKディスクの作成

    • 管理者としてコマンドプロンプトを開きます
    • type “C:Illustrator” “C:Illustrator” “C:Illustrator” “C:Illustrator” “C:Illustrator” “C:Illustrator” “C:Illustrator” “C:Illustrator
    • type “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:Illustrator “C:II”
  5. VMの起動

2  James  2020-05-31


MacOS 10.14:

  1. 実ディスクに対応する仮想ディスクファイルを作成します

    # First, find the device you want to use inside Virtual Box:
    diskutil list
    
    # Create the virtual disk
    sudo VBoxManage internalcommands createrawvmdk \
    -filename ~/realdisk.vmdk \
    -rawdisk /dev/disk2
    
  2. スーパーユーザーとしてVirtualBoxを起動します

    sudo VirtualBox
    
  3. Storage --> Controller: Sata~/realdisk.vmdkを追加します

1  Max Malysh  2019-08-25


私はWindows 10でこれを動作させることができず、VMDKをアタッチしようとしたときにVERR_ACCESS_DENIEDエラーが出続けていました

しかし、いくつかの仕掛けで(ようやく)これがうまくいくようになりました

  1. PowerShellを管理者として開く(理由はよくわからないが、管理者のコマンドプロンプトでは一部のコマンドが動作しなかった)

  2. 以下のコマンドを実行してVMDKを作成します

    VBoxManage.exe internalcommands createrawvmdk \
    -filename "path\to\physical\disk\file.vmdk" \
    -rawdisk \\.\PhysicalDrive[n]
    

    …ここで、path\to\physical\disk\file.vmdkはディスクを表すために作成されるファイルで、[n]はディスク番号です(この番号を取得するにはディスク管理を使用します)

  3. 次のコマンドを実行して、VMDKをアタッチします

    VBoxManage.exe storageattach [VM NAME] \
    --storagectl [CONTROLLER] \
    --device 0 \
    --port 0 \
    --type hdd \
    --medium "path\to\physical\disk\file.vmdk"
    

    …ここで、[CONTROLLER]はアタッチするディスクコントローラの名前です – 私の場合は “IDE “です

  4. 次のコマンドを実行してVMを起動します

    VBoxManage.exe startvm [VM NAME]
    

1  Nathan Osman  2019-10-26


私は、vboxゲスト(ホストとしてubuntuを実行している)に生のvmdkファイルを追加するには、vmdkファイルを構築する前に、/dev/sdxファイルのパーミッションを777に変更する必要があることを発見しました

1  user1130560  2020-01-16


私は、受け入れられた答えを次のようにすることによって、WindowsホストとLinuxゲストで主に動作するようになりました

しかし、私はWindowsの物理ドライブ番号が再起動しても同じままではないという問題に遭遇しました。これは明らかにディスクの番号付けのために予想される動作である

PHYSICALDRIVE numbering keeps changing between reboots for my NVMe device - Microsoft Q&A
I have few NVMe storage devices connected to my system. After booting to windows, "wmic diskdrive" command under power shell lists device with "...

ですから、技術的には、Windows ホストと Linux ゲストがある場合は、VM を実行する前に wmic diskdrive list brief の出力をもう一度確認してください。もし、VM を作成したときと番号が違っていたら、VM を実行しないでください。そうしないと、Windows のハードドライブを内部から起動してしまう危険性があり、これは警告されている危険な動作です (私の場合は、永久的な損傷は起きていないようですが)。あるいは、ハードドライブを入れ替えた第二のVMを作成して、wmic diskdrive list briefの出力に基づいて起動するVMを選択することもできます。スクリプトでこれらすべてを行うことができるはずですが、スクリプトはシステムに依存します

あるいは、可能であれば、Linux をホストにして Windows をゲストにすることもできます。Linuxはコメントで述べたように、/dev/disk/by-id/...を使って一貫したドライブ識別を得ることができます

1  user2596667  2020-05-18


私はLinuxホストとWindows 10ゲストを使用しています。私の問題は、Windowsの物理ドライブが起動するたびに変わることです – /dev/sdcから/dev/sdmまでの範囲です

私の解決策は、起動時に実行されるスクリプトを作成することでした。WIN10ラベルのあるドライブを検出し、sedを使用して.vmdkファイル内のデバイスを現在のドライブデバイスに置き換えます

#!/bin/bash

windrive=$(blkid | grep WIN10 | awk 'END{print $1}')

drive_device="${windrive: -5:3}"

sed -i "s/sd./${drive_device}/g" "/home/testuser/VirtualBox VMs/Win10/test.vmdk"

0  Coop.Computer  2020-07-25


タイトルとURLをコピーしました