使用virt-manager创建无盘工作站(基于nfs文件系统)

首先需要做些准备工作:

1.安装xming及virt-manager, 安装过程网上很多,就不一一叙述了。安装完成后,使用putty登陆服务器,需要配置如下:

connection -> SSH -> X11 中将X11 forwarding中的Enable X11 forwarding选中,并在X display location中输入localhost:0

完成后,启动virt-manager。

2.安装nfs

apt-get install nfs-kernel-server

创建一个目录作为nfs目录:

mkdir /nfs

并配置其配置文件,/etc/exports如下:

/nfs *(rw,sync,no_root_squash,no_subtree_check)

3.安装tftp及syslinux

apt-get install tftpd-hpa

apt-get install syslinux

cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot 

接下来在/var/lib/tftpboot 下创建启动引导的配置目录:

1> mkdir /var/lib/tftpboot/pxelinux.cfg

2> cd /var/lib/tftpboot/pxelinux.cfg 并创建启动的default文件:

DEFAULT ubuntu
TIMEOUT 5

LABEL ubuntu
kernel vmlinuz
append initrd=initrd.nfs boot=nfs root=/dev/nfs nfsroot=109.105.115.49:/nfs ip=dhcp rw
PROMPT 1

其中initrd.nfs是自己做的initrd.

在制作initrd前需要修改 initramfs的配置文件,使其启动时挂载文件系统的方式修改为nfs,如下:

vi /etc/initramfs-tools/initramfs.conf

将其中的BOOT=auto修改为BOOT=nfs


然后使用debootstrap制作文件系统,存放在/nfs目录下:

sudo debootstrap --arch amd64 trusty /nfs

先查看当前系统中的内核版本:

ls /lib/modules
3.13.0-24-generic  4.0.4

并选择其中的一个制作 initrd,这里选择4.0.4,如下:

mkinitramfs -o /var/lib/tftpboot/initrd.nfs 4.0.4

在tftp根目录下也要有kernel的image,可以直接从编译过的内核中拷贝一个,如下:

cp /boot/vmlinuz /var/lib/tftpboot/

这里的vmlinuz即是default文件里面的引导kernel文件名。这样tftp根目录下就有了pxe配置文件及目录、kernel及initrd。准备工作完成。

下面首先配置libvirt的default bridge,使它能允许pxe及tftp。

修改/etc/libvirt/qemu/networks/default.xml如下:

<network>
  <name>default</name>
  <bridge name="virbr0"/>
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <tftp root="/var/lib/tftpboot"/>
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254"/>
      <bootp file="pxelinux.0"/>
    </dhcp>
  </ip>
</network>

配置完成后重启服务器。
然后使用virt-manager创建虚拟机,选择从pxe启动,虚拟机会自动从/var/lib/tftpboot/下load kernel,initrd,及mount /nfs下的文件系统。

原文地址:https://www.cnblogs.com/chaozhu/p/6125079.html