Ключевые слова:freebsd, virtual, xen, (найти похожие документы)
From: Игорь Чубин <http://xgu.ru>
Date: Sun, 20 Jan 2007 17:02:14 +0000 (UTC)
Subject: FreeBSD в Xen
Оригинал: http://xgu.ru/wiki/FreeBSD_in_Xen
Перевод и редактирование: Игорь Чубин
Эта страница посвящена вопросам запуска FreeBSD в паравиртуальном
режиме и в режиме аппаратной виртуализации в системе Xen.
В её основе лежит перевод FreeBSD/Xen Howto.
Содержание
* 1 Как установить FreeBSD в domU
* 2 Как использовать ядро freebsd-XENU для непосредственного запуска
* 3 Проблемы с запуском
* 4 Дополнительная информация
Как установить FreeBSD в domU
Для инсталляции FreeBSD в домене domU потребуется несколько файлов:
* ядра freebsd-XENU_INSTALL & freebsd-XENU
* конфигурационный файл Xen (freebsd_xen_INSTALL)
* файл-образ, на который будет устанавливаться система.
1. Если вы хотите использовать файловую систему, базирующуюся на
файле, сначала нужно создать файл-образ. Делается это так:
%# dd if=/dev/zero of=freesd_xen_INSTALL.img bs=1024k count=1000
Эта команда создаёт пустой образ размером 1GB. Вы можете менять
параметры исходя из собственных потребностей.
2. Убедитесь, что файл ядра и конфигурационный файл виртуальной машины
находятся в нужном месте. Обычно конфигурационный файл помещается в
/etc/xen/vm (где vm это имя виртуальной машины),
3. Для инсталляции FreeBSD в domU обязательно нужно чтобы в
конфигурационном файле были строки:
kernel = "/Path/To/Kernel/freebsd-XENU_INSTALL"
#kernel = "/Path/To/Kernel/freebsd-XENU"
extra += ",vfs.root.mountfrom=ufs:/dev/md0"
#extra += ",vfs.root.mountfrom=ufs:/dev/md0/xbd769s1a"
4. Теперь можно начать инсталляцию. Домен создаётся как обычно:
%# xm create -c /Path/To/Config/freebsd_xen_INSTALL
После того как домен загрузится, на экране появится приглашение о
выборе консоли на которой будет выполняться продолжение инсталляции.
Выбирайте "2 ...................... VT100 or compatible terminal."
Дальше на экране появится знакомое даилоговое окно "Sysinstall Menu".
Первое, что нужно в нём сделать это изменить название релиза с
7.0-CURRENT на RELEASE той версии, которою вы хотите установить. Это
связано с тем, что Xen портирован в 7.0-CURRENT, и ядра RELEASE с
поддержкой Xen на сегодняшний день нет. Изменить название релиза можно
в меню "Options".
ЗАМЕЧАНИЕ! При инсталляции 6.1-RELEASE процесс может зависнуть на
этапе "Extracting base in / directory", в то время как инсталляция
6.0-RELEASE проходит успешно. Можно поэкспериментировать, но я вас
предупредил.
5. После выбора релиза FreeBSD переходите к обычному процессу
инсталляции. В диалоговом окне FDISK будет показана геометрия 0 cyls/0
heads/0 sectors, и размер диска для использования тоже 0. Нужно задать
геометрию вручную, нажав клавишу G. Введите какую-нибудь бредовую
геометрию, например 1000/1000/1000 - sysinstall заругается на то что
вы ввели бред, а затем предложит рабочий вариант.
6. Инсталляция через FTP была проверена. Она работает. Другие методы
инсталляции по сети, тоже должны работать. Можно выбирать тот метод,
который подходит, а дальше всё сделает sysinstall.
7. Как только процесс инсталляции завершится, можно сказать, что всё
готово. НО! Перед тем как перезагрузить систему, нужно ещё кое-что
исправить. В главном меню инсталлятора нужно выбрать пункт Configure,
а в нём TTYS. После этого нажать Yes и отредактировать файл /etc/ttys.
В файл нужно закомментировать все строки с ttyv и добавить одну
строку.
Изменённый файл будет выглядеть так:
xc0 "/usr/libexec/getty Pc" vt100 on secure
#ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
#ttyv1 "/usr/libexec/getty Pc" cons25 on secure
#ttyv2 "/usr/libexec/getty Pc" cons25 on secure
#ttyv3 "/usr/libexec/getty Pc" cons25 on secure
#ttyv4 "/usr/libexec/getty Pc" cons25 on secure
#ttyv5 "/usr/libexec/getty Pc" cons25 on secure
#ttyv6 "/usr/libexec/getty Pc" cons25 on secure
#ttyv7 "/usr/libexec/getty Pc" cons25 on secure
#ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
8. Инсталляция завершена. Нужно изменить конфигурационный файл домена
и запустить систему:
#kernel = "/Path/To/Kernel/freebsd-XENU_INSTALL"
kernel = "/Path/To/Kernel/freebsd-XENU"
#extra += ",vfs.root.mountfrom=ufs:/dev/md0"
extra += ",vfs.root.mountfrom=ufs:/dev/md0/xbd769s1a"
9. Теперь можно перезагрузить домен, или с помощью собственно
sysinstall или командой
%# xm reboot domainID
в домене 0.
Можно погасить домен командой
%# xm shutdown domainID
а потом заново запустить его.
Если вы выберете перезагрузку, то убедитесь, что domainID у домена
изменился (как правило, увеличился на 1):
%# xm list
С помощью команды
%# xm console domainID
можно подключиться к консоли свежеустановленной системы.
Как использовать ядро freebsd-XENU для непосредственного запуска
Ниже описываются шаги, которые необходимо сделать, если вы
предпочитаете использовать существующую систему, вместо того чтобы
инсталлировать новую.
Потребуются файлы:
* ядро (freebsd-XENU)
* конфигурационный файл Xen (freebsd_xen)
Будем по-прежнему использовать виртуальный диск, базирующийся на
файле. Для случая с настоящим жёстким диском, нужны будут некоторые
изменения.
1. Создайте файл для образа файловой системы. Поскольку мы не хотим
инсталлировать систему, а хотим просто скопировать файлы, то созданием
пустого файла, как раньше, дело не кончится. Нужны более сложные
действия, показанные ниже.
Создайте файловую систему образа:
%# dd if=/dev/zero of=freesd_xen.img bs=1024k count=1000
%# mdconfig -a -t vnode -f freebsd_xen.img -u 0
%# bsdlabel -e md0 # отредактируйте md0, создайте как минимум /(md0a) и swap(md0b)
%# newfs md0a
Затем нужно подмонтировать устройство /dev/md0a и скопировать в него
данные с существующей системы FreeBSD. С этим хорошо справятся команды
dump и restore.
2. После того как образ создан, нужно его немного подправить, для того
чтобы он мог работать под Xen.
Отредактируйте файл /etc/fstab. Необходимость этого редактирования
в том, что Xen ничего не знает о ad0, ad0s1 или чего-то похожего.
# Device Mountpoint FStype Options Dump Pass#
/dev/xbd769b none swap sw 0 0
/dev/xbd769a / ufs rw 1 1
Отредактируйте файл /etc/ttys. Нужно добавить одну строку и
закомментировать все строки ttyv. xc0 это имя консоли, которое
понимает Xen.
xc0 "/usr/libexec/getty Pc" vt100 on secure
#ttyv0 "/usr/libexec/getty Pc" cons25 on secure
...
Отредактируйте файл /etc/rc.conf. Поменяйте имя карты на xn0.
Сетевые карты Xen в FreeBSD начинаются с префикса xn.
ifconfig_xn0="inet 192.168.1.103 netmask 255.255.255.0"
Проблемы с запуском
Если у вас возникли проблемы с выполнением вышеописанной процедуры,
убедитесь, что у вас или есть, или нет поддержка PAE везде:
* в гипервизоре Xen;
* в ядре домена dom0;
* в ядре FreeBSD в домене domU.
Подробнее: [[http://lists.xensource.com/archives/html/xen-users/2006-12/msg00268.html [1].]]
В списке рассылки Xen неоднократно сообщалось об успешном запуске
FreeBSD по вышеописанной процедуре на гипервизоре Xen 3.0.2. Однако, в
более новых версиях появилась ошибка, которая может привести к тому,
что домен FreeBSD запускаться не сможет [[http://lists.xensource.com/archives/html/xen-users/2006-11/msg00103.html [2].]]
Мне пока не удалось запустить FreeBSD в паравиртуальном режиме в Xen.
Если кто-то это сделал, пожалуйста, напишите мне или оставьте
сообщение на странице обсуждения.
Я пробовал запускать FreeBSD 7 на Xen(3.0.3)/Linux(2.6.17). В списки
рассылки Xen говорят [[http://lists.xensource.com/archives/html/xen-users/2006-11/msg00103.html [3],]] что на более ранних версиях Xen, FreeBSD
успешно запускалось.
Обсуждение проблемы, с которой я столкнулся при запуске, есть в списке
рассылки Xen [[http://lists.xensource.com/archives/html/xen-users/2006-12/msg00268.html [4].]] Особенно полезное сообщение [[http://lists.xensource.com/archives/html/xen-users/2006-12/msg00533.html [5].]]
--Igor Chubin 13:04, 17 января 2007 (EET)
Дополнительная информация
Процедура запуска FreeBSD в паравиртуальном режиме в Xen:
* http://wikitest.freebsd.org/YuanJue
* http://www.yuanjue.net/xen/howto.html
* http://txrx.org/xen/
* http://unix.derkeiler.com/Mailing-Lists/FreeBSD/current/2006-09/msg00553.html
* http://wiki.xensource.com/xenwiki/FreeBSDdomU
Другая информация:
* http://www.fsmware.com/xenofreebsd/7.0/STATUS - текущее
состояние порта
Эта ссылка мёртвая:
http://www.yuanjue.net/xen/howto.html Прошу помощи.
реально нужно поднять FreeBSD под линуксом. Везде ссылка на этого yuanjue, просто беда какая то.