Имеем FreeBSD 9.2 RELEASE установленную в XenServer 6.2 — корневая файловая система ZFS. Задача установить xen-tools для полной оптимизации системы.
Исправляем файл:
/usr/src/sys/kern/subr_autoconf.c
Комментируем строку 136 и 145.
/* while (!TAILQ_EMPTY(&intr_config_hook_list)) { */ if (msleep(&intr_config_hook_list, &intr_config_hook_lock, 0, "conifhk", WARNING_INTERVAL_SECS * hz) == EWOULDBLOCK) { mtx_unlock(&intr_config_hook_lock); warned++; run_interrupt_driven_config_hooks_warning(warned); mtx_lock(&intr_config_hook_lock); } /* } */
Данный шаг не актуален в случае использования файловой системы UFS. Если используется файловая система ZFS в качестве корневой, система не загрузится с ошибкой:
run_interrupt_driven_hooks: still waiting after 60 seconds for xenbusb_nop_confighook_cb run_interrupt_driven_hooks: still waiting after 120 seconds for xenbusb_nop_confighook_cb run_interrupt_driven_hooks: still waiting after 180 seconds for xenbusb_nop_confighook_cb run_interrupt_driven_hooks: still waiting after 240 seconds for xenbusb_nop_confighook_cb run_interrupt_driven_hooks: still waiting after 300 seconds for xenbusb_nop_confighook_cb
Подробнее об этом тут.
Собираем ядро с поддержкой XEN.
cd /usr/src make kernel KERNCONF=XENHVM
Не перезагружаясь или параллельно из второй консоли:
portsnap fetch portsnap extract cd /usr/ports/sysutils/xen-tools/ make install clean cd /usr/ports/sysutils/xe-guest-utilities make install clean
добавляем в rc.conf
xenguest_enable="YES"
исправляем имена сетевых интерфейсов:
re
на
xn
При использовании файловой системы UFS — исправляем в файле fstab имена устройств:
ada
на
da
Перезагружаемся.