Сегодня у меня возникла острая потребность грузить по сетке компы с роутера. Может быть кому понадобится, так что расскажу как и что делать. Тем более ни одного внятного объяснения в этом форуме я так и не нашёл.
На самом деле всё ну очень быстро и легко, минут 15 максимум (если не считать время закачек)
*при работе с именами файлов соблюдайте правильный регистр

1) Подготовка образа BartPE
  • Скачать PEbuilder

  • Скачать дистрибутив Windows Server 2003 R2 SP2 x86 En (где брать решайте сами, можно абсолютно легально и с microsoft.com триал скачать, всё равно активировать не надо)

  • Прочитать одну из многочисленных инструкций про BartPE (хотя можно и без них разобраться, там и так проще не придумаешь)

  • Собрать систему и записать её в файл BARTPE.ISO

  • Теперь надо разобраться с загрузочными файлами:
    из папки I386 взять файлы:
    NTDETECT.COM (переименовываем в ntdetect.com)
    STARTROM.N1_ (распаковать с помощью expand -> startrom.n12)
    SETUPLDR.EX_ (распаковать с помощью expand и переименовать его в NTLDR)
    создать файл winnt.sif с таким содержанием:
    Code:
    [SetupData]
    BootDevice = "ramdisk(0)"
    BootPath = "\i386\System32\"
    OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso"


2) Настройка роутера
  • Установить tftp-hpa (вместе с ним установится ещё и xinetd)
    Code:
    ipkg install tftp-hpa
  • Создать папку на диске где будет храниться загрузочный образ (дефолтовая папка: /opt/tftpboot, хотя можно и любую другую использовать; у меня, например, /opt/files/boot), и скинуть 5 имеющихся файлов туда.

  • Прописать в файл /usr/local/etc/dnsmasq.conf такую строчку (если файла нет, то надо создать):
    Code:
    dhcp-boot=startrom.n12
    после чего сохранить его в флешпамяти роутера
    Code:
    flashfs save && flashfs commit && flashfs enable
  • При необходимости отредактировать файл /opt/etc/xinetd.conf под свои нужды (мне же было достаточно и дефолтовых настроек)

  • Отредактировать файл /opt/etc/xinetd.d/tftp
    Он должен выглядеть примерно так:
    Code:
    service tftp
    {
           flags            = REUSE
           socket_type      = dgram
           protocol         = udp
           instances        = 30
           wait             = yes
           user             = admin
           server           = /opt/sbin/in.tftpd
           server_args      = -s /opt/files/boot
           cps              = 100 2
           log_on_success   = HOST PID
           log_on_failure   = HOST
           disable          = no
    }
    параметр user, разумеется, должен соответствовать вашему администраторскому логину; в server_args должен быть указан путь к загрузчику;

  • Если не используете rc.unslung, то не забудьте прописать в автозапуск /opt/sbin/xinetd


Теперь можно ребутнуть роутер и проверить работоспособность.