PXE‑загрузка Ubuntu LiveCD через NFS/TFTP

Быстрая навигация
- Обзор
- Требования
- Как это работает
- Подготовка ISO и автомонтирование
- Создание NFS‑шара
- Настройка PXE‑меню
- Проверка и отладка
- Альтернативы и когда это не подойдёт
- Безопасность и права доступа
- Роль‑ориентированные чек‑листы
- Критерии приёмки
- Частые проблемы и решения
- Резюме
Обзор
Этот документ расширяет предыдущий материал про настройку PXE‑сервера и описывает, как добавить Ubuntu LiveCD в сетевые опции загрузки. В результате клиенты будут загружаться по PXE, получать PXElinux по TFTP, а корневая файловая система LiveCD будет монтироваться из NFS‑шара на сервере.
Такой подход удобен для диагностики, восстановления и установки ОС без использования физических носителей. После загрузки вы получите стандартную Live‑сессию Ubuntu и, при необходимости, сможете запускать установщик как обычно.
Важно: в примерах использованы пути и имена от оригинальной инструкции (папка /tftpboot/howtogeek/…), их можно адаптировать под вашу инфраструктуру.
Требования
- Работающий PXE/TFTP/FOG (или аналогичный) сервер, настроенный по предыдущему руководству.
- NFS‑сервер на той же машине или доступный по сети.
- ISO‑образ Ubuntu (в примерах: ubuntu-11.04-desktop-amd64.iso).
- Права root на сервере для правки /etc/fstab, /etc/exports и перезапуска сервисов.
- Клиентская машина с поддержкой PXE (обычно F12 в BIOS/UEFI).
Короткое определение: PXE — протокол сетевой загрузки; TFTP — простой файловый протокол для передачи загрузочных образов; NFS — сетевая файловая система для доступа к содержимому ISO во время загрузки.
Как это работает
Классический процесс LiveCD:
- BIOS запускает чтение с CD, загружает isolinux.
- isolinux показывает меню и загружает kernel + initrd, передавая параметры.
- kernel+initrd монтируют root и ищут файлы LiveCD в локальном CD‑приводе.
Процесс при PXE:
- Клиент загружается по сети через PXE и получает PXElinux по TFTP.
- PXElinux показывает меню и загружает kernel + initrd по TFTP.
- Kernel+initrd монтируют root не с локального CD, а с NFS‑шара на сервере.
Ключ: Ubuntu включила сетевые драйверы и поддержку протоколов в initrd, поэтому initrd умеет монтировать NFS и продолжать загрузку как с CD.
Подготовка ISO и автомонтирование
Вы можете либо смонтировать ISO напрямую из файла, либо распаковать содержимое в каталог. В инструкции показан способ автомонтирования ISO через loop‑устройство: это удобно для централизованного обновления — достаточно заменить ISO и перезапустить mount.
- Скопируйте ISO в каталог:
/tftpboot/howtogeek/linux- Создайте точку монтирования для версии Ubuntu:
sudo mkdir -p /tftpboot/howtogeek/linux/ubuntu/- Отредактируйте /etc/fstab для автомонтирования ISO при загрузке:
sudo vim /etc/fstab- Добавьте строку монтирования (в одну строку):
/tftpboot/howtogeek/linux/ubuntu-11.04-desktop-amd64.iso /tftpboot/howtogeek/linux/ubuntu/11.04 udf,iso9660 user,loop 0 0Note: Эта строка должна быть одной непрерывной строкой.
- Примените и проверьте:
sudo mount -a- Убедитесь, что содержимое доступно:
ls -lash /tftpboot/howtogeek/linux/ubuntu/11.04/Совет: если вы планируете хранить несколько версий, используйте структуру папок по версии, чтобы можно было откатиться к предыдущему образу без пересоздания конфигурации PXE.
Создание NFS‑шара
Именно NFS будет «тянуть» содержимое LiveCD во время загрузки, поэтому экспорт каталога должен быть корректно настроен.
- Отредактируйте файл exports:
sudo vim /etc/exports- Добавьте экспорт каталога (в примере — полный путь до смонтированного ISO):
/tftpboot/howtogeek/linux/ubuntu/11.04/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)Параметры:
- ro — доступ только для чтения (рекомендуется для LiveCD)
- sync — безопасная запись, но для чтения критично
- no_root_squash — позволяет root на клиенте иметь root‑права в шаре (небезопасно в общих средах)
- Перезапустите NFS‑демон:
sudo /etc/init.d/nfs-kernel-server restartImportant: Для продакшен‑среды рассмотрите более строгие параметры доступа вместо открытого “*” — указывайте подсети или конкретные IP.
Настройка PXE‑меню
Отредактируйте меню Linux в TFTP‑корне, чтобы добавить пункт загрузки Ubuntu LiveCD.
sudo vim /tftpboot/howtogeek/menus/linux.cfgДобавьте запись (замените
LABEL Ubuntu Livecd 11.04
MENU DEFAULT
KERNEL howtogeek/linux/ubuntu/11.04/casper/vmlinuz
APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=:/tftpboot/howtogeek/linux/ubuntu/11.04 initrd=howtogeek/linux/ubuntu/11.04/casper/initrd.lz quiet splash -- Пояснения:
- LABEL — имя записи
- MENU DEFAULT — делает запись выбранной по умолчанию в подменю
- KERNEL/INITRD — относительные пути в TFTP‑центре
- APPEND — параметры ядру: указывают использовать NFS как root и где находится NFS‑шар
Note: Я пробовал использовать DNS‑имена вместо IP и столкнулся с тем, что на этапе ранней загрузки DNS может быть недоступен; поэтому используйте IP. Если у вас есть опыт успешного использования имён, добавьте пример в вашу документацию.
Проверка и отладка
- На клиенте выберите сетевую загрузку (обычно F12).
- Если PXE не видит сервер — проверьте DHCP опции (TFTP сервер и bootfile). PXE полагается на DHCP для указания TFTP‑сервера.
- Если kernel не загружается — проверьте путь к vmlinuz и initrd в TFTP‑директории.
- Если initrd не может смонтировать NFS — проверьте, доступен ли NFS‑порт с клиента, и соответствует ли путь экспорту в /etc/exports.
Полезные команды на сервере:
- showmount -e localhost — показывает текущие экспортируемые шары NFS.
- tcpdump -i
port 69 — отлавливает TFTP‑запросы (если требуется). - journalctl -u nfs‑kernel‑server — просмотр логов NFS.
Типичные ошибки и подсказки:
- “mount: connection refused” — проверьте, запущен ли nfs‑сервер.
- “No route to host” — клиент не видит сервер на сетевом уровне.
- “permission denied” — проверьте опции в /etc/exports и перезапустите сервис.
Альтернативы и когда это не подойдёт
Альтернативные подходы:
- HTTP/HTTPS вместо NFS: полезно, если вы предпочитаете простую доставку файлов и у вас initrd поддерживает загрузку корня по HTTP (needs additional initrd scripts).
- Распаковка ISO в каталог вместо loop‑маунта: проще для модификации отдельных файлов внутри ISO.
- iSCSI вместо NFS: предоставляет блочный доступ, но сложнее в настройке.
Когда этот метод может не сработать:
- Современные UEFI‑системы с Secure Boot могут блокировать неподписанные ядра/initrd.
- Если initrd вашей версии Ubuntu не содержит сетевых драйверов для конкретной NIC.
- Когда требования безопасности запрещают использование NFS с no_root_squash или открытого экспорта.
Безопасность и права доступа
- По возможности не используйте “*” в /etc/exports — указывайте подсети.
- Избегайте no_root_squash в общих окружениях. Для LiveCD можно рассмотреть read‑only экспорт и ограниченный список клиентов.
- TFTP не шифрует трафик — при необходимости используйте защищённые сети для передачи образов.
Роль‑ориентированные чек‑листы
Администратор сети:
- Убедиться, что DHCP указывает правильный TFTP‑сервер и bootfile.
- Проверить сетевые ACL и VLAN, позволяющие PXE‑клиентам достичь сервера.
- Настроить экспорт NFS с корректными ограничениями доступа.
Системный инженер (на сервере):
- Разместить ISO в /tftpboot и добавить запись в /etc/fstab.
- Перезапустить nfs‑kernel‑server и проверить showmount -e.
- Проверить файлы vmlinuz и initrd в TFTP‑папке.
Техник на месте (клиент):
- Включить сетевую загрузку в BIOS/UEFI и выбрать PXE.
- Если PXE не появляется, проверить сетевой кабель, порт и VLAN.
- Снять фото экрана ошибки и прислать администратору сети.
Критерии приёмки
- Клиент успешно загружается в Ubuntu LiveCD по PXE и видно графическое окружение.
- Live‑сессия может монтировать корень с NFS и файлы LiveCD доступны в /cdrom.
- Процесс загрузки воспроизводим на нескольких клиентах с разными NIC.
Частые проблемы и решения
Проблема: PXE не видит bootfile
- Проверьте DHCP опции next-server и filename.
- Убедитесь, что TFTP‑сервер слушает входящие запросы и файлы доступны.
Проблема: initrd не монтирует NFS
- Убедитесь, что nfsroot в APPEND указывает корректный IP и путь.
- Проверьте сетевые фильтры и доступность NFS портов (2049/udp или tcp).
Проблема: медленная загрузка
- TFTP — медленный протокол; для ускорения используйте сжатие initrd или репликацию TFTP по сети.
- Проверяйте нагрузку диска и сети на сервере.
Советы по обновлению образов
- Чтобы заменить версию Ubuntu, загрузите новый ISO в ту же папку и обновите /etc/fstab, затем mount -a. Если вы храните версии в отдельных папках, корректируйте только nfsroot и пути в PXE‑меню.
- Рассмотрите автоматизацию: скрипт для загрузки новой версии ISO и обновления fstab + перезапуска NFS.
Дополнительные материалы и ссылки
- Используйте man exportfs и man exports для деталей параметров NFS.
- Для отладки PXE пригодится лог DHCP и утилиты типа tcpdump.
Резюме
PXE‑загрузка Ubuntu LiveCD через TFTP + NFS — эффективный способ централизованно предоставлять Live‑среды для диагностики и установки систем. Метод прост в реализации: смонтируйте ISO, экспортируйте его по NFS, добавьте запись в PXE‑меню и проверьте загрузку. Обратите внимание на безопасность NFS‑экспортов и совместимость NIC/UEFI.
Важное: в рабочих сетях избегайте широких экспортов NFS и проверяйте совместимость с Secure Boot.
Ubuntu — это всё, что было и что будет; в шутку: Ubuntu управляет временем и пространством, но для целей администрирования главное — стабильность и предсказуемость системы.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента