这里整理下制作Xen CentOS 7磁盘镜像模版的流程:

1、创建一个将要用来安装CentOS 7系统的LV,命令如下:

  1. [root@localhost ~]# lvcreate -L 5G -n centos7 vg0
  2. Logical volume "centos7" created
  3. [root@localhost ~]# lvs
  4. LV VG Attr LSize Origin Snap% Move Log Copy% Convert
  5. centos7 vg0 -wi-a- .00G
  6. [root@localhost ~]#

这里我们设置的系统盘LV大小为5G,其实可以设置更小,只要能放得下CentOS 7系统文件即可。

2、准备虚拟机配置文件:

  1. kernel = "/usr/lib/xen/boot/hvmloader"
  2. builder='hvm'
  3. memory =
  4. name = "centos7"
  5. vif = [ 'bridge=eth0' ]
  6. disk = [ 'phy:/dev/vg0/centos7,hda,w','file:/root/CentOS-7-x86_64-DVD-1503-01.iso,hdc:cdrom,r' ]
  7. vcpus =
  8. on_reboot = 'restart'
  9. on_crash = 'restart'
  10. boot = 'd'
  11. sdl =
  12. vnc =
  13. vnclisten = '0.0.0.0'
  14. vncdisplay =
  15. stdvga =
  16. serial = 'pty'
  17. usbdevice = 'tablet'
  18. xen_platform_pci=

注意:

1)这里使用的是全虚拟化方式安装

2)设置虚拟机从CDROM启动

3、创建并启动CentOS虚拟机,命令如下:

  1. [root@localhost ~]# xm create /root/centos7.cfg
  2. Using config file "/root/centos7.cfg".
  3. Started domain centos7 (id=)
  4. [root@localhost ~]# xm li
  5. Name ID Mem VCPUs State Time(s)
  6. Domain- r----- 92575.7
  7. centos7 -b---- 1.5

4、此时CentOS虚拟机已经启动,进入到系统安装界面,下面就是按部就班地安装系统;我们通过VNC客户端连接到虚拟机上,如下所示:

5、系统安装到下面这一步,这里我们需要手动对磁盘进行分区,而并不需要系统默认的分区方式:

6、点击进入INSTALLATION DESTINATION,这里我们选择 I will configure partitioning:

7、手动系统磁盘进行格式化分区,这里我们仅仅只需要根分区(不需要swap分区):

8、后面就是系统安装过程了,等系统安装完成后,我们修改配置文件让虚拟机从硬盘启动,然后通过VNC登陆到虚拟机里,做一些修改以适应需要:

1)确保ssh-server运行

2)关闭虚拟机selinux、firewall等

3)清除一些垃圾数据

4)其他需要的操作

9、关闭虚拟机,然后创建磁盘分区映射,将磁盘所有分区映射到/dev/mapper下:

  1. [root@localhost ~]# kpartx -av /dev/vg0/centos7
  2. add map centos7p1 : linear /dev/vg0/centos7
  3. [root@localhost ~]# ll /dev/mapper/
  4. total
  5. brw-rw---- root disk , Jun : centos7p1
  6. crw------- root root , May : control
  7. brw-rw---- root disk , Jun : vg0-centos7
  8. [root@localhost ~]#

10、备份下磁盘MBR主引导扇区,具体命令如下:

  1. [root@localhost ~]# dd if=/dev/vg0/centos7 of=centos7_mbr bs= count=
  2. + records in
  3. + records out
  4. bytes (1.0 MB) copied, 0.123914 seconds, 8.3 MB/s
  5. [root@localhost ~]#

这里为什么count要是2000?主要是因为仅仅dd出磁盘前面512字节的MBR扇区无法从磁盘上成功引导进入CentOS系统,我们需要将从磁盘开始的第一个扇区到磁盘根分区的开始扇区之间的数据全部dd出来。那么这个count值 2000(bs=512的情况下)如何得到呢?具体说明如下:

1)我们首先通过 hexedit 命令打开整块磁盘,查看下整块磁盘的字节数:

  1. [root@localhost ~]# hexedit -s --color /dev/vg0/centos7

然后在第一个sector下面会看到如下字样,0x140000000 就是整块磁盘的字节数:

2)我们通过 hexedit 查看下磁盘根分区的字节数:

  1. [root@localhost ~]# hexedit -s --color /dev/mapper/centos7p1

同样在第一个sector下面会看到如下字样,0x13FF00000 就是根分区的字节数:

3)从上面两个数字一算,就可以知道我们需要 dd 多少字节的数据:

0x140000000 - 0x13FF00000 = 0x100000,换算成十进制,差不多就是1MB的数据,因此count也就是2000了。

11、将磁盘根分区文件系统mount到/mnt下:

  1. [root@localhost ~]# mount /dev/mapper/centos7p1 /mnt/
  2. [root@localhost ~]# ll /mnt/
  3. total
  4. lrwxrwxrwx root root Jun : bin -> usr/bin
  5. dr-xr-xr-x root root Jun : boot
  6. drwxr-xr-x root root Jun : dev
  7. drwxr-xr-x root root Jun : etc
  8. drwxr-xr-x root root Jun home
  9. lrwxrwxrwx root root Jun : lib -> usr/lib
  10. lrwxrwxrwx root root Jun : lib64 -> usr/lib64
  11. drwx------ root root Jun : lost+found
  12. drwxr-xr-x root root Jun media
  13. drwxr-xr-x root root Jun mnt
  14. drwxr-xr-x root root Jun opt
  15. drwxr-xr-x root root Jun : proc
  16. dr-xr-x--- root root Jun : root
  17. drwxr-xr-x root root Jun : run
  18. lrwxrwxrwx root root Jun : sbin -> usr/sbin
  19. drwxr-xr-x root root Jun srv
  20. drwxr-xr-x root root Jun : sys
  21. drwxrwxrwt root root Jun : tmp
  22. drwxr-xr-x root root Jun : usr
  23. drwxr-xr-x root root Jun : var
  24. [root@localhost ~]#

12、进入/mnt/目录下,打包整个系统文件:

  1. [root@localhost ~]# cd /mnt/
  2. [root@localhost mnt]# tar zvcf /root/centos7_img *

13、退出/mnt/目录,umount磁盘文件系统,并删除磁盘分区映射:

  1. [root@localhost mnt]# cd /root/
  2. [root@localhost ~]# umount /mnt/
  3. [root@localhost ~]# kpartx -d /dev/vg0/centos7
  4. [root@localhost ~]#

14、至此,CentOS7磁盘镜像模版就制作完成了,下面就是我们需要的文件了:

  1. [root@localhost ~]# ll centos7*
  2. -rw-r--r-- root root Jun : centos7_img
  3. -rw-r--r-- root root Jun : centos7_mbr
  4. [root@localhost ~]#

Xen虚拟机磁盘镜像模板制作(三)—CentOS 7的更多相关文章

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

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

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

    在<Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)>一文中,我们已经成功制作出了Windows Server磁盘镜像.下面我们说明下如何通过它来生成 ...

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

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

  4. Visual Studio 项目模板制作(三)

    前面,我们已经制作好了模板,然后放到相应的Template目录就可以在Visual Studio中使用 本篇,我们采用安装VSIX扩展的方式来安装模板,这种方式需要安装Visual Studio SD ...

  5. 虚拟机centos7 基础模板制作

    用于新模板制作,主要针对一些基本组件的安装 分区.安装不在此赘述 最小化安装centos7-minimal-1810 1.安装wget yum install wget -y 2.更换aliyun源 ...

  6. centos安装xen虚拟机并且配置bridge

    主要参考的几个官方文档: http://wiki.centos.org/HowTos/Xen/Xen4QuickStart 在centos上安装xen组件并建立dom0 http://wiki.cen ...

  7. 三个小时学会wordpress模板制作

    最近接了一个项目需要用wordpress建站,版面相对简单,ytkah就琢磨着自己来设计wordpress模板,首页栏目页文章页(很多网站无外乎就这些页面),其中栏目页和首页又很像,都是调用文章列表. ...

  8. xen虚拟机操作整理

    1,登陆物理机器 2,查看物理机建立虚拟机的列表 root:~ # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 49450 8 r----- 52 ...

  9. phpwind9.0模板制作教程——制作论坛风格

    由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多 ...

随机推荐

  1. ASP.NET-【状态管理】-Cookie小结

    Cookie路径 谷歌浏览器 依次点击设置--高级选项--内容设置--cookies--选择“显示cookies和其他网站数据”按钮就可以看到了 C:\Users\Administrator\Loca ...

  2. hduacm 2888 ----二维rmq

    http://acm.hdu.edu.cn/showproblem.php?pid=2888 模板题  直接用二维rmq 读入数据时比较坑爹  cin 会超时 #include <cstdio& ...

  3. inoic是什么

    本篇只侧重框架提供的功能和能力的研究,请关注后续实际部署使用体验. 一.inoic是什么? inoic是一个可以使用Web技术以hybird方式开发移动app的前端开源框架. 二.inoic框架特点 ...

  4. C++-sizeof和strlen的区别

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  5. 【干货来了】2014年K2房地产IT分享峰会

    2014年K2房地产IT分享峰会已圆满落幕,嘉宾们纷纷出招,分享干货,现场妙语连珠不断,高潮迭起. 主题:流程驱动的地产业务管控平台 嘉宾:王寿欣(卓越地产战略与运营管理部 副总经理) 卓越地产应用K ...

  6. 最大公约数——Program G

    最大公约数 Description There is a hill with n holes around. The holes are signed from 0 to n-1. A rabbit ...

  7. Visual Studio 中的头文件、源文件和资源文件都是什么?有什么区别??

    头文件:后缀为.h,主要是定义和声明之类的,比如类的定义,常量定义源文件:后缀.cpp,主要是实现之类的,比如类方法的实现资源文件主要是你用到的一些程序代码以外的东西,比如图片之类,或者菜单.工具栏之 ...

  8. C/C++类型转换总结

    ---恢复内容开始--- 最近做笔试题经常会碰到有关类型转换的题型,所以结合例子做下总结,也是希望自己能更时刻的理解类型转换. C++的类型转换包括内置类型和类类型对象的转换. (1) 1.1隐式类型 ...

  9. checkbox的全选、反选、删除(MainActivity)

    package com.example.ay; import java.util.ArrayList;import java.util.List; import com.example.adapter ...

  10. sql学习资料

    http://blog.sina.com.cn/s/articlelist_1594135432_9_1.html