用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
bg3mdo
帖子: 2
注册时间: 2009-01-05 18:50

用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#1

帖子 bg3mdo » 2012-01-10 6:42

要命的什么qq飞信,在linux下运行超级不稳定,但是工作又要在linux下作,,,,,于是想能不能在linux下启动我装在另一个分区的windows。。。我说的是直接启动硬盘的。。。

前一段时间看见我对桌那英国哥在linux下用virtualbox虚拟windows,但不幸的是他把windows分区整整的转换成了一个镜像文件(用过vmware的人都懂,vmware虚拟机使用的磁盘是个虚拟文件)。虽然可以用,但有点小不爽,毕竟windows还在那,你做的任何修改仅仅会在镜像上而不是在那个真实的windows硬盘分区上,并且创建这个镜像又要吃掉40-50g的硬盘空间,要知道办公室的电脑硬盘超级小还本身就双系统(什么matlab,office,vstudio。。。。无比大的说)。

于是各种research,什么系统启动结构,什么mbr 什么bcd ntld,,,,grub等等, 总结这么个方法,这个办法同样使用VirtualBox,可以做到在win上直接运行本机硬盘的linux,相反也可以做到在linux上运行本机的windows, 不用创建镜像文件,省事,省地。(创建镜像要2-3小时,数十g一个文件。。。) 这个感觉就像你有两台电脑,互相远程桌面。假如你在linux下虚拟的win创建了个文件,那么下次你去直接启动原生win,他就有了。 当然运行windows可以在linux选择Virtualbox 的seamless模式,让那个程序看起来和原生linux程序一样,比wine模拟的windows环境强800倍。

具体办法 安装virtualbox......命令行下:sudo apt-get install virtualbox

没有源的自己加下,用ubuntu的可以直接在软件中心装oracle VM VirtualBox

安装后在terminal模式 用root权限的运行virtualbox sudo virtualbox,不用root会出错。 配置一个windows的运行环境, 想要什么样的自己设定。

接下来做硬盘vmdk文件创建,这里直接创建整个硬盘的映射文件。创建单个分区的比较麻烦,又要提取mbr,又要修改bcd,而且还造成虚拟机能运行,原生启动错误的问题。

创建前请分配所有硬盘分区的读写权限,假如有三个 sda1 sda2 sda3 那么命令行下

sudo chmod 666 /dev/sda1

sudo chmod 666 /dev/sda2

sudo chmod 666 /dev/sda3
更多以此类推,两块盘以上的一样,无非是sdb sdc,,,,,等

使用如下指令创建 wmdk 硬盘的映射文件,这里用到的是Virtualbox的shell模式,更多内容请参看virtualbox高级用户手册

sudo vboxmanage internalcommands createrawvmdk -filename /home/用户名/rawdisk.vmdk -rawdisk /dev/sda -relative

用户名替换成自己的登录id, 这样rawdisk.vmdk就可以被Virtualbox(root权限下的)直接调用并且运行windows了。多个硬盘的请分别创建镜像,都加到Virtualbox的ATA管理器里面。

在windows下运行物理磁盘的linux,请安装windows的VirtualBox,同样办法创建映射文件(命令稍有不同,看考windows版本Virtualbox的高级用户手册),注意请创建不同的映射文件,不要拿来在linux下创建的vmdk文件用,会死的很惨的。

实践证明这个办法是彻底不用修改mbr,bcd 还有grub的。。。可以双物理磁盘上的系统互启动。。。
bg3mdo
帖子: 2
注册时间: 2009-01-05 18:50

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#3

帖子 bg3mdo » 2012-01-10 18:38

现在正这么用 哈
whenov
帖子: 2
注册时间: 2011-08-23 19:26

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#4

帖子 whenov » 2012-03-10 19:26

请问怎么解决windows激活的问题呢?
我在虚拟机中启动了物理硬盘上的win7后提示盗版,重启进入win7仍提示盗版,本来是激活好了的。
hch
帖子: 1
注册时间: 2012-11-29 15:19
系统: windows

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#5

帖子 hch » 2012-11-29 15:40

请问使用raw disk 之后,性能会提升多少?文档里说性能提升要看两件事,1,image静态还是动态(什么意思?raw disk大小还能动态增加?)
2,文件是否缓存(到底缓存是应该打开好还是关闭好?)

