問題描述
我的Ubuntu 12.04安裝在/dev/sda5
和Windows 7的/dev/sda1
上。當我運行Ubuntu時,我想使用Virtualbox在VM中運行Windows 7。 Windows 7分區是1 TB並且是半滿的,即大,所以我不想將其複製到虛擬硬盤中。
我已經讀過可以將一個真正的硬盤用於Virtualbox VM,但是我發現的各種指令彼此不同,我似乎無法讓它工作。有沒有人知道如何讓它在Ubuntu 12.04和Virtualbox 2.1.12_Ubuntu r77245(最新的Ubuntu安裝了repos)工作?
請發布它是如何工作的,因為我想重試任何可行的方法。
最佳解決辦法
你想要的命令是
VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1
這將創建一個特殊的VMDK虛擬磁盤文件(Win7.vmdk),它實際上是指向主機磁盤分區/dev/sda1
的指針。
理論上,您可以將此作為VM的磁盤文件直接從實際磁盤分區運行,但是…
-
(a)我從來沒有試過這個,所以不知道它有多可靠
-
(b)您可能會遇到Windows激活問題,具體取決於您的許可證密鑰以及Windows是否確定檢測到的’hardware’已發生重大變化
次佳解決辦法
是的,您可以使用內部createrawvmdk
命令執行此操作,該命令不會創建整個磁盤映像,而是指向實際硬件的指針。
有兩種方法可以做到這一點
-
A.完整磁盤映像(/dev /sdb)
sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
-
B.分區圖像
正如@StarNamer所示,您隻能使用一個或幾個分區。
要創建隻有一個(/dev /sda1)分區的映像:
sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
要創建自定義分區表,它將按順序映射/dev /sda2和/dev /sda1:
sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
最顯著的區別在於,完整磁盤映像將完全像在磁盤中一樣使用引導加載程序和分區表,因此理論上(我以前隻在qemu中執行過此操作)您將能夠從虛擬機中設置操作係統。根據我有限的經驗,我可以說完整的磁盤映像將完全像qemu -hda /dev/sdb
一樣工作。
注意:如果您使用用戶訪問磁盤,則需要將其添加到disk
和vboxusers
組,例如
sudo usermod -aG disk,vboxusers ubuntu
然後確保你re-login或重新啟動你的電腦。
進一步閱讀:
-
VirtualBox文檔:Using a raw host hard disk from a guest
-
VirtualBox boots only in UEFI Interactive shell(僅包括用於UEFI安裝的ESP將不起作用)
-
更好的是,您可以在創建VMDK時使用install MBR into a file並使用
-mbr
選項(請參閱1)。 -
如果您遇到
VERR_ACCESS_DENIED
錯誤,請檢查:Virtualbox doesn’t work with a real partition。