如何在Win7主机上使用virtualbox获得原始磁盘(ext4)的来宾操作系统(linux)的写访问权限?

Mar*_*arc 5 linux windows-7 virtualbox permissions

我按照第 9 章的描述创建了 vmdk 文件。高级主题并将其添加到我的来宾虚拟机中。之后,我可以在我的 linux 来宾虚拟机中安装整个原始磁盘。现在我可以读取 ext4 文件系统,但无法写入。如何在不将文件系统更改为 NTFS 的情况下获得写访问权限?在 Win7 中,我无法为该硬盘设置权限,因为它是具有未知文件系统的原始硬盘。

Mar*_*arc 4

好吧,我自己找到了解决方案。现在,我想向您详细说明我为使其正常工作而采取的步骤。

我的设置

VirtualBox 4.2.0 r80737
主机: Windows 7(64 位)
访客: Ubuntu 12.04 LTS(64 位)

Win7(主机)中的磁盘配置

  1. 关闭磁盘上任意分区上所有打开的程序或文档以进行透传。
  2. 以管理员身份运行DISKPART(命令行实用程序)。
  3. 键入LIST DISK以获取所有可用磁盘及其相关 ID 的列表。(LIST PARTITIONS如果您只想使用整个磁盘的一部分)
  4. 使用时请谨慎选择硬盘SELECT DISK
  5. 使用 使磁盘脱机OFFLINE DISK。所有磁盘卷将从 Windows 资源管理器中消失。
  6. 键入ATTRIBUTES DISK CLEAR READONLY重要!)以确保磁盘可写。
  7. 验证与ATTRIBUTES DISK.

Win7(主机)中创建VMDK文件

  1. 以管理员身份运行cmd(命令行实用程序)。
  2. 类型cd "C:\Program Files\Oracle\VirtualBox"
    (您的路径可能因 VirtualBox 位置而异)。
  3. 类型VBoxManage internalcommands createrawvmdk -filename /path/RawDisk.vmdk -rawdisk \\.\PhysicalDrive1
    PhysicalDrive1表示第二个驱动器)

(来源:VirtualBox手册:高级存储配置

将 VMDK 文件添加到您的 Linux VM(来宾)

  1. 打开 VirtualBox 管理器
  2. 选择Linux VM >设置>存储> IDE 控制器>添加附件>添加硬盘>选择现有磁盘>选择 V​​MDK 文件
  3. 启动Linux虚拟机

设置权限并挂载原始磁盘

如果您使用 Ubuntu,那么您应该已经在文件资源管理器的导航窗格中看到该驱动器。如果您现在单击它,您只需将驱动器以只读方式安装到/media/drivename. 为了防止这种情况,请打开一个终端并将以下内容放入其中:

cd /media
sudo mkdir DRIVENAME
sudo chown USERNAME DRIVENAME
sudo chgrp USERNAME DRIVENAME
Run Code Online (Sandbox Code Playgroud)

(将 DRIVENAME 和 USERNAME 替换为正确的值)

重新打开文件资源管理器并通过在导航窗格中单击驱动器名称来安装该驱动器。现在您应该能够在原始硬盘上创建文件和文件夹。

更多信息

当然,可以通过 永久安装磁盘/etc/fstab,但随后您必须安装sudo mount设备,并且通过导航窗格进行的图形安装将不再起作用。

创建 VMDK 文件后,我注意到其中有以下行:

ddb.adapterType="ide"
Run Code Online (Sandbox Code Playgroud)

该选项是默认设置的。如果您仍然遇到问题并且您的原始磁盘不是 IDE 磁盘而是 SATA,只需将此行更改为:

ddb.adapterType="sata"
Run Code Online (Sandbox Code Playgroud)

当然,您必须将 VMDK 文件作为 SATA 控制器添加到您的 VM,而不是 IDE 控制器。