上次我们介绍了给 OpenNebula 制作 Windows 镜像,当然了少不了 Ubuntu 了,为 OpenNebula 制作 Ubuntu 镜像的步骤和制作 Windows 镜像差不多,以下是具体步骤:
首先下载需要安装的 ubuntu 版本:
$ wget http://releases.ubuntu.com/11.10/ubuntu-11.10-server-amd64.iso
创建一个 10GB 大小的 “硬盘”(raw 格式):
$ kvm-img create -f raw ubuntu.img 10G
Formatting 'ubuntu.img', fmt=raw size=10737418240
然后使用刚才下载的 ubuntu “安装盘” 和刚创建的 “硬盘” 引导启动系统,使用 -vnc 参数打开 vnc 访问,以便可以用其他机器远程登录进行安装操作:
$ sudo kvm -m 512 -cdrom ubuntu-11.10-server-amd64.iso \
-drive file=ubuntu.img -boot d -nographic -vnc :0
在其他机器上用 vnc 客户端登录后就可以看到 Ubuntu 安装界面,按照屏幕的提示完成 ubuntu 的安装工作,需要注意的是分区的时候只分一个区给 /,不要分 swap 区,以后 VPSee 将会提到如何给虚拟机加上交换分区:
$ vncviewer 172.16.39.111:5900
安装完后会自动重启,shutdown -h now 虚拟机后再按照下面命令启动刚刚安装好的虚拟机镜像 ubuntu.img,如果出现 failed to find romfile “pxe-rtf8139.bin” 的错误提示可以通过安装 kvm-pxe 解决:
$ sudo kvm -m 512 -drive file=ubuntu.img -boot c -nographic -vnc :0
kvm: pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"
$ sudo apt-get install kvm-pxe
再次用 vnc 登录虚拟机镜像,升级和更新系统,可以安装一些必要工具,比如 OpenSSH 之类的:
$ vncviewer 172.16.39.111:5900
$ sudo update
$ sudo upgrade
$ sudo apt-get install openssh-server
创建和编辑虚拟网络配置文件,然后创建一个 OpenNebula 虚拟网络(参考:在 CentOS 上安装和配置 OpenNebula):
$ vi small_network.net
NAME = "Small network"
TYPE = FIXED
BRIDGE = br0
LEASES = [ IP="172.16.39.111"]
LEASES = [ IP="172.16.39.112"]
LEASES = [ IP="172.16.39.113"]
$ onevnet create small_network.net
$ onevnet list
ID USER NAME TYPE BRIDGE P #LEASES
0 oneadmin Small network Fixed br0 N 0
创建和编辑 Ubuntu 虚拟机的启动配置文件。注意别忘了加上 ARCH = x86_64(否则无法正常启动 Ubuntu),我们刚才安装的是 Ubuntu 64位 Server 版(ubuntu-11.10-server-amd64.iso):
NAME = ubuntu
CPU = 1
MEMORY = 512
OS = [ ARCH = x86_64,
BOOT = hd,
ROOT = sda1
]
DISK = [ source = /var/lib/one/images/ubuntu.img,
clone = no,
target = sda,
readonly = no ]
GRAPHICS = [ type ="vnc",
listen ="0.0.0.0",
port = "5900" ]
NIC = [ NETWORK = "Small network" ]
依照上面的配置在 OpenNebula 上创建一个 Ubuntu 虚拟机,等待一下 OpenNebula 会自动根据当前资源情况调度,期间不断用 onevm list 命令查看当前虚拟机的创建情况,状态会从 pend -> prol -> boot -> runn,runn 状态就表示虚拟机已经成功创建并正常运行。***检查一下 OpenNebula 是否成功创建一个名叫 ubuntu 的虚拟机:
$ onevm create ubuntu.one
$ onevm list
ID USER NAME STAT CPU MEM HOSTNAME TIME
42 oneadmin ubuntu runn 1 512M node00 00 01:16:39
【编辑推荐】