Openstack 自制linux kvm debian6镜像
程序员文章站
2024-03-08 18:26:59
...
这篇笔记写了好几个月了,一直没有整理,为了防止以后遗忘,先记录一下
1 参照以前文档搭建一台可以安装kvm虚拟机的机器
http://my.oschina.net/guol/blog/62239
2
建立镜像
kvm-img create -f raw server.img 5G
3
导入安装ISO
采用debian6作为模版
4 安装kvm虚拟机
kvm -m 2048 -drive file=server.img -cdrom debian-6.0.2.1-amd64-CD-1.iso -vnc 10.1.6.89:1 -boot d
5
安装虚拟机
利用VNC安装虚拟机,把kvm虚拟机安装进创建的镜像里面,全部给/分区,不划分swap
6 启动kvm虚拟机
kvm -m 2048 -drive file=server.img -cdrom debian-6.0.2.1-amd64-CD-1.iso -vnc 10.1.6.89:1 -boot c
7
VNC连接虚拟机
利用VNC进入虚拟机,配置eth0网卡,设置为dhcp获取ip,清空/etc/udev/rules.d/70-persistent-net.rules内容,设置内网DNS
8 设置ext4文件系统
因为openstack需要ext4格式的文件系统,所以把刚才raw格式的server.img镜像转化为ext4格式
挂载镜像
losetup -f server.img
losetup -a
fdisk -c -u -l /dev/loop0
卸载镜像,从偏移量1048576重新挂载
losetup -d /dev/loop0
losetup -f -o 1048576 server.img
losetup -a
生成新的镜像,将/dev/loop0镜像copy到一个镜像中,然后卸载旧的镜像
dd if=/dev/loop0 of=debian6.img
losetup -d /dev/loop0
挂载新生成的镜像,进行修改fstab文件
mount -o loop debian6.img /livecd
修改root分区挂载格式如下
vi /livecd/etc/fstab
LABEL=uec-rootfs / ext4 defaults 0 0
从/livecd/boot里面copy initrd和vmlinuz文件
cp initrd.img-2.6.32-5-amd64 /mnt
cp vmlinuz-2.6.32-5-amd64 /mnt
卸载镜像,修改文件系统标志
umount /livecd
tune2fs -L uec-rootfs debian6.img
9 在openstack中登记新镜像
#下面的命令会返回一个ID
glance add name="debian6 initrd" disk_format=qcow2 container_format=ovf is_public=true < initrd.img-2.6.32-5-amd64
#下面的命令会返回一个ID
glance add name="debian6 vmlinuz" disk_format=qcow2 container_format=ovf is_public=true < vmlinuz-2.6.32-5-amd64
#使用上面两个ID上传主镜像
glance add name="debian6 OS" disk_format=qcow2 container_format=ovf is_public=true ramdisk_id="429d4f95-14ec-4748-81e0-52fd57ce9fd1" kernel_id="c9ba5e5d-d903-4127-9b56-dfbbe8a8ceac" < debian6.img
制作的镜像经过多次测试,均可以正常使用。
转载于:https://my.oschina.net/guol/blog/86972