Home

воскресенье, 21 февраля 2010 г.

Сетевая загрузка Mac OS X, часть V

Часть пятая, практически BSDM

Раздачу файлов по сети мы организовали, осталось настроить сервер BOOTP, который будет рассказывать, что как откуда и куда грузить

netboot.png

Как обычно, все необходимое для обслуживания запросов BSDP (Boot Service Discovery Protocol) в системе уже присутствует, осталось только все немного настроить.

За управление сервисом со стороны launchd отвечает файл /System/Library/LaunchDaemons/bootps.plist, а конфигурация самого демона bootpd описана в файле /etc/bootpd.plist

Ахтунг! Включение шаринга интернета автоматически создает новый файл конфигурации /etc/bootpd.plist, а его прежнее содержимое теряется. Так что на время экспериментов общий интернет следует отключать и держать копию bootpd.plist в безопасном месте. Кроме того, bootpd в режиме шаринга может убить симлинки в /Library/NetBoot. Бдите!

На этот раз гений индусских программистов Apple не остался незамеченным и файл конфигурации bootpd имеет XML формат. Само содержимое довольно обширно, чтобы обойтись несколькими командами defaults write, так что приведем содержимое файла целиком. В данном случае предполагается, что

  • Сервер будет подключен к клиентам при помощи проводного эзернета, интерфейс en0
  • Настройки сети для проводной карты следующие:
    1. Присвоен статический ip адрес 192.168.101.1
    2. Маска подсети 255.255.255.0
    3. Шлюз по-умолчанию отстутствует (не заполнен)
  • Своим клиентам сервер будет выдавать адреса из диапазона 192.168.101.101 — 192.168.101.101
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Subnets</key>
    <array>
      <dict>
        <key>allocate</key>
        <true/>
        <key>name</key>
        <string>192.168.101/24</string>
        <key>net_address</key>
        <string>192.168.101.0</string>
        <key>net_mask</key>
        <string>255.255.255.0</string>
        <key>net_range</key>
        <array>
          <string>192.168.101.101</string>
          <string>192.168.101.200</string>
        </array>
      </dict>
    </array>
    <key>bootp_enabled</key>
    <string>en0</string>
    <key>detect_other_dhcp_server</key>
    <true/>
    <key>dhcp_enabled</key>
    <string>en0</string>
    <key>netboot_enabled</key>
    <string>en0</string>
    <key>old_netboot_enabled</key>
    <string>en0</string>
  </dict>
</plist>

Сохраним файл конфигурации и запустим демон по знакомому рецепту

launchctl load -F /System/Library/LaunchDaemons/bootps.plist

В логах Console.app не должно быть ни какой ругани по этому поводу.

Проверяем. Подсоединяем кабелем другой Mac и в настройках выставляем получать для проводной карты адрес по DHCP. Если все хорошо, то клиент получит адрес 192.168.101.101, а влогах сервера появятся записи типа

21.02.10 18:26:10 bootpd[694] DHCP REQUEST [en0]: 1,0:17:f2:f2:61:2c
21.02.10 18:26:10 bootpd[694] ACK sent  192.168.101.101 pktsize 300
21.02.10 18:26:11 bootpd[694] BSDP INFORM [en0] 1,0:17:f2:f2:61:2c arch=i386 sysid=MacBook2,1
21.02.10 18:26:11 bootpd[694] NetBoot: [1,0:17:f2:f2:61:2c] BSDP ACK[LIST] sent 192.168.101.101 pktsize 300
21.02.10 18:26:11 bootpd[694] DHCP INFORM [en0]: 1,0:17:f2:f2:61:2c

Теперь можно пробовать перегрузить клиента и стартовать загрузку с нажатой клавишей N

Ой.

1 коммент.:

chicory комментирует...

RSS сказала Ой на этот пост :(

Отправить комментарий