分类: LINUX
2013-12-06 11:08:21
1.创建镜像
qemu-img create -f raw vm.img 5G
2.安装配置虚机
先找到一个debian的安装iso
yum -y install virt-install virt-viewer
virt-install --name debian6 --ram 2048 --cdrom debian-6.0.8-amd64-netinst.iso --disk vm.img --vnc --vnclisten=0.0.0.0
在win下使用vnc viewer链接到虚机并手动安装
需要修改一下vnc的配置
options→advanced→expert : 修改 colorLevel 为 full
之后手动安装虚机,注意在分区阶段把5G全部分成一个ext4 / 分区,不要创建多个分区也不要创建swap分区。因为openstack只接受ext4文件格式的镜像,所以把分区格式化成ext4。
利用VNC进入虚拟机,配置eth0网卡,设置为dhcp获取ip。清空/etc/udev/rules.d/70-persistent-net.rules内容,因为它会自动添加其他的网络接口,需要删除这个文件避免自动添加除eth0以外的接口。设置内网DNS。
3.准备镜像
挂载img
losetup -f vm.img
losetup –a
/dev/loop0: [0801]:33685508 (/srv/loopback-device/device1)
/dev/loop1: [0801]:7602235 (/tmp/vm.img)
用fdisk找到偏移量和block size
fdisk -c -u -l /dev/loop1
Disk /dev/loop1: 5368 MB, 5368709120 bytes
149 heads, 8 sectors/track, 8796 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00083258Device Boot Start End Blocks Id System
/dev/loop1 2048 10483711 5240832 83 Linux
上面最后一行显示分区是从扇区(sector)2048开始,每个扇区是512个字节,所以是从2048*512=1048576个字节开始。
losetup -d /dev/loop1
losetup -f -o 1048576 vm.img
losetup –a
/dev/loop0: [0801]:33685508 (/srv/loopback-device/device1)
/dev/loop1: [0801]:7602235 (/tmp/vm.img), offset 1048576拷贝出最终镜像,卸载旧镜像:
dd if=/dev/loop1 of=debian6.img
losetup -d /dev/loop1
4. 镜像修改
mount -o loop debian6.img /mnt/
修改 /mnt/etc/fstab,LABEL=/ 改成LABEL=uec-rootfs。例如
#UUID=1eea2fbe-a02e-4eed-8351-885dd84ab041 / ext4 errors=remount-ro 0 1
UUID=uec-rootfs / ext4 defaults 0 0从/mnt/boot/里面拷贝 initrd和vmlinuz文件到当前目录
cp /mnt/boot/initrd.img-2.6.32-5-amd64 .
cp /mnt/boot/vmlinuz-2.6.32-5-amd64 .将新镜像修改一下标签
tune2fs -L uec-rootfs debian6.img
5. 上传镜像
glance add name="debian6 initrd" disk_format=qcow2 container_format=ovf is_public=true < initrd.img-2.6.32-5-amd64
Added new image with ID: 389b0a7d-442d-415d-87cd-7b79c9d64a4f
glance add name="debian6 vmlinuz" disk_format=qcow2 container_format=ovf is_public=true < vmlinuz-2.6.32-5-amd64
Added new image with ID: b2a1dd73-c5b9-4b69-8dfb-25048197ad14
glance add name="debian6 OS" disk_format=qcow2 container_format=ovf is_public=ture ramdisk_id="389b0a7d-442d-415d-87cd-7b79c9d64a4f" kernel_id="b2a1dd73-c5b9-4b69-8dfb-25048197ad14" < debian6.img
Added new image with ID: 17e36140-8f8d-45f9-9c54-8e40ac3d5417
参考链接
http://my.oschina.net/davehe/blog/92250
http://zhumeng8337797.blog.163.com/blog/static/10076891420134635832525/