SlavankaOS Бездискові станції - приклади реалізації для PXE
Розробка LiveCD на основі Slackware GNU/Linux
Бездискові станції - приклади реалізації для PXE
У handbook'і FreeBSD налаштування бездискової станції відносять до складних питань роботи в мережі. Я не вважаю це складною справою, але через розрізнену інформацію в мережі це вважається таким. Тут я розгляну три приклади реалізації бездискової станції. Як приклад на базі LiveCD я зібрав образ системного розділу для клієнтської машини. За складом включених пакетів це щось на зразок консольної версії Recovery LiveCD. Також я зібрав зібрав ядро Linux-3.3 на конфізі ядра slackware-generic із усіма необхідними опціями для роботи бездискової станції. Архів можна завантажити тут.
Як сервер для бездискової станції згодиться комп'ютер із встановленим дистрибутивом Slackware GNU/Linux або LiveCD Recovery-версії, де є все необхідне.
Посилання по темі: PXELINUX Введення в мережеве завантаження та протокол Etherboot Введення в завантаження по мережі та Etherboot Використання мережних адаптерів PXE bootptab Введення По-перше, мережна карта клієнтського комп'ютера повинна підтримувати завантаження по мережі, для цього вона повинна мати свій BIOS. З часів так Pentium 4 материнські плати виготовляються із вбудованими мережевиками BIOS яких інтегрований в загальний BIOS материнки, і можливість мережного завантаження можна включити через меню BIOS комп'ютера. Це зазвичай PXE завантажувач (інших особисто я не зустрічав). Із зовнішніми мережевими картами не все так просто. Мережі з PXE коштують дорожче, переваги використання для більшості не очевидна, тому купують їх мало і магазини возять теж рідко. Крім PXE як би є (чи був?) стандарт мережного завантаження NetBoot, єдину картку з NetBootяка побувала у мене в руках була клон NE2000 для ISA шини (там на ПППЗУ ще було віконце для УФ). Якщо вірити вікіпедії NetBoot до цих пір живе в макінтошах. Надалі припускаємо що у нас комп'ютер із завантажувачем PXE.
Щоб клієнтська система могла завантажуватись завантажуватися по мережі, її ядро має бути зібране зі спеціальними опціями: 1. Автоматичне налаштування мережі за протоколами BOOTP та/або DHCP (IP: kernel level autoconfiguration)


Для тестування я зібрав ядро Linux-3.3 із зазначеними опціями, а також монолітно зібрав драйвера для всіх мережевих карт, щоб ядро гарантовано працювало на всіх комп'ютерах.
Використовуємо сервер як флешку для завантаження Зазвичай при описі налаштування бездискової станції використовують DHCP демон. Я використовуватиму BOOTP тому що це простіше, а значить зрозуміліше. Нам знадобляться tftpd і boopd демони. У файлі /etc/inetd.conf прокоментуйте рядки:
За протоколом PXE можна завантажити лише 32кбайта, тому спочатку передається завантажувач, який з'єднується з tftp сервером і через нього клієнт отримує вже все інше. Скопіюйте pxe-завантажувач у робочий каталог tftpboot демона, він входить до складу пакету syslinux:
тепер можна перезапустити супер-демон:
Перший, це буде пошук для файлу config file using hardware type (using its ARP type code) and address, all in low case hexadecimal with dash separators; для прикладу, для Ethernet (ARP type 1) з адресою 88:99:AA:BB:CC:DD it would search for the filename01-88-99-aa-bb-cc-dd.
тобто ми вказуємо завантажувачу шлях до ядра та init-ram диска, по tftp це завантажується на клієнт після чого запускається. т. до. init-ram диск це і є системний розділ клієнта, то більше для роботи йому нічого не потрібно.
Використання nfs та initramfs Використання init-ram диска дозволяє використовувати модулі мережевих карток для ініціалізації мережного інтерфейсу на рівні ядра Linux, змонтувати nfs-диск щоб отримати з нього потрібні файли або використовувати його як системний розділ. Я взяв initrd від Recovery livecd і в init рядок:
у результаті можу використовувати nfs сервер як носій файлів livecd. На цьому етапі мережевий диск змонтований на /mnt легко можна зробити кореневим розділом для системи, що завантажується.
На сервері до файлу /etc/exports додайте рядок:
тобто це теж вийде livecd із завантаженням по мережі, але вже на AUFS
завантажуємо та перевіряємо як справи:

Використання системного розділу на NFS без initramfs Тепер відкинемо убік livecd і налаштуємо класичне завантаження з NFS як системний розділ. Розпакуємо архів системного розділу:
запускаємо комп'ютер клієнта і знову заходимо по ssh:
