Pull to refresh

Установка FreeBSD 9.0-BETA2 как DomU в режиме PV

Reading time3 min
Views4.5K
Суть такова — есть Debian + Xen 4.1.1, туда надо установить FreeBSD. Краткая справка, начиная с FreeBSD 8.0 умеет работать в Xen в режиме PV, до этого был доступен только режим HVM и только если ядро включает в себя нужные драйверы и опции. Так же, только i386 версия работает в режиме PV.

Существует 2 метода установки FreeBSD в Xen:
  • Создание образа системы на другой FreeBSD и перенос его в Xen
  • Первоначальная установка в HVM и последующий перенос в PV



Так как у меня отсуствует другая машина на FreeBSD с хорошим аплоадом, я решил пойти по 2 методу.

Подготовка



Нам подтребуется:

  • Настроеный dom0
  • ISO образ установщика (FreeBSD 8.2 тоже должен подойти)
  • VNC Клиент


Если у вас Mac OS X: едиственный VNC клиент который у меня заработал нормально это — TightVNC Java Viewer.

Первоначальный конфиг для xm:
kernel = "hvmloader"
builder='hvm'
memory = 256
name = "FreeBSD-Dev"
vif = [ 'type=ioemu' ]

disk = [
    'phy:/dev/tank/freebsd--disk,ioemu:hda,w',
    'file:/root/FreeBSD-9.0-BETA2-i386-dvd1.iso,hdc:cdrom,r'
    ]
device_model = 'qemu-dm'
boot="cd"
vnc=1
vnclisten="0.0.0.0"
vncpasswd='freebsdinstall'
serial='pty'


Установка



Запускаем (xm create /path/to/freebsd.cfg), соеденяемся по VNC. Если у вас нет других доменов с VNC, то порт будет 5900. Если Dom0 находится за пределами видимости (за NAT например), то на локальной машине можно пробросить ssh тоннель. В нормальных ОС это делается так:
ssh -L 5900:127.0.0.1:5900 xx.xx.xx.xx

После этого можно соеденятся с доменом (в качестве сервера указать 127.0.0.1:5900). Сеть лучше настроить статиком, с DHCP бывают проблемы. Во время установки надо указать, что вы хотите src. Процесс установки не должен вызвать затруднений, однако у меня возникла проблема — lvm раздел который я создал был ровно 20gb, и когда я указал, что все 20 выделить под /, система попросила 64кб для загрузочника и по какой-то причине эти 64кб не отрезались от / и в результате я получил ошибку о нехватке места. Кстати, о именах дискоа: hda -> ad0, sda -> da0.

Собираем ядро



Чтобы FreeBSD работала в режиме PV, надо пересобрать ядро:
cd /sys/i386/conf/
config XEN
cd ../compile/XEN ; make cleandepend && make depend && make && make install


Теперь надо перенести ядро с DomU на Dom0:
scp /boot/kernel/kernel user@ip:/path


Для того, чтобы к домену можно было подключиться через xm console, надо отредактировать фаил /etc/ttys:
...
xc0 "/usr/libexec/getty Pc" vt100 on secure

ttyv0 "/usr/libexec/getty Pc" xterm on secure

ttyv1 "/usr/libexec/getty Pc" xterm on secure

ttyv2 "/usr/libexec/getty Pc" xterm on secure
</p>

Я оставляю ttyv1 включеной, чтобы можно было загрузиться в режиме HVM, нажать Alt+F1 и получить консоль, на всякий склучай.

Запуск в режиме PV



freebsd.cfg для PV:

kernel = "/etc/xen/freebsd/kernel"
memory = 256
name = "FreeBSD0"
vif = [ '' ]
disk = [ 'phy:/dev/tank/freebsd--disk,ioemu:hda,w' ]
extra = "boot_verbose=1"
extra += ",vfs.root.mountfrom=ufs:/dev/ad0p2"
extra += ",kern.hz=100"
pae=1


Теперь надо исправить настройку сети, так как тепеь сетевушка называется xn0, а не rl0. Все, на этом этапе у вас должна быть полностью рабочая система.

P.S.
Об ошибках прошу писать в личку.

UPD.
Скорость работы с диском:
%time dd if=/dev/zero bs=1024k of=test count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 10.364163 secs (103601403 bytes/sec)
0.000u 3.694s 0:10.37 35.5%     25+4753k 6+8216io 0pf+0w
%time dd if=test bs=1024k of=/dev/null
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 8.904045 secs (120590340 bytes/sec)
0.000u 2.458s 0:08.97 27.3%     25+4906k 8225+0io 3pf+0w
Tags:
Hubs:
+12
Comments15

Articles