Робота з бездисковими станціями
Є принаймні два можливі способи завантаження ядра по мережі:
Порт Etherboot (net/etherboot) генерує код, який може застосовуватись у ПЗУ для завантаження ядра по мережі. Код може бути або прошитий у завантажувальний PROM на мережному адаптері, або завантажений з локальної дискети (або вінчестера), або з працюючої системи MS-DOS ®. Підтримується багато мережевих адаптерів.
Зразковий скрипт ( /usr/share/examples/diskless/clone_root) полегшує створення та підтримку кореневої файлової системи робочої станції на сервері. Скрипт, швидше за все, вимагатиме деяких налаштувань, але він дозволить вам швидко розпочати роботу.
Стандартні файли початкового запуску системи, що містяться в / etc, розпізнають і підтримують завантаження системи в бездисковому варіанті.
Підкачка, якщо вона потрібна, може виконуватися через файл NFS чи локальний диск.
Існує багато способів налаштування бездискової робочої станції. При цьому задіяно багато компонентів, і більшість з них можуть бути налаштовані для задоволення ваших уподобань. Далі буде описано варіанти повного налаштування системи, при цьому наголос буде робитися на простоту та сумісність зі стандартною системою скриптів початкового завантаження FreeBSD. Описувана система має такі характеристики:
Бездискові робочі станції спільно використовують файлову систему / у режимі лише читання, а також використовують /usr спільно також у режимі тільки читання.
Коренева файлова система є копією стандартної кореневої системи FreeBSD (зазвичай сервера) з деякими настроювальними файлами, зміненими кимось спеціально для бездискових операцій або, можливо, для робочої станції, якій вона призначена.
Частини кореневої файлової системи, які маютьбути доступними для запису, перекриваються файловими системами mfs (8) (FreeBSD 4.X) або md (4) (FreeBSD 5.X). Будь-які зміни будуть втрачені під час перезавантаження системи.
Застереження:Як описано, ця система не захищена. Вона повинна розташовуватися в захищеній частині мережі, а інші хости не повинні покладатися на неї.
Вся інформація цього розділу була протестована з релізами FreeBSD 4.9-RELEASE та 5.2.1-RELEASE. Текст структурований переважно для використання з 4.X. Відмінності для 5.X згадуються особливо.
25.6.1. Загальна інформація
Налаштування бездискових робочих станцій відносно просте, але водночас легко зробити помилку. Іноді важко діагностувати ці помилки з кількох причин. Наприклад:
Параметри компіляції можуть по-різному виявляти себе під час роботи.
Повідомлення про помилки бувають загадковими або відсутніми.
У цій ситуації деякі знання, що стосуються внутрішніх механізмів, дуже корисні при вирішенні проблем, які можуть виникнути.
Для успішного завантаження необхідно зробити кілька операцій:
Можливе налаштування системи для використання лише BOOTP. Серверна програма bootpd (8) включена до основної системи FreeBSD.
Необхідно ініціалізувати та виконати можливі проміжні програми завантаження та ядро. У цій галузі існує кілька важливих варіацій:
PXE завантажить pxeboot (8) , модифікованої версією завантажувача третьої стадії FreeBSD. loader (8) отримає більшість параметрів, необхідні старту системи, і залишить їх у оточенні ядра до контролю передачі. У цьому випадку можливе використання ядра GENERIC.
Etherboot безпосередньо завантажить ядро, з меншою підготовкою. Вам потрібно буде зібратиядро із спеціальними параметрами.
Нарешті, комп'ютер потребує доступу до файлових систем. NFS використовується у всіх випадках.
Зверніться також до сторінки довідника (8) .
25.6.2. Інструкції з налаштування
25.6.2.1. Конфігурація за допомогою ISC DHCP
Сервер ISC DHCP може обробляти запити BOOTP, так і запити DHCP .
Починаючи з релізу 4.9, ISC DHCP 3.0 не входить у постачання системи. Спочатку потрібно буде встановити порт net/isc-dhcp3-server або відповідний пакет.
25.6.2.2. Налаштування за допомогою BOOTP
Далі описано еквівалентну конфігурацію з використанням bootpd (для одного клієнта). Вона буде розташована в /etc/bootptab.
Будь ласка, відзначте, що Etherboot повинен бути відкомпільований з нестандартною опцією NO_DHCP_SUPPORT для того, щоб можна було використовувати BOOTP, і що PXE необхідний DHCP . Єдиною очевидною перевагою bootpd є його наявність у постачанні системи.
25.6.2.3. Підготовка програми завантаження за допомогою Etherboot
Сайт Etherboot містить докладну документацію, в основному призначену для Linux, але безсумнівно, вона корисна. Далі буде просто стисло описано, як ви повинні використовувати Etherboot в системі FreeBSD.
Спочатку потрібно встановити пакет або порт net/etherboot.
У нашій ситуації ми використовуватимемо завантажувальну дискету. Для інших методів (PROM або MS-DOS) будь ласка, зверніться до документації Etherboot.
Для створення завантажувальної дискети вставте дискету в дисковод на машині, де встановлений Etherboot, потім перейдіть до каталогу src у дереві Etherboot і наберіть:
Пристрій типу залежить від типу адаптера Ethernet на бездисковій робочій станції. Зверніться дофайлу NIC у тому самому каталозі для визначення правильного значення для devicetype.
25.6.2.4. Завантаження з PXE
Є два не документовані параметри make.conf, які можуть бути корисними для налаштування бездискового комп'ютера з послідовною консоллю: BOOT_PXELDR_PROBE_KEYBOARD , і BOOT_PXELDR_ALWAYS_SERIAL (остання існує тільки в FreeBSD 5.X).
25.6.2.5. Налаштування серверів TFTP та NFS
Створіть каталог, файли якого обслуговуватиме tftpd, наприклад /tftpboot.
Додайте у ваш /etc/inetd.conf такий рядок:
Вкажіть inetd на повторне читання конфігураційного файлу:
Ви можете розмістити каталог tftpboot у будь-якому місці на сервері. Перевірте, що це місце вказано як в inetd.conf, так і в dhcpd.conf.
Додайте наступне в /etc/rc.conf:
Експортуйте файлову систему, в якій розташований кореневий каталог для бездискової робочої станції, додавши наступний рядок /etc/exports (підправте точку монтування і замініть margaux corbieres іменами бездискових робочих станцій):
Вкажіть mountd для повторного читання настроювального файлу. Насправді, якщо вам потрібно було на першому кроці включити NFS в /etc/rc.conf, вам потрібно буде перезавантажити.
25.6.2.6. Побудова ядра для бездискової робочої станції
При використанні Etherboot, вам потрібно створити конфігураційний файл ядра для бездискового клієнта з наступними параметрами (до того ж, до звичайних):
Вам може знадобитися використовувати BOOTP_NFSV3 , BOOT_COMPAT і BOOTP_WIRED_TO (дивіться LINT у 4.X або NOTES у 5.X).
Ці імена параметрів склалися історично, і можуть трохи ввести в оману, оскільки включають необов'язкове використання DHCP та BOOTP у ядрі (можливовключення обов'язкового використання BOOTP або DHCP use).
Побудуйте ядро (зверніться до гл. 8) і скопіюйте його в каталог, вказаний у dhcpd.conf.
25.6.2.7. Підготовка кореневої файлової системи
Вам потрібно створити кореневу файлову систему для бездискових робочих станцій, у місцезнаходження, заданому як root-path в dhcpd.conf. У наступному розділі описано два способи, щоб зробити це.
25.6.2.7.1. Використання скрипту clone_root
Це найпростіший спосіб створення кореневої файлової системи, але він не підтримується в FreeBSD 4.X. Цей shell скрипт знаходиться в /usr/share/examples/diskless/clone_root, і вимагає налаштування принаймні завдання того місця, де буде створена файлова система (змінна DEST ).
Файли README в /usr/share/examples/diskless багато цікавої інформації, але разом з іншими прикладами з каталогу diskless вони насправді описують метод налаштування, який відрізняється від того, що використовується в clone_root та стартових скриптах системи з /etc, цим кілька заплутуючи справу. Використовуйте їх тільки для довідки, за винятком того випадку, коли ви оберете метод, який вони описують, і тоді вам потрібні виправлені скрипти rc.
25.6.2.7.2. Використання стандартної процедури make world
Цей метод може бути застосований до FreeBSD 4.X або 5.X і встановить нову систему (не тільки кореневу) у DESTDIR. Все, що вам потрібно зробити, це просто виконати наступний скрипт:
Як тільки це буде зроблено, вам може знадобитися налаштувати /etc/rc.conf і /etc/fstab, розміщені в DESTDIR, відповідно до ваших потреб.
25.6.2.8. Налаштування області підкачування
Якщо це потрібно, файл підкачки, розташований на сервері, можна використовувати за допомогою NFS .Один із методів, що використовуються для цього, не підтримується у релізах 5.X.
25.6.2.8.1. Підкачування по NFS у FreeBSD 4.X
Розташування та розмір файлу підкачки можуть бути вказані FreeBSD-специфічними параметрами BOOTP/DHCP 128 і 129. Приклади файлів налаштування для ISC DHCP 3.0 або bootpd наведені нижче:
Додайте наступні рядки до dhcpd.conf:
swap-path - це шлях до каталогу, де знаходяться файли підкачки. Назва кожного файлу має вигляд swap. client-ip.
Старі версії dhcpd використовували синтаксис option option-128", який більше не підтримується.
У /etc/bootptab використовуватиметься такий синтаксис:
Зауваження:У файлі /etc/bootptab розмір файлу підкачки повинен бути записаний у шістнадцятковому форматі.
Потім вкажіть mountd для повторного читання файлу exports, як описано раніше.
25.6.2.8.2. Підкачування по NFS у FreeBSD 4.X
Положення та розмір файлу підкачки можуть бути вказані у FreeBSD-специфічних параметрах BOOTP/DHCP з номерами 128 та 129. Нижче наведено приклади файлів налаштування для ISC DHCP 3.0 або bootpd:
Додайте наступні рядки до dhcpd.conf:
swap-path це шлях до каталогу, де розташовані файли підкачування. Файли називаються swap. client-ip.
Старі версії dhcpd використовують синтаксис option option-128". які більше не підтримуються.
/etc/bootptab замість цього використовує наступний синтаксис:
Зауваження:У /etc/bootptab, розмір підкачки повинен обчислюватися в шістнадцятковому форматі.
Потім змусіть mountd перечитати конфігураційні файли, як було показано вище.
25.6.2.9. Різні проблеми
25.6.2.9.1. Робота з /usr, доступною лише для читання
Якщо бездискова робоча станція налаштована на запуск X, вам потрібнопідправити настроювальний файл для XDM, який за умовчанням поміщає протокол помилок /usr.
25.6.2.9.2. Використання не-FreeBSD сервера
Якщо сервер з кореневою файловою системою працює не під керуванням FreeBSD, вам потрібно створити кореневу файлову систему на машині FreeBSD, а потім скопіювати її в потрібне місце за допомогою tar або cpio.
У такій ситуації іноді виникають проблеми зі спеціальними файлами /dev через різну розрядність цілих чисел для старшого/молодшого чисел. Вирішенням цієї проблеми є експортування каталогу з не-FreeBSD сервера, монтування його на машині з FreeBSD і запуск скрипту MAKEDEV на машині з FreeBSD для створення правильних файлів пристроїв (у FreeBSD 5.0 і пізніших версіях використовується devfs (5) для створення файлів пристроїв прозоро для користувача, запуск MAKEDEV у цих версіях безглуздо).
| Попер. | початок | Слід. |
| Мости | Рівень вище | ISDN |
З питань, пов'язаних з FreeBSD, прочитайте документацію перш ніж писати в . З питань, пов'язаних з цією документацією, пишіть . З питань, пов'язаних з українським перекладом документації, пишіть у розсилку. Інформація про підписку на цю розсилку знаходиться на сайті проекту перекладу.