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


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


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


Загрузка 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 за его вклад.

 

Интересное

Откат обновлений драйверов...
Обновляя драйвер, чтобы решить существующие проблемы или улучшить работу устройства, не стоит забывать, что установка нового драйвера может привести к неожиданным результатам или воспрепятствовать...
Подробнее...
Как избавиться от подмены...
Как избавиться от подмены домашней страницы?Ребенок залез на очень неприятный сайт... Теперь эта хреновина прописалась где-то в глубинах системы (у нас установлен millenium), и при каждой...
Подробнее...
Практикум по защите сети...
С применением Log Parser, виртуализации и небольшой доли психотерапииОтражение попыток проникновения в сеть — процесс бесконечный. Благодаря значительному прогрессу последних лет защита сетей...
Подробнее...
10 советов по защите Wi-Fi...
Тема безопасности Wi-Fi соединения в наши дни очень популярна. На ряде форумов, ведутся энергичные дискуссии на предмет «лучшего решения». Один из наиболее часто обсуждаемых аспектов — большое...
Подробнее...
Перехват нажатия клавиши в...
Существуют приложения, которым необходимо перехватывать все нажатия клавиш в windows, даже если в данный момент активно другое приложение. Это может быть, например, программа, переключающая...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...
Используем Cron
Данная заметка предназначенна для тех, кто собирается работать с cron, но еще не знает как все это делается. Я в кратце попробую объяснить что такое cron, для чего он нужен да и как вообще с ним...
Подробнее...
Секреты популярности сайта
Подумайте, хорошо ли раскрыта тема вашего сайта на его страницах. Что в основном пользователь ищет в интернете? Информацию.От различных товаров до банальных новостей. Предоставляйте информацию на...
Подробнее...
Масштабируемые и...
Обсуждаемые темы: HTTP-запросы; HTTP-ответы; Оптимизация с помощью HTTP keep-alive; Оптимизация с помощью HTTP-pipelining; Оптимизация с помощью HTTP-кэширования: Кэширование в современных...
Подробнее...
Рекламное ПО и трояны...
Трояны составили 26.65% от общего числа заражений, обнаруженных в июле ActiveScan – бесплатным онлайновым сканером от Panda Security. Принимая во внимание процент инфекций, вызванных рекламными...
Подробнее...