Ошибка: Failed to parse the Currency Converter XML document.
$30 649.88


Ошибка: Failed to parse the Currency Converter XML document.
$976.78


Ошибка: Failed to parse the Currency Converter XML document.
$1 222.62


Загрузка FreeBSD 5.0 на Sun машине через сеть

Введение

За последние годы порт FreeBSD-sparc64 привлек значительное внимание разработчиков. За годы было сделано многое; тем не менее, еще много предстоит сделать в области поддержки устройств и устойчивости. Одним из недостатков порта FreeBSD-sparc64 является недостаточная поддержка некоторых набортных устройств SCSI, которые используются на Sun Ultra 1, Ultra 2 и возможно других моделях. Это препятствует распознаванию FreeBSD присоединенных дисководов и, таким образом, загрузке с диска.

Для того, чтобы позволить разработчикам протестировать их код, особенно драйверы дисков, необходима загрузка машины без использования диска. FreeBSD Handbook описывает процедуру загрузки бездисковой рабочей станции, но это не полностью применимо к загрузке системы FreeBSD-sparc64 на машине, такой как Ultra 2. Решение ниже вовлекает использование TFTP и поддержку ядром корневого раздела, подмонтированного через NFS, для загрузки FreeBSD из сети.


Наш пример установки вовлек быструю i386 машину, работающую под управлением FreeBSD 4.7-RELEASE и Sun Ultra 2 с FreeBSD 5.0-DP2. Эта процедура применима к широкому диапазону аппаратного обеспечения Sun и будет работать с поздними выпусками FreeBSD 5.0.


Установка DHCPd

Сперва нам необходимо загрузить и установить isc-dhcpd 3.x на машину, которая также будет выступать в роли сервера TFTP/NFS. Вы можете обнаружить его в /usr/ports/net/isc-dhcp3/. После завершения основной конфигурации dhcpd, такой как определения подсети, диапазонов адресов IP, етс., мы можем приступить к добавлению раздела host для машины, загружающейся из сети.

Вот пример:

host divine {
hardware ethernet 08:00:20:89:cf:f3;
option host-name «divine.local.non-standard.net»;
fixed-address 192.168.1.5;
always-reply-rfc1048 on;
filename «loader.nfs»;
next-server 192.168.1.3;
option root-path «192.168.1.3:/storage3/sparc64-nfsroot»;
}

Поле filename указывает на имя файла, которое должно быть первоначально послано машине после ее первого DHCP/BOOTP запроса. Поле next-server определяет, какой сервер должен быть использован для загрузки ядра, используя TFTP или NFS. Опция root-path описывает, где расположено ядро на сервере NFS.

Установка TFTPd

Следующим шагом мы используем встроенный демон TFTP, который поставляется с FreeBSD. Тем не менее, конфигурация по умолчанию в /etc/inetd.conf в данном случае не будет работать правильно. Нарушения Доступа (даже пока соответствующие права доступа не были установлены) и другие ошибки происходят когда клиент запрашивает «/loader.nfs» вместо «loader.nfs» или наоборот. Для того, чтобы заставить это работать, мы должны модифицировать inetd.conf примерно следующим образом:

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot

Этим мы добиваемся цели, и запрос «/loader.nfs» становится идентичен «loader.nfs». Теперь все что нам нужно сделать, это получить loader.nfs и поместить его в директорию /tftpboot. Вы можете загрузить его с http://non-standard.net/freebsd/loader.nfs Для избежания каких-либо проблем с правами доступа, просто выполните следующее:

chown -R nobody:nobody /tftpboot
chmod -R 755 /tftpboot

Установка NFS

Теперь нам нужно загрузить ISO живой файловой системы с ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-sparc64/5.0-DP2-disc2.iso (используйте зеркало), и подмонтировать его, используя vnconfig. Обратите внимание, что vnconfig для FreeBSD 4.7 известен как mdconfig в FreeBSD 5.0-CURRENT.

vnconfig vn0 5.0-DP2-disc2.iso # ассоциируем vn0 с образом cd
mount -t cd9660 /dev/vn0c /mnt # монтируем образ

Скопируйте содержимое директории /mnt куда-нибудь на вашу машину. Простая команда cp будет работать; тем не менее, живая файловая система содержит символические ссылки, так что лучше использовать rsync.

cd /storage3/sparc64-nfsroot # переходим в будующую директорию nfsroot
rsync --progress -avr /mnt/ . # извлекаем содержимое
umount /mnt
vnconfig -u vn0

Создайте /etc/fstab в директории nfsroot (в данном случае это /storage3/sparc64-nfsroot) и добавьте в него следующую информацию:

# Device Mountpoint FStype Options Dump Pass#
192.168.1.3:/storage3/sparc64-nfsroot / nfs rw 0 0

Добавьте следующее к /etc/exports для разрешения машине, загружающейся из сети, монтировать ее корневую файловую систему из /storage3/sparc64-nfsroot:

/storage3/sparc64-nfsroot -maproot=root 192.168.1.5

Запустите демоны NFS (Если в качестве сервера вы используете машину 5.0-CURRENT, воспользуйтесь командой rpcbind вместо portmap):

portmap
nfsd -u -t -n 4
mountd -r
rpc.statd
rpc.lockd

