- 主题:请教一个把物理硬盘上的windows装进linux上的virtualbox的问题
如题
需要用到双系统,主力linux,辅以windows.以前用vbox,在vbox里面装了一个windows.效率肯定比直接物理硬盘上的windows低.
听说有方法,可以把物理硬盘上的windows映射到vbox的虚拟硬盘上面.搜了一圈主要是这个命令
VBoxManage internalcommands createrawvmdk -filename ~/nenew.vmdk -rawdisk /dev/sda0 -register
假设我有两块硬盘用来装系统,一个是nvme的,一个是sata的,综合起来,是不是应该有下面的步骤
1. nvme的物理硬盘A上面安装linux,UEFI之类的都在A上面
2. sata的物理硬盘B上面安装windows,UEFI之类的都在B上面
3. 由于两个系统的引导区不在同一块硬盘上面,因此是没有双启动菜单的,只有通过bios调整boot的顺序才能进入不同的系统.这样的好处是,彻底隔离了两个系统,没有交叉的地方.
4. 进入linux,装virtualbox
5. 运行上面的vbox的命令.在运行这个命令之前,需要找到B硬盘实际的挂载到linux那个位置,有可能是/dev/sdx
6. 启动vbox,找到nenew.vmdk这个文件,启动系统.
额外的问题
1. 上面的命令是把B的某一个partition,这个partition安装了windows给map到了vmdk文件上面,从而vbox能访问到?
2. 实际上B是一个disk,上面可能不止一个partition,比如装windows的时候都有EFI分区,恢复分区,C盘,D盘.....那我应该是要那个partition映射到vmdk上面?
我想的是,需要映射C盘
但是,如果只映射C盘的话,vbox如何启动windows?
正常物理硬盘启动的话,是先要去B硬盘上面的EFI分区跑UEFI的.而EFI分区并没有被映射到vbox的vmdk上面.windows能启动吗
3. 这样做的目的,是直接操作了B这个硬盘,好处是比传统的装虚拟机IO效率高?
4. 如果我哪天改了bios,直接从B启动,在里面干了活,更改了B硬盘上面的东西.那么我再改回linux上面用vbox,所有的更改都是存在的?
5. 这样做有什么坏处没有?
6. 还有更漂亮的方法吗
谢谢
--
FROM 121.69.243.*
为啥说dt?
这个操作有什么问题吗
【 在 KQE 的大作中提到: 】
: 类似的蛋疼事情我以前还真做过,可惜太早了忘了具体操作了
:
--
FROM 121.69.243.*
如果不是VirtualBox而是QEMU的话,倒是很容易操作,只需要 -drive file=/dev/sda,format=raw 就行了,我以前使用用这个方法在物理硬盘上装 Windows.
【 在 lobachevsky 的大作中提到: 】
: 如题
: 需要用到双系统,主力linux,辅以windows.以前用vbox,在vbox里面装了一个windows.效率肯定比直接物理硬盘上的windows低.
: 听说有方法,可以把物理硬盘上的windows映射到vbox的虚拟硬盘上面.搜了一圈主要是这个命令
: ...................
--
FROM 114.254.9.*
这么搞容易在guest里一不小心把host搞坏了
安全的做法是做个dm映射。只让分区表和对应分区可读写,其他的LBA地址都映射到zero
【 在 ArchLinux 的大作中提到: 】
: 如果不是VirtualBox而是QEMU的话,倒是很容易操作,只需要 -drive file=/dev/sda,format=raw 就行了,我以前使用用这个方法在物理硬盘上装 Windows.
--
修改:kirbyzhou FROM 124.64.130.*
FROM 124.64.130.*
用filezilla之类的软件应该可以吧
我平时用Gentoo,直接把sys dev tmp run四个目录exclude了压缩就可以。恢复时候用arch linux或者gentoo启动盘,把根目录解压缩之后arch-chroot进入配置systemd-boot启动项即可
【 在 lobachevsky (罗巴切夫斯基) 的大作中提到: 】
: 如题
:
: 需要用到双系统,主力linux,辅以windows.以前用vbox,在vbox里面装了一个windows.效率肯定比直接物理硬盘上的windows低.
:
--
FROM 1.202.10.*
嗯,你这个样是把/dev/sda这个一个disk都map过去了
而不是把sda0,sda1的某一个partition map过去.
一个disk上面还包含了boot那部分的partition.
这也是我的问题所在
1. map disk,所有partition都在,肯定能boot起来
2. map parition,加入缺少UEFI那部分,是不是就boot不起来
【 在 ArchLinux 的大作中提到: 】
: 如果不是VirtualBox而是QEMU的话,倒是很容易操作,只需要 -drive file=/dev/sda,format=raw 就行了,我以前使用用这个方法在物理硬盘上装 Windows.
:
--
FROM 1.202.141.*
我到不是想要备份恢复windows
而是想把物理硬盘映射到虚拟机的硬盘上面,从而能通过虚拟机使用物理硬盘上的系统.
这样可能会使得虚拟机里面的系统IO效率更高.因为虚拟机里面操作的是物理硬盘,少了虚拟机的那一层.
【 在 cppbuilder 的大作中提到: 】
: 用filezilla之类的软件应该可以吧
: 我平时用Gentoo,直接把sys dev tmp run四个目录exclude了压缩就可以。恢复时候用arch linux或者gentoo启动盘,把根目录解压缩之后arch-chroot进入配置systemd-boot启动项即可
--
FROM 1.202.141.*
那样搞,guest能access host的硬盘?
你说的映射是不是就是我文中提到的那样
【 在 kirbyzhou 的大作中提到: 】
: 这么搞容易在guest里一不小心把host搞坏了
: 安全的做法是做个dm映射。只让分区表和对应分区可读写,其他的LBA地址都映射到zero
:
--
FROM 1.202.141.*
假设sda有3个分区
sda1是EFI
sda2是Linux
sda3是windows
建一个device mapper
dm[头部] = sda gpt分区表
dm[part1] = sda1
dm[part2] = zero
dm[part3] = sda3
dm[尾部] = sda gpt分区表尾部备份
让virtualbox或者qemu挂载这个dm
参考文档
RedHat Logical Volume Manager Administration
The Device Mapper
【 在 lobachevsky 的大作中提到: 】
: 那样搞,guest能access host的硬盘?
: 你说的映射是不是就是我文中提到的那样
--
修改:kirbyzhou FROM 114.247.175.*
FROM 114.247.175.*
你费那事干嘛,直接把sata ssd直通给windows,这样既可以虚拟机启动,又可以裸机启动
--
FROM 114.251.196.*