В рамках решения задачи по организации функционирования VDS под управлением гипервизора Xen возникла несколько необычная необходимость иметь возможность генерировать загрузочный образ ISO с ОС FreeBSD в окружении ОС Linux Debian v7.XX.
Изначально нам потребуется предустановленная ОС FreeBSD с развернутым полным набором исходных кодов системы в каталоге "/usr/src/". Я буду вести повествование на примере версии amd64 10.1-RELEASE-p6. Начнем с того, что создадим ISO штатными средствами:
cd /usr/src/
make buildworld buildkernel
cd /usr/src/release/
make cdrom
По окончании этой процедуры в каталоге "/usr/src/release/" вы обнаружите два файла "bootonly.iso" и "disc1.iso". Но они для нас интереса не представляют. Нам потребуются каталоги, содержимое которых используется для создания этих ISO: " /usr/src/release/bootonly/" и "/usr/src/release/release/" для "bootonly.iso" и "disc1.iso" соответственно. Переносим обе директории в ОС Linux. Я сделал это с сохранением полных путей.
Необходимо оговорить нюанс именования загрузочного CD-ROM в ОС FreeBSD: он состоит среди прочего из метки диска. Т.е. выглядит следующим образом: "/dev/iso9660/<label>". Я буду использовать метки дисков такие же, как названия файлов ISO но без расширения: "bootonly" и "disc1".
Создадим настройки для монтирования файловых систем.
"/usr/src/release/bootonly/etc/fstab"
/dev/iso9660/bootonly / cd9660 ro 0 0
"/usr/src/release/release/etc/fstab"
/dev/iso9660/disc1 / cd9660 ro 0 0
На этом все подготовительные этапы закончены, можно приступать к созданию ISO в ОС Linux:
genisoimage -R -b boot/cdboot -no-emul-boot -boot-load-size 4 -input-charset utf-8 -V bootonly -o bootonly.iso /usr/src/release/bootonly/
genisoimage -R -b boot/cdboot -no-emul-boot -boot-load-size 4 -input-charset utf-8 -V disc1 -o disc1.iso /usr/src/release/release/
На выходе получаем все те же "bootonly.iso" и "disc1.iso". Их работоспособность на реальном железе я не проверял, но в гипервизоре Xen никаких проблем не возникло.
0 Комментарии。