internet-logo41

Cетевая загрузка через nfs

Перерыл кучу информации, и тем не менее...
Хочу гостевую машину в kvm грузить по сети (имитируем работу бездисковой станции).
Сервер имеет адрес 192.168.100.1, гостевая машинка получает адрес в подсети 192.168.200.0

Подготовка:
Создаём директорию /pub/root, добавляем её в /etc/exports:
/pub/root    192.168.0.0/16(ro,sync,no_root_squash)

С другой работающей машины fedora (тоже из kvm) копируем всё содержимое в /pub/root:
rsync -v -a --exclude="/proc/*" --exclude="/sys/*" -e ssh fedora:/ /pub/root/

Настраиваем dhcpd.conf для отдачи адреса и имени файла загрузки бездисковому клиенту:
subnet 192.168.200.0 netmask 255.255.255.0 {
range 192.168.200.100 192.168.200.200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.200.255;
option routers 192.168.200.1;
option domain-name-servers 192.168.100.1;
default-lease-time 3600;
max-lease-time 7200;
option ntp-servers 192.168.100.1;
option log-servers 192.168.100.1;
}
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.100.1;
option root-path "192.168.100.1:/pub/root";
filename "pxelinux.0";
}

Настраиваем tftp сервер и прописываем в /var/lib/tftpboot/pxelinux.cfg/default параметры загрузки:
default Fedora_12

label Fedora_12
kernel Fedora_12/vmlinuz
append  initrd=Fedora_12/initramfs.img root=192.168.100.1:/pub/root

Установив предварительно dracut и dracut-network создаём initramfs.img
dracut initramfs $(uname -r)
и копируем его и ядро (vmlinuz) в директорию /var/lib/tftpboot/Fedora_12/

Запускаем гостевую машину. Получаем ip адрес и все параметры от DHCP сервера. Загружаем образ и initramfs.
И всё. При попытке достучаться до корня по nfs получаем сообщение:
No root device found.
mount.nfs: mount to nfs server '192.168.100.1:/pub/root' failed: System Error: No route to host

Продолжение

Неудивительно, но какой-то косяк возник в организации моста. Ничего особо не меняя, удалось всё завести и запустить десяток одинаковых виртуалок.
Корректные настройки получились такие:
/etc/sysconfig/network-scripts/ifcfg-tap9

ONBOOT=yes
DEVICE=tap9
TYPE=Tap
BRIDGE=virbr0


/etc/sysconfig/network-scripts/ifcfg-virbr0

ONBOOT=yes
DEVICE=virbr0
IPADDR=192.168.200.1
NETMASK=255.255.255.0
TYPE=Bridge
BOOTPROTO=static
STP=on
DELAY=0


/etc/libvirt/qemu/networks/diskless.xml
<network>
<name>diskless</name>
<uuid>8b73d390-06f1-8cdc-8746-663907650365</uuid>
<forward dev='tap9' mode='nat'/>
<bridge name='virbr0' stp='on' delay='0' />
<ip address='192.168.200.1' netmask='255.255.255.0'>
</ip>
</network>

Источник: http://www.fedoralinux.ru/forum/viewtopic.php?id=4859