免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3743 | 回复: 1

Xen虚拟环境下扩展XP系统盘空间的方法,也可以适用于普通DOS/V主机 [复制链接]

论坛徽章:
0
发表于 2008-09-24 02:34 |显示全部楼层
写了一篇小文章,关于在虚拟环境下扩展XP或者2003系统C盘空间的比较简单易行的方法,
分享一下:
http://blog.lalacafe.com/?p=108

以前在Xen下的XP的虚拟机的磁盘空间安装在一个8G大的虚拟磁盘文件上,
在虚拟机上安装了Office之后,现有空间已经容纳不下CS3或者Flash,Firefox等软件,
尝试了用NTbackup将C盘备份到外置USB移动硬盘的20G分区上之后,
XP并没有正常启动,显示找不到ntoskrnl.exe文件。具体原因我并没有去调查,
也不感兴趣,无法理解的事情便是为什么windows不能实现我很单纯的目的,
便是把C盘上的文件完完全全的拷贝到其他硬盘上。在Linux或者Unix系统下,
有很多工具可以很简单的达到这个目的。比如说dump,tar,cpio,cp,mv等等。
以前工作上用过这样的流程来实现Windows系统的备份和还原:
  • 用NTbackup完全备份系统到一个备份文件或者磁带
  • 换装新的磁盘,然后重新安装Windows系统
  • 在新的系统上执行NTbackup,把之前备份的文件还原到C盘。
上述方法太麻烦了,需要重新安装系统,查了一些资料之后,
找到了下面这个简单易行的方法,可适用于一般的DOS/V主机,
也可以适用于KVM或者Xen+qemu的虚拟机上,用于系统备份,还原,移植磁盘空间。
达到Linux下的dump或者dd的目的,同时启动空间(MBR)也将被完全拷贝。
  • 假设对象XP主机或者虚拟机的操作系统安装在C盘空间,大小为8G
  • 移植对象为大小为20G的新硬盘
  • 把20G的新硬盘挂载到主机上。
  • 利用Knoppix或者一些LiveLinux启动主机,8G的旧硬盘和20G的新硬盘分别为sda和sdb
  • 用dd复制磁盘空间:# dd if=/dev/sda of=/dev/sdb bs=1M
    (如果你的磁盘比较大的话,可能需要一些时间,比如说200G的C盘,也许会花上几个小时)
  • 复制结束后启动WindowsXP,可以看到新硬盘的第一分区为8G(即D盘),剩余未使用空间为约12G。
  • 利用XP自带的diskpart命令扩展NTFS空间。
  • 卸载旧的8G磁盘(C盘),用20G的硬盘启动。
上述操作如果在XenDomian下执行的话,只需要修改DomU的配置文件或者在Virt-Manager下添加或者删除磁盘即可。
以下是我在本地Xen虚拟空间上的操作记录:
  • 修改DomU的配置文件如下:
    1. [root@gate ~]# cat /etc/xen/xp01/xp01.cnf
    2. kernel = “/usr/lib/xen/boot/hvmloader”
    3. device_model = “/usr/lib64/xen/bin/qemu-dm”
    4. builder=”hvm”
    5. name = “xp01″
    6. memory = “1536″
    7. vcpus = “1″
    8. #disk =  [ 'file:/opt/xen/xp01.img,ioemu:hda,w' ]
    9. disk = [ 'file:/opt/xen/xp01.img,ioemu:hda,w',
    10. 'phy:/dev/disk/by-id/usb-I-O_DATA_HDPX-U.WP_00000026B676-0:0-part4,hdb,w' ]
    11. vif = [ 'mac=00:16:3e:7e:67:2c, bridge=eth0, type=ioemu', 'mac=00:16:3e:7b:31:36, bridge=vnet0, type=ioemu' ]
    12. usb = “1″
    13. usbdevice = “tablet”
    14. vncunused = “1″
    15. vnc = “1
    复制代码

    其中xp01.img为一个大约8G的虚拟磁盘文件,里面安装了虚拟机的XP系统。
    /dev/disk/by-id/usb-I-O_DATA_HDPX-U.WP_00000026B676-0:0-part4为外置USB移动硬盘的第四风区,约为20G,将作为虚拟机的新系统盘。
  • 利用dd命令把xp01.img的数据复制到20G的U盘空间,大约花了10分钟。
    1. [root@gate ~]# dd if=/opt/xen/xp01.img of=/dev/disk/by-id/usb-I-O_DATA_HDPX-U.WP_00000026B676-0:0-part4 bs=1M
    复制代码
    在其他终端窗口用 kill -10 “dd命令的进程ID”可以看到复制的详细进度。
  • 用xm delete删除现有虚拟机信息,然后用xm create命令,
    在Xen下启动XP,看到的D盘空间如下:
  • 启动XP的命令行,执行diskpart命令,进入diskpart命令行提示符:
    1. C:\>diskpart
    2. Microsoft DiskPart version 5.1.3565
    3. Copyright (C) 1999-2003 Microsoft Corporation.
    4. Computer: XP01
    5. DISKPART> list volume
    6. Volume ###  Ltr Label        Fs    Type        Size     Status     Info
    7. ----------  --- -----------  ----  ----------  -------  ---------  --------
    8. Volume 0    C                NTFS  Partition     19 GB  healthy      system
    9. Volume 1    D                NTFS  Partition   8001 MB healthy      system
    10. DISKPART> select volume 1
    11. Volume 1 is now the selected volume.
    12. DISKPART> extend
    13. DiskPart Successfully extended Volume 1
    14. DISKPART> exit
    15. DISKPART>
    复制代码
  • 之后磁盘管理器下可以看到D盘的文件系统已经被扩展到大约18G
  • 最后关闭XP电源,修改domU配置文件,将disk的配置修改如下,然后用xm new文件添加新的domU,启动XP虚拟机,硬盘空间移植结束。
    1. disk = [ 'phy:/dev/disk/by-id/usb-I-O_DATA_HDPX-U.WP_00000026B676-0:0-part4,hda,w' ]
    复制代码


    如果有更简单方便的方法请介绍一下。

    [ 本帖最后由 ports 于 2008-9-24 03:43 编辑 ]

论坛徽章:
0
发表于 2008-09-24 09:04 |显示全部楼层

回复 #1 ports 的帖子

好东西,虚拟化学习一下,不过还是很占用资源的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP