Xen虚拟机磁盘镜像模板制作(三)—CentOS 7
这里整理下制作Xen CentOS 7磁盘镜像模版的流程:
1、创建一个将要用来安装CentOS 7系统的LV,命令如下:
[root@localhost ~]# lvcreate -L 5G -n centos7 vg0
Logical volume "centos7" created
[root@localhost ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
centos7 vg0 -wi-a- .00G
[root@localhost ~]#
这里我们设置的系统盘LV大小为5G,其实可以设置更小,只要能放得下CentOS 7系统文件即可。
2、准备虚拟机配置文件:
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory =
name = "centos7"
vif = [ 'bridge=eth0' ]
disk = [ 'phy:/dev/vg0/centos7,hda,w','file:/root/CentOS-7-x86_64-DVD-1503-01.iso,hdc:cdrom,r' ]
vcpus =
on_reboot = 'restart'
on_crash = 'restart'
boot = 'd'
sdl =
vnc =
vnclisten = '0.0.0.0'
vncdisplay =
stdvga =
serial = 'pty'
usbdevice = 'tablet'
xen_platform_pci=
注意:
1)这里使用的是全虚拟化方式安装
2)设置虚拟机从CDROM启动
3、创建并启动CentOS虚拟机,命令如下:
[root@localhost ~]# xm create /root/centos7.cfg
Using config file "/root/centos7.cfg".
Started domain centos7 (id=)
[root@localhost ~]# xm li
Name ID Mem VCPUs State Time(s)
Domain- r----- 92575.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下:
[root@localhost ~]# kpartx -av /dev/vg0/centos7
add map centos7p1 : linear /dev/vg0/centos7
[root@localhost ~]# ll /dev/mapper/
total
brw-rw---- root disk , Jun : centos7p1
crw------- root root , May : control
brw-rw---- root disk , Jun : vg0-centos7
[root@localhost ~]#
10、备份下磁盘MBR主引导扇区,具体命令如下:
[root@localhost ~]# dd if=/dev/vg0/centos7 of=centos7_mbr bs= count=
+ records in
+ records out
bytes (1.0 MB) copied, 0.123914 seconds, 8.3 MB/s
[root@localhost ~]#
这里为什么count要是2000?主要是因为仅仅dd出磁盘前面512字节的MBR扇区无法从磁盘上成功引导进入CentOS系统,我们需要将从磁盘开始的第一个扇区到磁盘根分区的开始扇区之间的数据全部dd出来。那么这个count值 2000(bs=512的情况下)如何得到呢?具体说明如下:
1)我们首先通过 hexedit 命令打开整块磁盘,查看下整块磁盘的字节数:
[root@localhost ~]# hexedit -s --color /dev/vg0/centos7
然后在第一个sector下面会看到如下字样,0x140000000 就是整块磁盘的字节数:

2)我们通过 hexedit 查看下磁盘根分区的字节数:
[root@localhost ~]# hexedit -s --color /dev/mapper/centos7p1
同样在第一个sector下面会看到如下字样,0x13FF00000 就是根分区的字节数:

