在Virtual Box中使用物理硬盘


Answers:


88

最初发布此问题时,我发表了自鸣得意的评论(“直截了当”),几个月后发现自己在此页面上寻找相同的答案


直接说明

今天,我设法从物理驱动器启动。这项成就是必需的;

  • 60分钟直读
  • 30分钟写这篇
  • 在VirtualBox中尝试其他选项的20分钟

    亲爱的读者,您的注意力集中在这样一种事实上:以这种方式访问​​光盘时,杀死数据同样是直截了当的。如何完成此操作的过程留给练习...

图片(确实发生了:)

rub 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->选择现有磁盘->浏览

分配

 

3.设置一种直写模式。

文件->虚拟媒体管理器->例如raw-0.vmdk-> [修改]->(o)直写

  • 对所有驱动器重复

设置直写

 

3.重新排序引导优先级(半可选)

VM->设置->系统->引导顺序

[./] 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,VMDK,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

7
非常感谢您提供清晰的分步说明。但是,我遇到的一个问题是虚拟.vmdk文件可以由我作为用户拥有,但是当我启动VirtualBox并尝试访问它时,会生成错误。这似乎是因为物理/ dev / sda由root拥有。我尝试更改所有权,但没有喜悦-仍然是同样的错误。以root身份启动VirtualBox确实可以工作(尽管我始终以root身份运行任何应用程序都非常谨慎,而这样的应用程序有可能发生太多错误,这让我很傻)。

大多数发行版都有一个特殊的组,例如“ disk”或“ block”。/ dev / sd中的Bock设备?属于那些组之一的用户应该可以写。检查您的发行版文档。
ЯрославРахматуллин

1
有人在Windows 10上正常工作吗?我收到此错误:The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).,即使以管理员身份运行VirtualBox时也是如此。
szx

2
@szx我按照以下步骤
Epigene '17

1
一个人如何通过原始磁盘访问意外杀死其数据?我知道知道不该做的事情将有助于避免问题。指令看起来如此简单……
Wowfunhappy

6

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主机上为原始分区支持创建特殊映像(如前所述,它将包含少量数据),请使用以下命令

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

VirtualBox使用与Linux主机相同的分区编号。结果,在上面的示例中给出的数字将分别引用扩展分区中的第一个主分区和第一个逻辑驱动器。

请参阅说明文件和Windows特定说明。


8
仅链接的答案不是最佳答案,并且当有更好的答案时,绝对不值得接受。*眼色*
ЯрославРахматуллин

0

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. 添加~/realdisk.vmdkStorage --> Controller: Sata


0

我在最长的时间内无法在Windows 10中正常工作。VERR_ACCESS_DENIED尝试附加VMDK时,我一直收到错误消息。

但是,我终于可以通过一些技巧使它起作用:

  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. 执行以下命令,启动虚拟机。

    VBoxManage.exe startvm [VM NAME]
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.