Home FreeBSD FreeBSD Траффик Пример инсталляции FreeBSD c сетевого диска, через NFS.

Пример инсталляции FreeBSD c сетевого диска, через NFS.

Пример инсталляции FreeBSD c сетевого диска, через NFS.

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/trivia/install_using_nfs/

Итак. Задача - поставить FreeBSD на HP OmniBook 500. Машинка, ничего особенного из себя не представляет - PIII-733, 256 RAM, 30G HDD. Есть док станция со совей батарейкой, CD-ROM, FDD.
Для начала, откусываю кусок харда акронисом - там стоит лицензиозная винда, которая может пригодится. После чего пытаюсь загрузиться с CD-ROM. В общем-то всё хорошо, но вот на моменте детектирования этого самого CD-ROM машина уходит в себя... Вернее не уходит, но и момент этот не проскакивает.
Ладно, втыкаю любимую загрузочную флэшку, логично рассуждая - мне бы забутится, дальше разберусь. Облом. Колдование над опциями BIOS и попытки выбрать её при загрузке ни к чему не привели.
Пошёл, покурил, подумал. Думаю - с флоппика ставиться - изврат, хотя можно было на него закинуть тока ядро, остальное на флэшку. Это уже проходил, когда делал загрузку по сети. На этом момете мозги встают на место и соображаю - можно загрузиться по сети, и оттуда же и поставить - благо опция загрузки по сети на буке есть.
Поехали. Для данного действа я выбрал отдельную подсеть, в которой будут всего два компа - мой и ноут. (соединить их через свич, или кроссовером - не забудте :)) Втыкаем CD-ROM, монтируем, копируем:lissyara$ mount_cd9660 /dev/acd0 /cdrom/
lissyara$ cd /cdrom/
lissyara$ mkdir -p /shares/bsd6.2
lissyara$ ( tar --create --file=- * ) | \
? ( cd /shares/bsd6.2/ ; tar --extract --file=- )


Почему извращённый метод копирования? Там много хардлинков (тока для ISO9660 они как-то иначе называются), и после копирования при помощи cp размер прилично увеличится. Пока копируется, с другой консоли ставим isc-dhcp:lissyara$ cd /usr/ports/net/isc-dhcp3-server
lissyara$ make install clean


В вылезшем синем окошке посымал все галки - мне нужен минимальный функционал. Пока собирается, и копируется, чешем на третью консоль, пишем файл с описанием экспортируемых по NFS файловых систем:lissyara$ more /etc/exports
#
/shares/bsd6.2 -maproot=root -network 192.168.0.0 -mask 255.255.0.0


Также, прописываем запук nfsd и dhcpd в /etc/rc.conf:lissyara$ cat /etc/rc.conf | tail -4
nfs_server_enable="YES"
nfs_server_flags="-u -n 4"
dhcpd_enable="YES"
inetd_enable="YES"
lissyara$


У меня локалка висит на одной сетевухе, её я трогать не стал, просто доткнул вторую, какой-то попавшийся под руку dlink. Его я тоже прописал в /etc/rc.conf, что тоже привожу тут, чтобы был понятен дальнейший конфиг dhcpd:lissyara$ cat /etc/rc.conf | grep vr0
ifconfig_vr0="inet 192.168.200.254 netmask 255.255.255.0"
lissyara$


Ещё необходим tfdpd. Я использовал штатный, запускающийся через inetd:lissyara$ grep tftp /etc/inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /shares/bsd6.2
#tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
lissyara$


К этому моменту isc-dhcp должен уже проинсталлится, и рисуем его конфиг:lissyara$ more /usr/local/etc/dhcpd.conf
# dhcpd.conf
option domain-name "my-domain.local";
option domain-name-servers my-domain.local;

default-lease-time 600;
max-lease-time 7200;

ddns-update-style ad-hoc;

log-facility local7;

# This is a very basic subnet declaration.

subnet 192.168.200.0 netmask 255.255.255.0 {
range 192.168.200.10 192.168.200.20;
option routers lissyara.my-domain.local;
next-server 192.168.200.254;
option root-path "192.168.200.254:/shares/bsd6.2";
filename "/boot/pxeboot";
}
lissyara$


Ну и всё. Я вырубаю комп, мне надо сетевуху доткнуть, а вы можете запустить всё это руками:rpcbind
nfsd -u -t -n 4
mountd -r
inetd
/usr/local/etc/rc.d/isc-dhcpd start


После чего, включаем ноут, и выставляем загрузку по сети. Всё получилось, тока ядро сумничало, и обнаружив корневую систему на NFS (ну, не само обнаружило конечно, это DHCP сказал откуда монтировать), загрузилось с неё. Получили полноценную фряху загруженную по сети на ноуте... Прикольно, но не совсем то, что мне надо было. Конечно, можно было все операции сделать руками - благо дистрибутив тут, примонтировался, но - так неинтересно, да и всё равно sysinstall запускать - временную зону я руками ставить не умею :(
Вспомнил, что когда грузишься с диска, файловая система в памяти, маленький диск на пару мегов. Вот на него и надо было загрузиться, а не на скопированный сидюк. Это уже было проще, такое я проходил раньше, посему, решилось просто - добавление строчки в конфиг лоадера - имя устройства я подсмотрел загрузившись с сидюка:lissyara$ more /shares/bsd6.2/boot/loader.conf | grep vfs
vfs.root.mountfrom="ufs:/dev/md0c"
lissyara$


Перезагружаем ноут, и наблюдаем окошко sysinstall. После разбиения диска, выбора компонентов и прочих подготовительных операций, в последнем окне, надо выбрать откуда инсталлим:6 Media Choose the installation media type


Выбираем NFS:6 NFS Install over NFS


и вводим путь к шаре с дистирибутивом:+----------------------- Value Required ------------------------+
| Please enter the full NFS file specification for the remote |
| host and directory containing the FreeBSD distribution files. |
| This should be in the format: hostname:/some/freebsd/dir |
| +-----------------------------------------------------------+-+
| |192.168.200.254:/shares/bsd6.2 | |
+-+-----------------------------------------------------------+-+
| [ OK ] Cancel |
+---------------------------------------------------------------+


Всё.

Обновлено 28.05.2010 13:17  
Интересная статья? Поделись ей с другими:

  • Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte Вопросы по поводу написанных статей можно обсудить в нашем сообществе в  Вконтакте / Questions about written articles can be discussed in our community in Vkontakte
Яндекс.Метрика