3)从上面两个数字一算,就可以知道我们需要 dd 多少字节的数据:
0x140000000 - 0x13FF00000 = 0x100000,换算成十进制,差不多就是1MB的数据,因此count也就是2000了。
11、将磁盘根分区文件系统mount到/mnt下:
[root@localhost ~]# mount /dev/mapper/centos7p1 /mnt/
[root@localhost ~]# ll /mnt/
total
lrwxrwxrwx root root Jun : bin -> usr/bin
dr-xr-xr-x root root Jun : boot
drwxr-xr-x root root Jun : dev
drwxr-xr-x root root Jun : etc
drwxr-xr-x root root Jun home
lrwxrwxrwx root root Jun : lib -> usr/lib
lrwxrwxrwx root root Jun : lib64 -> usr/lib64
drwx------ root root Jun : lost+found
drwxr-xr-x root root Jun media
drwxr-xr-x root root Jun mnt
drwxr-xr-x root root Jun opt
drwxr-xr-x root root Jun : proc
dr-xr-x--- root root Jun : root
drwxr-xr-x root root Jun : run
lrwxrwxrwx root root Jun : sbin -> usr/sbin
drwxr-xr-x root root Jun srv
drwxr-xr-x root root Jun : sys
drwxrwxrwt root root Jun : tmp
drwxr-xr-x root root Jun : usr
drwxr-xr-x root root Jun : var
[root@localhost ~]#
12、进入/mnt/目录下,打包整个系统文件:
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# tar zvcf /root/centos7_img *
13、退出/mnt/目录,umount磁盘文件系统,并删除磁盘分区映射:
[root@localhost mnt]# cd /root/
[root@localhost ~]# umount /mnt/
[root@localhost ~]# kpartx -d /dev/vg0/centos7
[root@localhost ~]#
14、至此,CentOS7磁盘镜像模版就制作完成了,下面就是我们需要的文件了:
[root@localhost ~]# ll centos7*
-rw-r--r-- root root Jun : centos7_img
-rw-r--r-- root root Jun : centos7_mbr
[root@localhost ~]#
Xen虚拟机磁盘镜像模板制作(三)—CentOS 7的更多相关文章
- Xen虚拟机磁盘镜像模板制作(四)—CentOS 7
在<Xen虚拟机磁盘镜像模板制作(三)—CentOS 7>一文中,我们已经成功制作出了 CentOS7 磁盘镜像.下面我们说明下如何通过它来生成目标虚拟机,同时测试下之前制作好的虚拟机磁盘 ...
- Xen虚拟机磁盘镜像模板制作(二)—Windows Server 2008(2012)
在<Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)>一文中,我们已经成功制作出了Windows Server磁盘镜像.下面我们说明下如何通过它来生成 ...
- Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)
这段时间一直在研究如何制作一个适合Xen虚拟化的Windows Server 2008(2012)磁盘镜像,中间虽然遇到了一些阻挠,不过最终还是顺利解决,成功制作出了Xen Windows Serve ...
- Visual Studio 项目模板制作(三)
前面,我们已经制作好了模板,然后放到相应的Template目录就可以在Visual Studio中使用 本篇,我们采用安装VSIX扩展的方式来安装模板,这种方式需要安装Visual Studio SD ...
- 虚拟机centos7 基础模板制作
用于新模板制作,主要针对一些基本组件的安装 分区.安装不在此赘述 最小化安装centos7-minimal-1810 1.安装wget yum install wget -y 2.更换aliyun源 ...
- centos安装xen虚拟机并且配置bridge
主要参考的几个官方文档: http://wiki.centos.org/HowTos/Xen/Xen4QuickStart 在centos上安装xen组件并建立dom0 http://wiki.cen ...
- 三个小时学会wordpress模板制作
最近接了一个项目需要用wordpress建站,版面相对简单,ytkah就琢磨着自己来设计wordpress模板,首页栏目页文章页(很多网站无外乎就这些页面),其中栏目页和首页又很像,都是调用文章列表. ...
- xen虚拟机操作整理
1,登陆物理机器 2,查看物理机建立虚拟机的列表 root:~ # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 49450 8 r----- 52 ...
- phpwind9.0模板制作教程——制作论坛风格
由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多 ...
随机推荐
- JBoss像tomcat那样创建部署文件,JBoss创建虚拟目录
jboss可以像tomcat那样,写一个配置文件,指向应用所在的路径,而不用将应用直接复制到deploy下的某一个以.war结尾的文件夹下吗? 答:好像是不能直接操作,但是可以通过变通的方式来搞定.在 ...
- hadoop版本比较 [转]
由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼.本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的 ...
- 使用Camera进行拍照
Android应用提供了Camera来控制拍照,使用Camera进行拍照的步骤如下: 1.调用Camera的open()方法打开相机. 2.调用Camera的getParameters()方法获取拍照 ...
- ZOJ 3647 Gao the Grid dp,思路,格中取同一行的三点,经典 难度:3
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4837 三角形的总数=格子中任取3个点的组合数-同一横行任取3个点数目-同一纵行 ...
- struts中的常量,action配置中的默认值
1.struts中Action的开发方式 继承ActionSupport类,这种方法实现的Action可以进行数据校验: 实现Action接口: 不继承任何类,不实现任何接口: 是否继承类或实现接口, ...
- Failed to instantiate the default view controller for UIMainStoryboardFile 'Main'
给UITableViewController 展示数据时候 删除系统自带viewController 然后拖过来一个UITableViewController 指定class后没有指定main入口 报 ...
- 从协议VersionedProtocol开始4——AdminOperationsProtocol、InterTrackerProtocol、JobSubmissionProtocol、TaskUmbilicalProtocol
1.package org.apache.hadoop.mapred这四个协议都在这个包下. 2.从最简单的AdminOperationsProtocol看, void refreshQueues() ...
- hdu 1033 (bit masking, utilization of switch, '\0' as end of c string) 分类: hdoj 2015-06-15 21:47 37人阅读 评论(0) 收藏
bit masking is very common on the lower level code. #include <cstdio> #include <algorithm&g ...
- 【转发】du命令 实现Linux 某个文件夹下的文件按大小排序
1. df -lh 2. du -s /usr/* | sort -rn这是按字节排序 3. du -sh /usr/* | sort -rn这是按兆(M)来排序 4.选出排在前面的10个du -s ...
- xlistview的XML(脚)xlistview_footer
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...