我按照描述创建了 vmdk 文件第 9 章 高级主题并将其添加到我的客户虚拟机中。之后,我可以在我的 Linux 客户虚拟机中安装整个原始磁盘。现在我可以读取 ext4 文件系统,但无法写入。如何在不将文件系统更改为 NTFS 的情况下获得写入访问权限?在 Win7 中,我无法设置该硬盘的权限,因为它是一个具有未知文件系统的原始硬盘。
答案1
好的,我自己找到了解决方案。现在,我想向您提供有关我使其正常工作的步骤的详细说明。
我的设置
VirtualBox 4.2.0 r80737
主持人:Windows 7(64 位)
客人:Ubuntu 12.04 LTS(64 位)
Win7中的磁盘配置(主机)
- 关闭要穿透的磁盘上任何分区上所有打开的程序或文档。
- 以管理员身份运行
DISKPART
(命令行实用程序)。 - 键入
LIST DISK
以获取所有可用磁盘及其相关 ID 的列表。(LIST PARTITIONS
如果您只想使用整个磁盘的一部分) - 选择硬盘时要慎重使用
SELECT DISK
。 - 使用 将磁盘脱机
OFFLINE DISK
。所有磁盘卷将从 Windows 资源管理器中消失。 - 类型
ATTRIBUTES DISK CLEAR READONLY
(重要的!) 以确保磁盘可写入。 - 使用 进行验证
ATTRIBUTES DISK
。
Win7(主机)中创建VMDK文件
- 以管理员身份运行
cmd
(命令行实用程序)。 - 类型
cd "C:\Program Files\Oracle\VirtualBox"
(您的路径可能因 VirtualBox 位置而异)。 - 类型
VBoxManage internalcommands createrawvmdk -filename /path/RawDisk.vmdk -rawdisk \\.\PhysicalDrive1
(物理驱动器1表示第二次驾驶)
(来源:VirtualBox 手册:高级存储配置)
将 VMDK 文件添加到您的 Linux VM(客户机)
- 打开 VirtualBox 管理器
- 选择 Linux VM>设置>贮存>IDE 控制器>添加附件>添加硬盘>选择现有磁盘>选择 VMDK 文件
- 启动 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...]。