在命令行中安装KVM ubuntu 10.04虚拟机
Posted in linux On 2011-06-12 17:09:32 , tagged with kvm, linux, ubuntu.
一般虚拟机都很容易安装,尤其是使用有图形界面的虚拟机软件。
但在某些场合,只能命令行安装。
现在linux流行的虚拟机软件有Xen\KVM等。ubuntu自从9.04开始,从源中去掉Xen,转为提供KVM。本文记录下命令行安装KVM虚拟机的过程。
Host主机是在Ubuntu 11.04,安装的Guest主机将使用Ubuntu 10.04
准备
1 sudo apt-get install kvm libvirt-bin virtinst
你还需要有一个Ubuntu 10.04 的ISO,我选用的是server 32位版。然后把iso mount起来
1 sudo mkdir /media/iso
2 sudo mount -o loop /media/1T/ISO/linux/ubuntu-10.04.2-server-i386.iso /media/iso
3 cd /media/iso
4 python -m SimpleHTTPServer
使用python命令可以以当前目录为根目录,创建一个简易HTTP Server,留作之后的步骤使用。
创建虚拟机
将以下内容写到一个bash脚本,如build.sh:
1 #!/bin/bash
2
3 if [ "$#" -ne 2 ]; then
4 echo "Usage: $0 "
5 exit 0
6 fi
7
8 name=$1
9 file=$2
10
11 virt-install -n ${name} \
12 -r 512 --vcpus=2 --nographic \
13 --os-type=linux --os-variant=ubuntuLucid \
14 --disk path=${file},size=5 \
15 -v --arch=i386 -d \
16 --connect qemu:///system \
17 --accelerate \
18 --location http://localhost:8000/ubuntu \
19 --extra-args="text console=tty0 utf-8 console=ttyS0,115200"
使用
1 ./build.sh datanode1 vm1.img
即可开始创建Guest OS,过程中会有一段时间黑屏,KVM进程会占用大量CPU,这是正常的,请耐心等待。
很快会进入到命令行安装Ubuntu的界面,按照向导操作即可。其中有一步让你选安装什么包,请选上OpenSSH,当然你也可以之后再安装。(其中有一步是选择源镜像,按照某文章,是可以用iso mount起来,然后建立HTTP服务器来作为源的,但我尝试失败了,如果你知道,请告诉我)
经过漫长的从网上源下载安装后,Ubuntu Guest OS就已经装好了。
配置虚拟机
使用virsh命令可以进入虚拟机管理shell,list –all命令可以列出现有的虚拟机。
使用start datanode即可启动虚拟机,使用console datanode即可把当前console连接上虚拟机。
登录进虚拟机后,查看下IP。推荐使用ssh登录虚拟机而不是console,console模式在vi编辑时会有问题,应该是shell的问题,懒得深究了。
默认KVM的虚拟机会使用NAT/DHCP配置,这里我把它改成Static IP,方便之后ssh登录。
配置静态IP
1 sudo vi /etc/network/interfaces
将iface eth0 inet dhcp那行注释掉,配置如下:
1 iface eth0 inet dhcp
2 iface eth0 inet static
3 address 192.168.122.101
4 netmask 255.255.255.0
5 gateway 192.168.122.1
然后执行命令
1 sudo ifdown eth0 && sudo ifup eth0
创建第二个虚拟机
有了第一个虚拟机,如果需要创建另一个一模一样的虚拟机,可以使用virt-clone命令。
1 virt-clone --connect=qemu:///system -d -f vm2.img -o datanode1 -n datanode2
复制好之后,需要修改一些地方以便与之前源虚拟机区分开来。
通过console连接上datanode2,编辑/etc/hosts和/etc/hostname,修改datanode1为datanode2
然后执行
1 sudo rm /etc/udev/rules.d/70-persistent-net.rules
2 sudo reboot
重启后即可让虚拟机生成自己的网络配置
重复上一节的配置静态IP步骤,并在Host主机内配置hosts指向Guest OS的地址。至此,多个虚拟机的配置即告完成。
参考:
Installing an Ubuntu 10.x KVM Guest OS from the Command-line (virt-install and virsh)
KVMCreateGuests
How clone a KVM virtual machine on Ubuntu Server