Если вы также хотите запускать NFS в момент загрузки, добавьте следующее в /etc/rc.conf

portmap_enable=«YES»
nfs_server_enable=«YES»
mountd_flags=«-r»
rpc_statd_enable=«YES»
rpc_lockd_enable=«YES»

Теперь мы готовы к сборке выборочного ядра sparc64. Ядро GENERIC, находящееся на образе CD, не включает в себя опций, необходимых для успешной бездисковой загрузки. Мы должны получить исходники 5.0-CURRENT, используя cvsup (обратитесь к FreeBSD handbook для получения дальнейших инструкций) и отредактировать «/usr/src/sys/sparc64/conf/DIVINE» (DIVINE будет нашим ядром-примером), добавив следующее:

options BOOTP # Использовать BOOTP для получения IP адреса/имени хоста
options BOOTP_NFSROOT # Монтировать корневую файловую систему через NFS,
используя информацию BOOTP
options BOOTP_NFSV3 # Использовать NFS v3 для монтирования корня NFS
options BOOTP_COMPAT # Временное решение для прерванных демонов bootp.
options BOOTP_WIRED_TO=hme0 # Использовать интерфейс fxp0 для BOOTP

Затем мы соберем ядро. На машине i386 возможно пересеченное компилирование sparc64 kernel/world:

cd /usr/src/
make TARGET_ARCH=sparc64 buildworld # buildworld для порта sparc64
make TARGET_ARCH=sparc64 buildkernel # собираем ядро sparc64

Когда этот процесс завершится, мы перенесем файлы:

mv /storage3/sparc64-nfsroot/boot/kernel /storage3/sparc64-nfsroot/boot/kernel.GENERIC
# перемещаем дерево ядра по умолчанию в nfsroot в другое место
mkdir /storage3/sparc64-nfsroot/boot/kernel
# создаем новую директорию kernel
cp /usr/obj/sparc64/usr/src/sys/DIVINE/* /storage3/sparc64-nfsroot/boot/kernel/
# копируем ядро, равно как и модули, в новую директорию kernel

Обратите внимание, что важно не делать cp -r, поскольку в директорию kernel будут скопированы ненужные для нас в данный момент исходники.

Загрузка Sun машины

Наконец, на приглашении OpenBoot введите следующее:

ok (0) boot net:dhcp,192.168.1.3,loader.nfs

Этим мы укажем необходимость использования DHCP для получения адреса IP, затем для загрузки и выполнения loader.nfs с 192.168.1.3 через TFTP. После этого вы увидите обычное приглашение программы login. Если ваша Ultra 2 не поддерживает эти загрузочные опции, вы можете обновить программное обеспечение производителя (http://sunsolve.sun.com/).

Комментарии или исправления приветствуются на anthonyv@brainlink.com. Особая благодарность Jake Burkholder за его вклад.

 

Интересное

Общая информация по XP
1.1. Что такое WindowsXP? Это новая OC от компании Microsoft, в которой сделана попытка объединить две, ранее существовавшие независимо, линейки W9x и NT. Первоначально этот проект назывался...
Подробнее...
Firefox: Настройка RSS
Много слышал об RSS и даже несколько раз пытался пользоваться специальными программами для чтения. Но устанавливать дополнительное ПО не хочется, тем более что в Firefox есть встроенный клиент...
Подробнее...
Невизуальные классы в Delphi
В этом обзоре мне хотелось бы рассказать про несколько классов Delphi, которым обычно в книгах и других обучающих материалах уделяется (если уделяется) весьма скромное внимание. Это так называемые...
Подробнее...
Средства Delphi 7 для...
Рассмотрим наборы компонентов, которые присутствуют в библиотеке компонентов delphi 7, предназначенных для работы с базами данных. Вы узнаете, что такое набор данных, источник данных и...
Подробнее...
Как избавиться от подмены...
Как избавиться от подмены домашней страницы?Ребенок залез на очень неприятный сайт... Теперь эта хреновина прописалась где-то в глубинах системы (у нас установлен millenium), и при каждой...
Подробнее...
10 советов по обеспечению...
Используйте Windows Server 2003 Версия Windows Server 2003 с поддержкой службы каталогов «Активная директория» (Active Directory, далее AD) гораздо безопаснее версии Windows 2000. Это не значит,...
Подробнее...
Безопасная настройка PHP...
ПредисловиеПриходится признать, что операционные системы Windows не собираются уходить в небытие. Игнорировать этот факт нельзя, поэтому нужно научиться мирно сосуществовать с таковыми. Как...
Подробнее...
Dr.Web защищает от опасных...
Как известно, уже в течение длительного периода происходит спам-рассылка известного «штормового червя», маскирующегося под поздравительную открытку и детектируемого антивирусом Dr.Web как...
Подробнее...
Adobe Photoshop и Corel Draw
Уважаемые читатели, что возникает в ваших головах при словосочетании «компьютерная графика»? Конечно, у рядового пользователя сразу возникает в голове какой-нибудь Терминатор или иное детище...
Подробнее...
Оптимизация памяти в...
Windows XP предоставляет больше возможностей по оптимизации памяти, нежели Windows 2000. Вместе с тем, она и требует больше свободных ресурсов. Данная статья поможет вам настроить вашу систему для...
Подробнее...