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)

slavankaos
2. Можливість бути клієнтом NFS (NFS client support) 3. Можливість мати NFS як системний розділ (Root file system on NFS)
бездискові
4. Крім того, драйвер вашої мережної карти повинен бути зібраний монолітно або включений в init-ram диск якщо такий використовується.

Для тестування я зібрав ядро ​​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

завантажуємо та перевіряємо як справи:

slavankaos

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

запускаємо комп'ютер клієнта і знову заходимо по ssh:

slavankaos
Ось і всі складнощі.