Если ваша машина подключена к локальной сети, то вы можете загрузить её по сети с другой машины через TFTP. Для этого на удалённую машину в определённое место вам нужно поместить загрузочные файлы и настроить поддержку загрузки вашей машины.
Вам нужно настроить TFTP сервер, а если машин много, то DHCP сервер .
BOOTP — это IP протокол, который информирует компьютер о его IP-адресе и где в сети получить загрузочный образ. DHCP (Dynamic Host Configuration Protocol) более гибок и обратно совместим с BOOTP. Некоторые системы могут быть настроены только через DHCP.
Некоторые старые машины HPPA (например, 715/75) используют RBOOTD, а не BOOTP. Пакет rbootd
доступен в Debian.
Trivial File Transfer Protocol (TFTP) используется для загрузки загрузочного образа на клиентскую машину. Теоретически, можно использовать любой сервер на любой платформе, которая реализует эти протоколы. В примерах этого раздела мы используем команды из SunOS 4.x, SunOS 5.x (так называемый Solaris) и GNU/Linux.
Одним из свободных DHCP серверов является ISC dhcpd. В Debian GNU/Linux он доступен из пакета dhcp3-server
. Вот пример его конфигурационного файла (обычно /etc/dhcp3/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 серверов и шлюза сети. Вам почти наверняка нужно изменить опцию domain-name, а также имя сервера и аппаратный адрес клиента. Опция filename
должна содержать имя файла, который нужно получить по TFTP.
После редактирования конфигурационного файла для dhcpd, перезагрузите сервер командой /etc/init.d/dhcp3-server restart
.
Для GNU/Linux есть два BOOTP сервера. Первый — CMU bootpd. Второй, на самом деле являющийся сервером DHCP — ISC dhcpd. В Debian GNU/Linux они находятся в пакетах bootp
и dhcp3-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.3.4, «Копирование TFTP образов в каталог TFTP сервера».
Напротив, настройка BOOTP в ISC dhcpd очень проста, так как здесь клиенты BOOTP считаются одним из вариантов клиентов DHCP. Некоторые архитектуры требуют сложной настройки для загрузки клиентов по BOOTP. Если у вас один из таких случаев, прочитайте раздел Раздел 4.3.1, «Настройка DHCP сервера». Если нет, то достаточно просто добавить директиву allow bootp
в блок настройки подсети, содержащей клиента, в /etc/dhcp3/dhcpd.conf
и перезапустить dhcpd командой /etc/init.d/dhcp3-server restart
.
Чтобы сервер TFTP заработал, во-первых нужно проверить что включена tftpd.
Программа tftpd-hpa
может быть запущена двумя способами. Она может запускаться по требованию службой inetd
, или может быть настроена для работы как независимая служба. Выбор метода происходит при при установке пакета, и его можно изменить через перенастройку пакета.
Исторически, TFTP-серверы используют каталог /tftpboot
для хранения образов. Однако, пакеты Debian GNU/Linux могут использовать другие каталоги, чтобы соответствовать Filesystem Hierarchy Standard. Например, tftpd-hpa
по умолчанию использует /srv/tftp
. Вам может потребоваться изменить примеры конфигурации для соответствия.
По умолчанию, все альтернативные программы in.tftpd, доступные в Debian, протоколируют запросы TFTP в системный журнал. Некоторые из них имеют параметр -v
, позволяющий включить более подробный протокол. Рекомендуется проверить эти сообщения в журнале в случае возникновения проблем с загрузкой; это хорошая отправная точка при поиске причин ошибок.
Далее, поместите нужный загрузочный образ TFTP из Раздел 4.2.1, «Где искать установочные образы» в каталог загрузочных образов tftpd. Вы можете сделать ссылку на этот файл для файла, который tftpd будет передавать для загрузки определённому клиенту. К сожалению, имя файла зависит от клиента TFTP и никак не стандартизовано.