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

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

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

答案1

好的,我自己找到了解决方案。现在,我想向您提供有关我使其正常工作的步骤的详细说明。

我的设置

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
    物理驱动器1表示第二次驾驶)

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

将 VMDK 文件添加到您的 Linux VM(客户机)

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

设置权限并挂载原始磁盘

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

cd /media
sudo mkdir DRIVENAME
sudo chown USERNAME DRIVENAME
sudo chgrp USERNAME DRIVENAME

(用适当的值替换 DRIVENAME 和 USERNAME)

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

更多信息

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

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

ddb.adapterType="ide"

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

ddb.adapterType="sata"

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

答案2

该磁盘将在您的客户机中显示为 /dev/sda1(请参阅 Virtual Box 的文档)。您需要将该驱动器挂载为读写。永久配置此磁盘的最简单方法是向 /etc/fstab 添加一行,例如:

/dev/sda1      /mnt/raw/disk-file/        ext4      defaults    0 2

如果您希望以读写方式重新安装驱动器,您可以发出以下命令:

mount -o remount,rw /dev/sda1 

再次,这是假设驱动器的设备是 sda1。如果您没有类似的东西,那么我会查看 dmesg 的输出,扫描带有“ATA”或“SCSI”的行,因为这将引导您找到驱动器的设备节点。通常很容易在 /dev/ 文件夹中找到它。只需查找 hd[abcd..][1234] 或 sd[abcd..][1234...]。

相关内容