还有使用raw disk 后,快照和clone功能如何? raw disk肯定不能用复制吧?

还有比如两台虚机都用raw disk,同时运行,不会冲突吗?
头像
drc1234
帖子: 632
注册时间: 2008-08-31 10:09

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#6

帖子 drc1234 » 2012-12-12 20:36

:em11 感觉写的详细,试一下
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#8

帖子 谢宝良 » 2012-12-12 21:45

可惜我的硬盘只有linux,无法实践了。
头像
gaoxin
帖子: 148
注册时间: 2008-09-26 18:53
系统: ubuntu14.04 + Win10
来自: 辽宁丹东 요녕성 단동시

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#9

帖子 gaoxin » 2012-12-13 18:37

好帖子顶一个,没试过,有用过好使的吗? :em11
头像
zhcj
帖子: 363
注册时间: 2008-09-06 5:11
来自: 石家庄
联系:

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#10

帖子 zhcj » 2012-12-13 18:46

我是用挂载共享文件夹来实现的,linux下虚拟的win可以写ntfs那个分区。
另外,vbox虚拟机的虚拟硬盘及配置文件文件都放在ntfs分区上,linux里面做个软链接vbox就可以用了。
http://phpcj.org/
河北Linux用户组QQ群:249872047
Gentoo中文社区QQ群:160294591
q_yangguangyouzi
帖子: 37
注册时间: 2012-03-06 0:22

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#11

帖子 q_yangguangyouzi » 2012-12-24 22:39

曾经幻想过,有机会试一试。 :em11
头像
qq420100523
帖子: 1684
注册时间: 2009-07-31 18:56
系统: windows、ubuntu
来自: 广东阳江

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#12

帖子 qq420100523 » 2012-12-25 0:56

在这里做个笔记。
VirtualBox建立物理硬盘的虚拟磁盘链接:
硬盘映射:

代码: 全选

Linux下:
VBoxManage internalcommands createrawvmdk -filename ~/nenew.vmdk -rawdisk /dev/sda
Windows下:
vboxmanage internalcommands createrawvmdk -filename d:\\nenew.vmdk -rawdisk \\.\PhysicalDrive0
注: linux下/dev/sda代表第一块硬盘,/dev/sdb为第二块硬盘……
windows下\\.\PhysicalDrive0代表第一块硬盘,\\.\PhysicalDrive1为第二块硬盘……
分区映射:

代码: 全选

Linux下:
VBoxManage internalcommands createrawvmdk -filename ~/nenew.vmdk -rawdisk /dev/sda -partitions 1
Windows下:
vboxmanage internalcommands createrawvmdk -filename d:\\nenew.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 1
附 VBoxManage internalcommands createrawvmdk 命令:
VBoxManage internalcommands createrawvmdk 创建一个vmdk格式的硬盘
-filename <filename> vmdk格式的硬盘所对应的vmdk文件
-rawdisk <diskname> vmdk文件所对应的物理硬盘
[-partitions <list of partition numbers> vmdk文件对应的物理硬盘的分区
[-mbr <filename>] ] 将这个文件包含的引导记录写到vmdk文件
[-register] 将这个新创建的硬盘注册到virtualbox
[-relative] 激活这个新创建的硬盘的分区
头像
tooktang
帖子: 674
注册时间: 2010-07-15 18:30

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#13

帖子 tooktang » 2012-12-25 21:35

赞一个,这个是一个相当好的办法。虽然我贪图性能,都是采用装多系统的方法。
我是OS控…
头像
wangchaoran
帖子: 764
注册时间: 2011-11-18 21:41
系统: kubuntu 13.4 amd64
来自: China

Re: 用Virtualbox 在linux和windows下 双系统互启 直接写物理硬盘 不使用硬盘镜像的方法

#14

帖子 wangchaoran » 2012-12-26 10:51

(创建镜像要2-3小时,数十g一个文件。。。)
用不了这么长时间吧,我建一个32g固定分配的vmdk也只花了5分钟而已,,硬件也只是双核速龙+西数蓝盘.

代码: 全选

The best way to predict the future is to invent it.
回复