《Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)》一文中,我们已经成功制作出了Windows Server磁盘镜像。下面我们说明下如何通过它来生成目标虚拟机,同时测试下之前制作好的虚拟机磁盘镜像模版是否有问题。具体流程如下文所述:

1、创建目标虚拟机的系统盘:

[root@localhost ~]# lvcreate -L 15G -n windows_vm vg0
Logical volume "windows_vm" created

2、查看成功创建的虚拟机系统盘:

[root@localhost ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
windows_vm vg0 -wi-a- .00G

3、将之前导出的磁盘MBR主引导扇区windows_mbr 重新dd到虚拟机系统盘里:

[root@localhost ~]# dd if=/root/windows_mbr of=/dev/vg0/windows_vm
+ records in
+ records out
bytes ( B) copied, 0.009189 seconds, 55.7 kB/s

4、修改系统盘分区大小(以扇区数为单位):

[root@localhost ~]# echo "000001CA:00F0DF01" | xxd -r - /dev/vg0/windows_vm
[root@localhost ~]#

因为前面我们创建的虚拟机系统盘大小是15G,因此这里我们需要将磁盘分区1所占用的扇区数大小设置为00F0DF01(具体计算方式后续再整理),而000001CA则表示保存磁盘分区1占用扇区数的开始字节位置,具体说明请参考《磁盘MBR主引导扇区》

5、建立系统盘的磁盘分区映射,将系统盘的所有分区映射到/dev/mapper下:

[root@localhost ~]# kpartx -av /dev/vg0/windows_vm
add map windows_vm1 : linear /dev/vg0/windows_vm
[root@localhost ~]# ll /dev/mapper/
total
crw------- root root , May : control
brw-rw---- root disk , Jun : vg0-windows_vm
brw-rw---- root disk , Jun : windows_vm1
[root@localhost ~]#

红色的部分即为虚拟机磁盘的根分区。

6、解压并恢复之前制作好的Windows Server磁盘镜像模板 windows_img 到虚拟机磁盘的根分区上:

[root@localhost ~]# gunzip -c /root/windows_img | ntfsclone --restore-image --overwrite /dev/mapper/windows_vm1 -
ntfsclone v2012.1.15 (libntfs-3g)
Ntfsclone image version: 10.1
Cluster size : bytes
Image volume size : bytes ( MB)
Image device size : bytes
Space in use : MB (46.6%)
Offset to image data : (0x38) bytes
Restoring NTFS from image ...
Warning : no alternate boot sector in image
Syncing ...
[root@localhost ~]#

7、扩展系统盘文件系统大小适应磁盘根分区的大小:

[root@localhost ~]# ntfsresize -f -f /dev/mapper/windows_vm1
ntfsresize v2012.1.15 (libntfs-3g)
Device name : /dev/mapper/windows_vm1
NTFS volume version: 3.1
Cluster size : bytes
Current volume size: bytes ( MB)
Current device size: bytes ( MB)
New volume size : bytes ( MB)
Nothing to do: NTFS volume size is already OK.
[root@localhost ~]#

这里是因为系统盘文件系统大小刚好也是15G,刚好匹配于根分区大小,所以显示了Nothing to do,无关紧要。

8、进行到这一步,假如你需要往虚拟机系统中植入一些文件或者修改某些文件,可以将虚拟机根分区mount到某个目录下,如下所示:

[root@localhost ~]# mount -t ntfs-3g /dev/mapper/windows_vm1 /mnt/
[root@localhost ~]# umount /mnt/
[root@localhost ~]#

不需要往虚拟机系统中植入一些文件或者修改某些文件,直接跳过这步。

9、删除磁盘分区映射:

[root@localhost ~]# kpartx -d /dev/vg0/windows_vm
[root@localhost ~]# ll /dev/mapper/
total
crw------- root root , May : control
brw-rw---- root disk , Jun : vg0-windows_vm
[root@localhost ~]#

10、至此,虚拟机系统盘已经准备好,下面就是需要准备虚拟机配置文件:

kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory =
name = "windows_vm"
vif = [ 'bridge=eth0' ]
disk = [ 'phy:/dev/vg0/windows_vm,hda,w' ]
vcpus =
on_reboot = 'restart'
on_crash = 'restart'
boot = 'c'
sdl =
vnc =
vnclisten = '0.0.0.0'
vncdisplay =
stdvga =
serial = 'pty'
usbdevice = 'tablet'
localtime =

11、启动该虚拟机:

[root@localhost ~]# xm create /root/windows_vm.cfg
Using config file "/root/windows_vm.cfg".
Started domain windows_vm (id=)
[root@localhost ~]# xm li
Name ID Mem VCPUs State Time(s)
Domain- r----- 92557.1
windows_vm r----- 1.7
[root@localhost ~]#

12、通过vnc登陆该虚拟机:

至此,通过前面制作的Windows Server磁盘镜像模板成功生成了一个全新的虚拟机。

Xen虚拟机磁盘镜像模板制作(二)—Windows Server 2008(2012)的更多相关文章

  1. Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)

    这段时间一直在研究如何制作一个适合Xen虚拟化的Windows Server 2008(2012)磁盘镜像,中间虽然遇到了一些阻挠,不过最终还是顺利解决,成功制作出了Xen Windows Serve ...

  2. Xen虚拟机磁盘镜像模板制作(四)—CentOS 7

    在<Xen虚拟机磁盘镜像模板制作(三)—CentOS 7>一文中,我们已经成功制作出了 CentOS7 磁盘镜像.下面我们说明下如何通过它来生成目标虚拟机,同时测试下之前制作好的虚拟机磁盘 ...

  3. Xen虚拟机磁盘镜像模板制作(三)—CentOS 7

    这里整理下制作Xen CentOS 7磁盘镜像模版的流程: 1.创建一个将要用来安装CentOS 7系统的LV,命令如下: [root@localhost ~]# lvcreate -L 5G -n ...

  4. 阿里云服务器Windows Server 2008/2012部署Office Web Server 2013

    以前成功将Office Web Server 2013部署在了本地服务器上,此次是将Office Web Server 2013部署在阿里云服务器Windows Server 2008和2012上,中 ...

  5. 【定时任务|开机启动】Windows Server 2008/2012 计划任务配置(任务计划程序)每分钟执行BAT

    打开计划任务快捷方式(在 “管理工具”内): C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Tas ...

  6. Windows Server 2008/2012 计划任务配置执行bat

    首先Windows Server 2008不同于其他服务器操作系统和Windows Server 2003有着很大的区别,计划任务的名称是“任务计划程序”不在控制面板里,而是在“管理工具”里.由于服务 ...

  7. 配置Windows Server 2008/2012/2016允许2个用户同时远程桌面

    Windows Server 系列服务器默认情况下只能支持一个用户远程,如果第二个人远程上去之后会直接把前面一个登录用户踢掉.在日常工作中如果有多个人需要同时远程过去工作,会很不方面. 网上很多教程讲 ...

  8. windows server 2008/2012 无法安装AD域解决方法记录

    安装活动目录之前需要一些准备工作和前提条件的. 有管理员的权限 至少有一个足够大的NTFS文件系统的分区或动态卷 需要DNS服务配合,因此需要安装DNS服务 最好使用dcpromo命令来进行安装 最终 ...

  9. windows server 2008/2012安装PostgreSQL过程及问题总结

    今天第一次接触在Windows Server2008/2012 下安装PostgreSQL,遇到的问题总结如下: 1.首先,在安装的时候,我更改安装目录改为自定义的E盘,安装时报错:libintl.d ...

