通过PXE安装虚拟机

本文在一个虚拟机(Ubuntu 11.04 server)中建立PXE Server, 然后在KVM中通过PXE安装一个虚拟机(Ubuntu 11.04 Server ). 这两个虚拟机显然都处在同一个局域网内.

因为PXE虚要裸机在启动时通过DHCP协议去找PXE server要IP, 所以对于跨局域网的PXE安装需要DHCP中继, 这不在本文的讨论范围内, 可参照: PXE跨局域网之系统自动安装

1.1 dnsmasq

apt-get install dnsmasq

vim /etc/dnsmasq.conf

bogus-priv

filterwin2k

interface=eth0

dhcp-range=192.168.100.172,192.168.100.180,12h

dhcp-host=52:54:00:ed:00:f7,192.168.100.178

dhcp-boot=pxelinux.0

enable-tftp

tftp-root=/var/ftpd

dhcp-authoritative


/etc/init.d/dnsmasq restart

注意:如果想要为pxe client分配固定IP,可使用dhcp-host参数.采用这种方式的好处是可以避免将已经网络的IP搞乱.
如果使用KVM提供的虚机作为pxe client来测试时, 应该每测试一次新建一个虚机(千万不能重复测试).

1.2 PXE
mkdir /var/www/ubuntu

mount -o loop/bak//kvmimages/ubuntu-11.10-server-amd64.iso /mnt

cp /mnt/preseed/ubuntu-server.seed /var/www/ubuntu
cp -a /mnt/* /var/www/ubuntu
cp -r /mnt/install/netboot/* /var/ftpd/

vim /var/ftpd/pxelinux.cfg/default
default linux
label linux
    kernel ubuntu-installer/amd64/linux
    append ks=http://192.168.100.171/ubuntu/ks.cfg preseed/url=http://192.168.100.171/ubuntu/ubuntu-server.seed vga=normal initrd=ubuntu-installer/amd64/initrd.gz --

注意, 上述ks,与preseed应该配置一个Web服务器指向/var/www/ubuntu目录.

1.3 Apache

apt-get install apache2

vi /etc/apache2/sites-available/default

<VirtualHost *>

ServerName ubuntu

DocumentRoot /var/www/ubuntu

<Directory /var/www/ubuntu>

Options ExecCGI FollowSymLinks

AllowOverride all

allow from all

Order allow,deny

</Directory>

ErrorLog/var/log/apache2/error-ubuntu.log

</VirtualHost>

sudo ln -s /etc/apache2/sites-available/default/etc/apache2/sites-enabled/ubuntu

/etc/init.d/apache2restart

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21505.html