Пример инсталляции FreeBSD c сетевого диска, через NFS [2007]
Итак. Задача - поставить 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:
У меня локалка висит на одной сетевухе, её я трогать не стал, просто доткнул вторую, какой-то попавшийся под руку dlink. Его я тоже прописал в /etc/rc.conf, что тоже привожу тут, чтобы был понятен дальнейший конфиг dhcpd:
После чего, включаем ноут, и выставляем загрузку по сети. Всё получилось, тока ядро сумничало, и обнаружив корневую систему на NFS (ну, не само обнаружило конечно, это DHCP сказал откуда монтировать), загрузилось с неё. Получили полноценную фряху загруженную по сети на ноуте... Прикольно, но не совсем то, что мне надо было. Конечно, можно было все операции сделать руками - благо дистрибутив тут, примонтировался, но - так неинтересно, да и всё равно sysinstall запускать - временную зону я руками ставить не умею :(
Вспомнил, что когда грузишься с диска, файловая система в памяти, маленький диск на пару мегов. Вот на него и надо было загрузиться, а не на скопированный сидюк. Это уже было проще, такое я [58]проходил раньше, посему, решилось просто - добавление строчки в конфиг лоадера - имя устройства я подсмотрел загрузившись с сидюка:
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 | +---------------------------------------------------------------+