随机推荐

  1. 统计sql语句执行效率

    --统计sql语句执行效率SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N ...

  2. Windows安装配置php+memcached的方法

    Windows下Memcached的安装配置方法 1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcache ...

  3. win10 ctrl + 空格 热键取消

    关键:添加English,并上移到第一,即开机默认即可.Win8+不用修改注册表的,只有win7里才可能需要修改注册表. http://superuser.com/questions/327479/c ...

  4. Codeforces 235C

    题目大意: 给定一个字符串,接下来再给n个字符串,求原字符串中含有多少个当前给定字符串的循环同构体的字符串的个数 以初始字符串构建后缀自动机,在自动机上前进的时候,比如当前需要匹配的字符串为aba,到 ...

  5. Unity场景道具模型拓展自定义编辑器

    (一)适用情况 当游戏主角进入特定的场景或者关卡,每个关卡需要加载不同位置的模型,道具等.这些信息需要先在unity编辑器里面配置好,一般由策划干这事,然后把这些位置道具信息保存在文件,当游戏主角进入 ...

  6. 关于强制类型转换(c语言)

    因为今天看的代码中用到了结构体的强制类型转换,就很想了解一下结构体的强制类型转换是怎样的. 一个结构体如下: 在下面这段代码中rbuf->reqCmdBuf是一个空指针,首先将这个空指针赋值给一 ...

  7. iOS开发中关于nslog的几种流行做法小结

    不管哪种方法,都必须在PCH文件中做下宏定义 DEBUG和RELEASE要分开,RELEASE时log打印要取消 方法一:简单直接,用几行代码搞定,简洁但功能少 #ifdef DEBUG #defin ...

  8. xcode开发的6个小技巧

    Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...

  9. SharePoint 2013 Nintex Workflow 工作流帮助(七)

    博客地址 http://blog.csdn.net/foxdave 工作流动作 11. Check out item(Libraries and lists分组) 与上一个对应,用于签出条目.如果一个 ...

  10. hdu 2052

    PS:竟然一次AC....惊喜...注意每个实例后跟一个空行.. 学到一个快速清空数组的用法...memst函数.  memst(void *s,char a,sizeof n)  把 s里面的前n个 ...