目的:

在centos6.5操作系统环境下制作一个centos6.5的kvm镜像,安装cloud-init,能自己主动扩展根分区

一、制作环境:

操作环境是在openstack平台开一个实例。装的是centos6.5,镜像来自:http://cloud.centos.org/centos/6.5/images/CentOS-6-x86_64-GenericCloud-20140929_01.qcow2

centos社区制作的镜像。不支持自己主动扩展根分区。导致创建实例时不论你指定硬盘大小是多大,它都是7G多点。

二、安装软件:

yum groupinstall Virtualization "Virtualization Client"
yum install libvirt libguestfs-tools

三、制作过程:

1、下载一个最小的centos6.5的iso文件:

2、创建一个空的镜像文件:
	qemu-img create -f qcow2 centos-6.5.qcow2 5G

3、创建命令:
	virt-install  --name centos-6.5 --ram 1024 --cdrom=CentOS-6.5-x86_64-minimal.iso --disk centos-6.5.qcow2,format=qcow2 --grap	hics vnc,listen=0.0.0.0 —noautoconsole --os-type=linux --os-variant=rhel6

4、系统安装过程:

分区仅仅分一个,挂载到“/”。格式为ext4。
不要swap,boot等分区
5、初始化镜像:
(1)安装完系统后。点击重新启动,事实上在virsh 命令下看这个虚拟机。已经是关机状态了,要用命令启动它
    virsh start centos-6.5
注意:启动过程很慢,仅仅能等待。不要在启动时重新启动它。不然出问题。

(2)通过vnc-viewer连接过去,假设你有跑多个虚拟机。能够用以下的命令来查看这个虚拟机的vncport
virsh vncdisplay centos-6.5
(3)要使nova console-log 能将实例启动过程输出到实例启动日志中,要在文件/boot/grub/menu.lst 中kernel參数中添加以下的内容:

    kernel ...(省略n个參数)... console=tty0 console=ttyS0,115200n8
(4)改动网络信息 /etc/sysconfig/network-scripts/ifcfg-eth0 (删掉mac信息)例如以下:
	TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no
    添加一行到/etc/sysconfig/network :
	NOZERCONF=yes
(5)添加epel源、更新系统。安装git:
	yum install -y http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
	yum -y distro-sync
	yum -y install git
(6)安装ACPI服务,能让宿主机对虚拟机进行开关机等电源管理操作
	yum install acpid
	chkconfig acpid on

(7)安装linux rootfs resize。使得实例启动时能够自己主动扩展根分区

	cd /tmp
git clone https://github.com/flegmatik/linux-rootfs-resize.git
cd linux-rootfs-resize
./install
(8)安装cloud-init
	yum install -y cloud-utils cloud-init parted
    改动配置文件/etc/cloud/cloud.cfg 。在cloud_init_modules 以下添加:
 	- resolv-conf
(9)关机:	
	poweroff
6、善后操作
(1)清除网络相关硬件生成信息
	virt-sysprep -d centos-6.5
(2)压缩镜像
	virt-sparsify --compress /tmp/centos-6.5.qcow2 centos-6.5-cloud.qcow2
镜像制作到此结束

參考文档:

制作openstack用的centos6.5镜像的更多相关文章

  1. 制作OpenStack云平台centos6.5镜像

    创建虚拟镜像 # qemu-img create -f raw Cloud_Centos6.5_64bit.img 10G [root@localhost ~]# ll /opt/CentOS-6.5 ...

  2. 制作OpenStack用的RHEL7系统镜像

    制作OpenStack使用的RHEL7系统镜像,并进行相关设置,安装XRDP以进行远程访问. 1.在KVM中安装RHEL7.2客户机: 2.设置网卡为dhcp并onboot=yes,使得虚拟机能自动获 ...

  3. 制作openstack的windows server 2012r2镜像

    1. 基础环境安装 yum groupinstall Virtualization "Virtualization Client" yum install libvirt 2. 启 ...

  4. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  5. 使用ISO文件制作openstack使用的coreOS镜像

    OpenStack源码交流群: 538850354 本篇文章是使用coreOS ISO文件手动制作openstack使用的qcow2镜像文件,关于coreOS的介绍,可以看这里 使用服务器:cento ...

  6. 用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos7.2镜像,放到/iso目录下 然后用OZ工具制作openstack的镜像 1.安装l ...

  7. 在centos7中使用supermin制作centos6.5docker镜像

    原文 按照原文操作发现,版本并非是我们想要的,而是跟宿主机版本一致.不过可以到dockerhub上pull一个centos6.5的镜像 要安装使用docker 需要内核3.10以上,所以在虚拟机中安装 ...

  8. 【docker】学习笔记一:制作自己的centos6.9镜像

    前言: 最近开始研究docker,在这里做一个记录. 本来开始想用centos7系列做镜像,毕竟是最新版本的centos,但是centos7有一个严重的bug,就是正常启动的镜像不能使用systemc ...

  9. 制作可以 SSH 登录的 Docker 镜像

    Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作. 执行这个命令就把源地址改为阿里的: curl https://git.oschina.net/feedao/Docker_shell ...

随机推荐

  1. Java--日期的使用

    Date 类: 最基础的日期时间类,返回一个相对日期的毫秒数.精确到毫秒,但不支持日期的国际化和分时区显示. Calender类: 相对于Date更加强大的时间类,是抽象类,提供了常规的日期修改功能和 ...

  2. 又见拦截导弹(LIS)

    又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系 ...

  3. wxWidgets刚開始学习的人导引(4)——wxWidgets学习资料及利用方法指导

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  4. BZOJ 1704: [Usaco2007 Mar]Face The Right Way 自动转身机( 贪心 )

    贪心...先枚举k, 然后从左往右扫一遍, 发现位置p的牛的状态不符合就将 [p, p + k ) 的牛都转身, 假如p + k - 1 已经超过了最右边牛的位置那这个k就不符合要求. 符合要求的就可 ...

  5. 修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer

    在没有配置全局性的 Composer 的时候,如果你在没有安装 Composer 的目录下运行 Composer 命令,比如:create-project 系统会返回: Could not open ...

  6. highcharts dynamic change line color

    mouseOut: function(){ this.series.graph.attr({"stroke","#ccc"}) }

  7. 利用navicat for oracle将数据库全部数据移动

    话不多说.直接上图. 1.首先选择自己的数据库. 右键,data transfer 2.选择相应源数据库,目标数据库.点击start就可以.假设中间失败,可多尝试几次. 2.

  8. window批处理-3.go

    go: 控制批处理中的命令运行流程 命令格式: go label lable--行号 demo bat @echo off echo 跳过中间.运行最后 goto last type a.txt :l ...

  9. ASP.NET Core Authorization

    ASP.NET Core Authorization 本文目录 Asp.net Core 对于授权的改动很友好,非常的灵活,本文以MVC为主,当然如果说webapi或者其他的分布式解决方案授权,也容易 ...

  10. Swift - 后台获取数据(Background Fetch)的实现

    前面讲了如何让程序申请后台短时运行.但这个额外延长的时间毕竟有限.所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知. 1,后台获取介绍 后台获取(Background Fetch)是 ...