阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

OpenStack制作Ubuntu 镜像

134次阅读
没有评论

共计 5547 个字符,预计需要花费 14 分钟才能阅读完成。

OpenStack 制作 Ubuntu 镜像

1. 下载对应需求的 Ubuntu 镜像

2. 安装 kvm-pxe(此步骤因为在搭建openstack 环境应该已经下载,故应该可以省略)

apt-get install kvm-pxe

Note:用于解决出现 :failed to find romfile“pxe-rtf8138.bin” 错误

3. 创建一个大小 10G 的“硬盘”(raw格式)

kvm-img create -f raw ubuntu.img 10G

4. 使用刚才下载的 ubuntu“安装盘”和刚创建的“硬盘”引导启动系统,为了简单起见,本文使用kvm 虚拟技术,避开 xen 繁琐的配置。-vnc参数代表撕开 vnc 访问,以便可以使用其他机器远程登陆到这个引导界面进行安装操作:

kvm -m 1024 -cdrom ubuntu-11.10-server-amd64.iso -drive file=ubuntu.img -boot d -nographic -vnc :5

Note:

1. 本命令是前台进程,会占用一个终端,后续操作需要打开一个新的终端

2. 启动 kvm 命令可以在 server 版本中运行,但是安装系统的操作需要桌面图形支持

3. 如果提示端口 3 被占用,访问拒绝,那么继续向后调整到端口 4,5 直到不提示错误

状态是上面一行命令保持不动,此时继续执行下面操作

5. vncviewer 登陆引导界面后按照屏幕的提示完成 ubuntu 的安装工作 ( 安装过程和自己电脑一样,安装过程省略 )。需要注意的是在分区阶段把10GB 硬盘全部分成一个 ext4 分分区,并挂在到 / 下,不要创建多个分区也不要创建 swap 分区

vncviewer 192.168.1.198:5905

Note

1. 192.168.1.198是本机IP

2. 安装完成后退出,必要时 killkvm进程

3. 5905的数字 3 对应之前的vnc5,如果修改,则二者应该保持一致。

6. 重启虚拟机镜像

kvm -m 1024 -drive file=ubuntu.img -boot c -net nic -net user -nographic -vnc :5

 

主意:2048代表虚拟机内存大小,如果真机内存较大的情况下,建议将该值调整到 1024 或者2048,这样可以保证较为流畅的操作

7. 安装相关模板服务制作

vncviewer 192.168.1.198:5905进入模板系统

(因为 vnc 内对 ctrl+alt+t 组合键不能识别,故不能通过快捷键在虚拟机内直接调用终端,所以需要手动点击左上角 ubuntu 图标,在搜索一栏输入终端,并启动终端),然后执行如下三行

apt-get update

apt-get upgrade 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92642p2.htm

相关阅读

为 OpenStack Nova 制作 Ubuntu 镜像  http://www.linuxidc.com/Linux/2012-09/70031.htm

在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm

Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 http://www.linuxidc.com/Linux/2012-08/68101.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 上篇 http://www.linuxidc.com/Linux/2012-06/61963.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 下篇 http://www.linuxidc.com/Linux/2012-06/61964.htm 

8. 调整 Ubuntu 镜像

因为 Openstack 只接受 ext4 文件系统格式的镜像,所以需要把上面创建的 raw 镜像转换成 ext4 镜像。下面的步骤用来找出镜像文件里面的分区起点是从哪里开始的:

losetup -f ubuntu.img

losetup -a

会提示如下信息

/dev/loop0: [fb00]:24117291 (/home/localadmin/ubuntu.img)

fdisk -l /dev/loop0

提示如下信息

Disk /dev/loop0: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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: 0x000502e6

 

Device Boot Start End Blocks Id System

/dev/loop0p1 * 2048 20969471 10483712 83 Linux

 

