编辑: 我已经按照截图所示将usb连接到VirtualBox。
所以我想知道是否还有其他的方法可以从USB驱动器启动?
plpbt.iso
并将其保存在某个位置。打开虚拟机的设置,并附加ISO文件:
为USB设备添加过滤器:
启动虚拟机并在菜单中选择“USB”选项:
如果一切顺利,现在机器应该能够从USB设备启动。
编辑:2018年3月7日
这里有一点需要注意。当您重新启动时,如果将USB驱动器留在计算机中,可能会更改/dev/sd
驱动器字母的指定,导致原始的usb.vmdk
文件指向错误的驱动器,因此无法在VirtualBox中引导。作为一个测试,我在我的系统中留了一个。在重新启动之前,它是/dev/sdi
,重新启动后变成了/dev/sdc
。当您重新启动计算机进行任何更改时,请在重新启动之前拔掉USB驱动器。我正在研究是否可以根据驱动器的UUID创建原始磁盘,因为那样不会改变。
sudo vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb
或者
sudo VBoxManage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb
RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully.
sudo chown $USER:$USER ~/usb.vmdk
.vmdk
文件添加到您的VirtualBox虚拟机中,并确保可以引导它。
编辑:sudo usermod -a -G vboxusers username
要将您的用户添加到disk
组,请运行以下命令:
注意:将您的用户添加到disk组可能存在危险并带来安全风险。这和拥有sudo访问权限以对原始磁盘进行写入一样危险。
sudo usermod -a -G disk username
然后你必须重新启动系统,以使更改生效。
重新启动之前:
重启后: 希望这能帮到你!disk
组后,是否注销并重新登录或者重启了一下? - Terrancesudo
。 - Terrance"%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename PhysicalDrive1.vmdk -rawdisk \\.\PhysicalDrive1
пјҢе…¶дёӯPhysicalDrive1
дёӯзҡ„й©ұеҠЁеҷЁеҸ·жҳҜеңЁзЈҒзӣҳз®ЎзҗҶдёӯжҳҫзӨәзҡ„ж•°еӯ—гҖӮ - EM0/dev/sdd
而不是/dev/sdd1
?我之前错误地使用了后者,导致出现了这个错误。 - jirinovo我是几天前来到这篇帖子的。我不想使用Plop引导管理器,因为我的USB闪存已经可启动。
所以我尝试通过创建vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb
来将USB闪存指向VMDK磁盘(如Terrance的回答中所述)。
不幸的是,这种方法没有奏效...我对usb.vmdk
磁盘进行了chmod
和chown
操作,然后能够将其连接到虚拟机,但它根本无法工作。
最后,我尝试了另一个解决方案,这个解决方案完美地起作用。在这里分享一下(感谢Gean Santos的研究):
/dev/sdb
,运行Sabayon Linux);通过将原始设备(即USB闪存驱动器)转换为VirtualBox磁盘来创建一个.vmdk
磁盘
sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
现在,您已经从可引导的USB闪存驱动器创建了一个usb.vmdk
磁盘。我还尝试使用dd
将USB闪存驱动器复制到映像文件,并从映像文件创建.vmdk
磁盘。这也可以正常工作,以及以前的方式创建的.vdi
磁盘(或从映像文件创建的磁盘)
现在,为了让VirtualBox能够访问该文件,请为创建的磁盘授予权限。这只是意味着将文件所有者更改为属于vboxusers组的用户。如果您的VirtualBox安装正常运行,则该所有者可能是您自己:
sudo chown `whoami`:`whoami` ./usb.vmdk
现在,您只需将usb.vmdk
磁盘附加到虚拟机即可。但是,它必须附加到IDE控制器。我尝试使用SATA但没有成功。
此时,你没问题。
只需要启动新的虚拟机,按下 F12
键,然后选择可启动的驱动器。
享受吧!
vboxmanage
的convertfromraw
命令,只支持converttoraw
、converthd
和createrawvmdk
命令。 - Luke Hutchisondd if=/dev/sdc of=myusbkey.iso
status=progress
以查看dd
的进度 - Eido95从http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download下载rEFInd可引导iso文件并解压缩。
在VirtualBox中打开虚拟机设置,并附加rEFInd CD ISO文件。
确保在“系统”选项卡的虚拟机设置中启用了“启用EFI(仅限特殊操作系统)”选项。
启动虚拟机,您应该看到rEFInd引导菜单:
我不想以root用户身份运行Virtualbox。 我不希望我的用户属于磁盘组,具有对所有磁盘的完全权限。
所以这是我找到有效方法:
找出内存棒是哪个sd。在下面的说明中,它是sdc
。
卸载内存棒
su -
chmod 666 /dev/sdc1
chmod 666 /dev/sdc
exit # 以普通用户身份运行以下命令:
VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc
su - # 再次切换回root用户:
chmod 777 usb.vmdk
chmod 666 /dev/sdc
挂载usb.vmdk到virtualbox虚拟机
chmod 666 /dev/sdc
完成后,为了安全起见,重置sdc1权限:
chmod 660 /dev/sdc1
su
,它会切换用户到root身份! - Evan Teran