Если ваша машина подключена к локальной сети, то вы можете загрузить её по сети с другой машины через TFTP. Для этого на удалённую машину в определённое место вам нужно поместить загрузочные файлы и настроить поддержку загрузки вашей машины.
Вам нужно настроить TFTP сервер, а если машин много, то BOOTP сервер или DHCP сервер.
BOOTP — это IP протокол, который информирует компьютер о его IP адресе и где в сети получить загрузочный образ. DHCP (Dynamic Host Configuration Protocol) более гибок и обратно совместим с BOOTP. Некоторые системы могут быть настроены только через DHCP.
Для PowerPC, если вы имеете машину NewWorld Power Macintosh, лучше использовать DHCP вместо BOOTP. Некоторые из последних машин невозможно загрузить с помощью BOOTP.
Trivial File Transfer Protocol (TFTP) используется для загрузки загрузочного образа на клиентскую машину. Теоретически, можно использовать любой сервер на любой платформе, которая реализует эти протоколы. В примерах этого раздела мы используем команды из SunOS 4.x, SunOS 5.x (так называемый Solaris) и GNU/Linux.
В GNU/Linux есть два BOOTP сервера: CMU bootpd и ISC dhcpd (на самом деле DHCP сервер); они находятся в пакетах bootp и dhcp.
Чтобы использовать CMU bootpd, во-первых, вы должны раскомментировать (или добавить) соответствующую строку в /etc/inetd.conf. Для этого в Debian GNU/Linux вы можете запустить update-inetd --enable bootps, затем /etc/init.d/inetd reload. Или же можно добавить следующую строку вручную:
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.6.4, «Копирование TFTP образов в каталог TFTP сервера».
Настройка BOOTP в ISC dhcpd очень проста, так как он считает клиента BOOTP, как один из вариантов клиента DHCP. Некоторые архитектуры требуют сложной конфигурации для загрузки клиентов по BOOTP. Если у вас один из таких случаев, прочитайте раздел Раздел 4.6.2, «Настройка DHCP сервера». Если нет, то достаточно просто добавить директиву allow bootp в конфигурационный блок подсети, содержащей клиента и перезапустить dhcpd командой /etc/init.d/dhcpd restart.
Есть один свободный DHCP сервер — это ISC dhcpd. В Debian GNU/Linux он доступен из пакета dhcp. Вот пример его конфигурационного файла (обычно /etc/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/tftpboot.img";
server-name "servername";
next-server servername;
hardware ethernet 01:23:45:67:89:AB;
fixed-address 192.168.1.90;
}
Замечание: новый (и предпочтительный) пакет dhcp3 использует /etc/dhcp3/dhcpd.conf.
В этом примере определён единственный сервер servername, который работает в качестве DHCP, TFTP серверов и шлюза сети. Вам почти наверняка нужно изменить опцию domain-name, а также имя сервера и аппаратный адрес клиента. Опция filename должна содержать имя файла, который нужно получить по TFTP.
После редактирования конфигурационного файла dhcpd, перезагрузите сервер командой /etc/init.d/dhcpd restart.
Для запуска TFTP сервера вы должны убедиться, что tftpd включён. Обычно, это делается добавлением в /etc/inetd.conf строки вида:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
Пакеты Debian сами создают такую строку при установке.
Загляните в этот файл и запомните каталог, который используется в качестве аргумента in.tftpd— он вам потребуется далее. Аргумент -l в некоторых версиях in.tftpd включает запись протокола всех обращений в системные журналы — это полезно для диагностики ошибок. Если вы изменили /etc/inetd.conf, вам нужно об этом сказать запущенному процессу inetd. На машине Debian выполните /etc/init.d/inetd reload; на других машинах определите ID процесса inetd и запустите kill -HUP . inetd-pid
Далее, поместите нужный загрузочный образ TFTP из Раздел 4.2.1, «Где искать установочные образы» в каталог загрузочных образов tftpd. Как правило, этот каталог называется /tftpboot. Вы можете сделать ссылку на этот файл для файла, который tftpd будет передавать для загрузки определённому клиенту. К сожалению, имя файла определяется TFTP клиентом и никак не стандартизовано.
На машинах NewWorld Power Macintosh вам нужно настроить системный загрузчикyaboot на загрузочный образ TFTP. Yaboot затем получит образы ядра и RAMdisk через TFTP сам. Для сетевой загрузки, используйте yaboot-netboot.conf. Просто переименуйте его в yaboot.conf в каталоге TFTP.