上面最后一行显示分区是从扇区(sector2048开始的,每个扇区是 512 个字节,所以是从 2048 x 512 = 1048576 个字节开始的。记住这个1048576,下面会用到。

 

卸载 loop 后重新从 1048576 字节开始挂载:

losetup -d /dev/loop0

losetup -f -o 1048576 ubuntu.img

losetup -a

提示信息:/dev/loop0: [fb00]:24117291 (/home/localadmin/ubuntu.img), offset 1048576

把这整个分区拷贝到一个新文件就是一个我们要的 ext4 文件系统镜像:

dd if=/dev/loop0 of=ubuntutemplate.img

会提示:

20969472+0 records in

20969472+0 records out

10736369664 bytes (11 GB) copied, 107.455 s, 99.9 MB/s

用完 loop 后记得卸载:

losetup -d /dev/loop0

挂载(mount)刚创建的 ext4 文件系统镜像,并修改分区加载表(/etc/fstab),注释或删除以前的,加上 UUID=uec-rootfs 一行:

mount -o loop ubuntutemplate.img /mnt

vi /mnt/etc/fstab

注释掉原有行

#UUID=1dc3a59e-faab-41ee-b232-3300163676bf / ext4 errors=remount-ro 0 1

然后添加

UUID=uec-rootfs / ext4 defaults 0 0

保存退出

把内核(vmlinuz)和内存盘(initrd)文件拷贝出来以便后面和虚拟机镜像一起发布到 OpenStack 云里。这个最好是手动进入 /mnt/boot 目录里查看 initrdvmlinuz这两个文件,因为不同版本 ubuntu 对应最后的标示不一样,如 server 版本 ubuntu,则两个文件名分别都已server 结尾,如果是 desktop 版本的,则会以 generic 结尾,笔者因为使用 desktop 版本制作,情况属于后者,至于拷贝到哪里,要看你 img 文件在哪里,笔者是直接放在了 /root/ 目录下

使用完虚拟机镜像后记得卸载(unmount):

cp /mnt/boot/initrd.img-3.2.0-29-generic /root/

cp /mnt/boot/vmlinuz-3.2.0-29-generic/root/

umount /mnt

把刚才的虚拟机镜像 ubuntutemplate.img 的文件系统标志改成‘uec-rootfs’

tune2fs -L uec-rootfs ubuntutemplate.img

9. 发布 Ubuntu 镜像

发布镜像需要使用上述三个文件 initrd.img-3.2.0-29-genericvmlinuz-3.2.0-29-genericubuntutemplate.img

 

glance add name=”ubuntu-ramdisk” is_public=true container_format=ari disk_format=ari < initrd.img-3.0.0-12-server

返回一个ramdisk_id(一大长串那个):如图1

 

glance add name=”ubuntu-kernel” is_public=true container_format=aki disk_format=aki < vmlinuz-3.0.0-12-server

返回一个 kernel_id:(一大长串那个) 如图2

 

glance add name=”ubuntufinal” is_public=true container_format=ami disk_format=ami kernel_id=2idramdisk_id=1id < ubuntutemplate.img

三个文件分别上传完毕之后,打开 dashboard 利用 ubuntutemplate 启动实例即可

建议给实例选择机器配置时选择多核高内存的选项,以保证实例的流畅运行

更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

OpenStack 制作 Ubuntu 镜像

1. 下载对应需求的 Ubuntu 镜像

2. 安装 kvm-pxe(此步骤因为在搭建openstack 环境应该已经下载,故应该可以省略)

apt-get install kvm-pxe

Note:用于解决出现 :failed to find romfile“pxe-rtf8138.bin” 错误

3. 创建一个大小 10G 的“硬盘”(raw格式)

kvm-img create -f raw ubuntu.img 10G

4. 使用刚才下载的 ubuntu“安装盘”和刚创建的“硬盘”引导启动系统,为了简单起见,本文使用kvm 虚拟技术,避开 xen 繁琐的配置。-vnc参数代表撕开 vnc 访问,以便可以使用其他机器远程登陆到这个引导界面进行安装操作:

kvm -m 1024 -cdrom ubuntu-11.10-server-amd64.iso -drive file=ubuntu.img -boot d -nographic -vnc :5

Note:

1. 本命令是前台进程,会占用一个终端,后续操作需要打开一个新的终端

2. 启动 kvm 命令可以在 server 版本中运行,但是安装系统的操作需要桌面图形支持

3. 如果提示端口 3 被占用,访问拒绝,那么继续向后调整到端口 4,5 直到不提示错误

状态是上面一行命令保持不动,此时继续执行下面操作

5. vncviewer 登陆引导界面后按照屏幕的提示完成 ubuntu 的安装工作 ( 安装过程和自己电脑一样,安装过程省略 )。需要注意的是在分区阶段把10GB 硬盘全部分成一个 ext4 分分区,并挂在到 / 下,不要创建多个分区也不要创建 swap 分区

vncviewer 192.168.1.198:5905

Note

1. 192.168.1.198是本机IP

2. 安装完成后退出,必要时 killkvm进程

3. 5905的数字 3 对应之前的vnc5,如果修改,则二者应该保持一致。

6. 重启虚拟机镜像

kvm -m 1024 -drive file=ubuntu.img -boot c -net nic -net user -nographic -vnc :5

 

主意:2048代表虚拟机内存大小,如果真机内存较大的情况下,建议将该值调整到 1024 或者2048,这样可以保证较为流畅的操作

7. 安装相关模板服务制作

vncviewer 192.168.1.198:5905进入模板系统

(因为 vnc 内对 ctrl+alt+t 组合键不能识别,故不能通过快捷键在虚拟机内直接调用终端,所以需要手动点击左上角 ubuntu 图标,在搜索一栏输入终端,并启动终端),然后执行如下三行

apt-get update

apt-get upgrade 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92642p2.htm

相关阅读

为 OpenStack Nova 制作 Ubuntu 镜像  http://www.linuxidc.com/Linux/2012-09/70031.htm

在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm

Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 http://www.linuxidc.com/Linux/2012-08/68101.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 上篇 http://www.linuxidc.com/Linux/2012-06/61963.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 下篇 http://www.linuxidc.com/Linux/2012-06/61964.htm 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5547字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中