Якщо Ваш комп’ютер під'єднаний до локальної мережі, його можна завантажити через мережу з іншого комп’ютера за допомогою TFTP. Якщо бажаєте завантажити систему інсталяції з іншого комп’ютера, потрібно завантажувальні файли розмістити на цьому комп’ютері в певних місцях, а комп’ютер налаштувати для підтримки завантаження Вашого конкретного комп’ютера.
Вам потрібно налаштувати сервер TFTP, а для декількох комп'ютерів налаштувати сервер DHCP, чи сервер BOOTP.
BOOTP — протокол IP, який повідомляє комп'ютерам їх IP-адреси та інформацію про розташування в мережі образів для завантаження. Протокол DHCP (протокол динамічної конфігурації вузла) — це більш гнучке, зворотно сумісне розширення BOOTP. Деякі системи можуть бути налаштовані лише через DHCP.
Простий протокол обміну файлами (TFTP) використовується для передачі завантажувального образу до клієнтів. Теоретично Ви можете використовувати сервер на будь-якій платформі, яка його підтримує. Приклади у цьому розділі стосуються операційних систем SunOS 4.x, SunOS 5.x (Solaris) та GNU/Linux.
Примітка | |
---|---|
Якщо на сервері запущено Debian GNU/Linux, ми рекомендуємо використовувати TFTP-сервер |
Одним з безплатних програмних серверів DHCP є ISC dhcpd. Для Debian GNU/Linux рекомендується пакунок isc-dhcp-server
. Нижче зразок файлу конфігурації (див. /etc/dhcp/dhcpd.conf
):
option domain-name "example.com"; option domain-name-servers ns1.example.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host clientname { filename "/tftpboot.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
У цьому прикладі є один сервер servername
, який виконує всю роботу сервера DHCP, сервера TFTP та мережевого шлюзу. Вам майже напевно доведеться змінити параметри назви домену, а також назву сервера та апаратну адресу клієнта. Параметр filename
має бути назвою файлу, який буде отриманий через TFTP.
Після редагування файлу конфігурації перезапустіть dhcpd за допомогою команди/etc/init.d/isc-dhcp-server restart
.
Ось ще один приклад dhcp.conf
з використанням методу PXE від TFTP.
option domain-name "example.com"; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; # Наступний абзац потрібно змінити відповідно до Вашого випадку subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option broadcast-address 192.168.1.255; # адреса шлюзу може бути іншою # (наприклад, доступ до Інтернету) option routers 192.168.1.1; # вкажіть DNS, який Ви хочете використовувати option domain-name-servers 192.168.1.3; } group { next-server 192.168.1.3; host tftpclient { # фізична адреса клієнта tftp hardware ethernet 00:10:DC:27:6C:15; filename "pxelinux.0"; } }
Зверніть увагу, що у завантаженні PXE ім’я файлу клієнта pxelinux.0
є завантажувачем, а не образом ядра (див. Розділ 4.5.4, «Перемістіть образи TFTP на місце» нижче).
Якщо Ваш комп'ютер використовує для завантаження UEFI, Вам доведеться, наприклад, вказати завантажувач, сумісний з UEFI
group { next-server 192.168.1.3; host tftpclient { # фізична адреса клієнта tftp hardware ethernet 00:10:DC:27:6C:15; filename "debian-installer/amd64/bootnetx64.efi"; } }
Для GNU/Linux є два сервери BOOTP. Перший — CMU bootpd. Інший фактично є сервером DHCP: ISC dhcpd. У Debian GNU/Linux вони містяться в пакетах bootp
та isc-dhcp-server
відповідно.
Для використання CMU bootpd, Вам потрібно спочатку розкоментувати (або додати) відповідні рядку у /etc/inetd.conf
. У Debian GNU/Linux, це можна зробити так: виконати update-inetd --enable bootps
, потім /etc/init.d/inetd reload
. Якщо Ваш сервер BOOTP працює не на Debian, рядок у запиті може виглядати приблизно так:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Тепер потрібно створити файл /etc/bootptab
. У нього такий самий формат, як у файлів у старому доброму BSD printcap
, termcap
та disktab
. Для докладної інформації подивіться сторінку з настановами щодо bootptab
. Для CMU bootpd Вам потрібно знати фізичну адресу (MAC) клієнта. Тут є приклад /etc/bootptab
:
client:\ hd=/tftpboot:\ bf=tftpboot.img:\ ip=192.168.1.90:\ sm=255.255.255.0:\ sa=192.168.1.1:\ ha=0123456789AB:
Вам потрібно змінити хоча би параметр «ha», який містить фізичну адресу. Параметр «bf» містить назву файлу, який повинен передаватися клієнту через TFTP; більше інформації у Розділ 4.5.4, «Перемістіть образи TFTP на місце».
На відміну від попереднього налаштування BOOTP за допомогою ISC dhcpd дуже просте, оскільки dhcpd розглядає клієнтів BOOTP як окремі випадки клієнтів DHCP. Але деякі архітектури вимагають складного налаштування для завантаження клієнтів через BOOTP. Якщо це Ваш випадок, прочитайте Розділ 4.5.1, «Налаштування сервера DHCP». В іншому випадку достатньо додати директиву allow bootp
у файлі конфігурації /etc/dhcp/dhcpd.conf
у блок підмережі, в якій знаходиться клієнт. Потім перезапустіть сервер dhcpd командою /etc/init.d/isc-dhcp-server restart
.
Для підготовки до роботи сервера TFTP, переконайтеся спочатку, що tftpd активований.
У випадку tftpd-hpa
існує два способи запуску служби. Можна запустити як окремий демон inetd
під час запуску системи, або як незалежний демон. Який метод Вам потрібен можна обрати під час встановлення пакунка або можете змінити налаштування в будь-який час пізніше.
Примітка | |
---|---|
Історично сервери TFTP використовували каталог |
Усі альтернативи in.tftpd, доступні в Debian повинні типово реєструвати запити TFTP у системних журналах. Деякі з них підтримують аргумент -v
для збільшення інформативності. У разі проблем із завантаженням рекомендується перевіряти ці повідомлення журналу, оскільки вони є гарною відправною точкою для діагностики помилок та пошуку причин.
Далі розмістіть потрібний завантажувальний образ TFTP, як описано у Розділ 4.2.1, «Де знайти інсталяційні файли», до каталогу з образами tftpd. Можливо, буде потрібно створити посилання з цього файлу на файл, який tftpd використовуватиме для завантаження певного клієнта. На жаль, імена файлу визначається клієнтом TFTP і тут немає жорстких стандартів.
Для завантаження PXE все необхідне є в архіві netboot/netboot.tar.gz
. Просто розпакуйте цей архів у каталог для образів tftpd. Переконайтеся, що Ваш dhcp-сервер налаштований передавати файл pxelinux.0
до tftpd. Для машин UEFI буде потрібно передати відповідну назву завантажувального образу EFI (наприклад, /debian-installer/amd64/bootnetx64.efi
).