Блог ИТ склеротика. Загрузка ОС через интернет с помощью netboot.me

Страницы

Расширенный поиск в статьях блога

18 февраля 2012 г.

Загрузка ОС через интернет с помощью netboot.me



Загрузка ОС через интернет с помощью netboot.meПредставьте себе флешку, на которую записано множество самых разных Linux-дистрибутивов и диагностических утилит, каждая из которых в любой момент времени находится в актуальном состоянии. Это невозможно? Отнюдь, создатели проекта netboot.me предлагают скачать образ такой флешки, общим весом меньше одного мегабайта.

Это не магия, просто образ содержит сетевой загрузчик, который позволяет загрузить ОС прямо из интернета, предлагая на выбор несколько вариантов дистрибутивов. Это очень медленный и "трафико-затратный" способ, который, тем не менее, имеет массу достоинств:

Вы сможете экпериментировать с несколькими ОС и установить нужную без дополнительных телодвижений (ее так или иначе придется выкачивать из интернета).


  • Вы всегда будете иметь под рукой кучу независящих от ОС утилит (таких как memtest86). Их загрузка займет секунды.
  • Вы сможете организовать массовую установку на множество машин. Для этого можно поднять собственный приватный сервер загрузки.
  • Сервис можно использовать для загрузки бездисковых рабочих станций. При этом загрузчик можно записать прямо в BIOS, благодаря чему бездисковые терминалы, не имеющие возможности запускать ОС с носителей, смогут запустить ОС прямо из интернета.
В основе netboot.me лежит загрузчик gPXE), созданный для обеспечения возможностью сетевой загрузки машин, не имеющих поддержки PXE. В отличие от последнего gPXE может быть записан на жесткий диск, флоппи-диск, USB-флешку и поддерживает дополнительный набор сетевых протоколов, таких как FTP, HTTP и NFS. После загрузки gPXE запрашивает меню операционных систем у сайта netboot.me и отдает управление пользователю.
Кроме всего прочего netboot.me позволяет добавлять в меню загрузчика собственные пункты. Для этого необходимо оставить на сайте пути к собственным ядру, образу initrd и прописать необходимые опции. В том случае, если конфигурация понравится администраторам сервиса, она будет добавлена в меню.
На данный момент netboot.me предлагает три образа gPXE-загрузчика: для записи на USB-брелок, флоппи-диск и CD. Для того, чтобы воспользоваться его возможностями достаточно выполнить ряд простых действий:
1. Скачать gPXE-загрузчик.
2. Записать его на носитель:
$ sudo dd if=netbootme.dsk of=/dev/fd0 // Флоппи-диск
$ sudo dd if=netbootme.usb of=/dev/sdf // USB-брелок
3. Загрузиться с носителя.
В случае статической настройки сети придется указать свои сетевые реквизиты, но если сетью управляет DHCP-сервер все заработает из коробки.
4. Выбрать операционную систему для загрузки/установки. На данный момент поддерживается установка следующих ОС:
  • Debian Lenny (5.0)
  • Debian Testing
  • Fedora 11
  • OpenSUSE 11.1
  • Ubuntu Jaunty (9.04)
  • Ubuntu Karmic (9.10)
  • FreeBSD 7.2
  • MirOS bsd4me current
В виде загружаемых по сети LiveCD доступны:
  • Tiny Core Linux 2.2
  • Micro Core Linux 2.2
  • MirOS bsd4me current
Кроме того есть следующие инструменты:
  • Тестеры памяти Memtest 86 и Memtest 86+.
  • Утилита для анализа конфигурации машины HDT 0.3.4.
  • Мини-дистрибутивы для работы с накопителями GParted Live 0.4.5-2 и Parted Magic 4.5.
  • Спасательные образы Ubuntu Jaunty (9.04), Ubuntu Karmic (9.10), Ubuntu Lucid (10.4) и CentOS 5.
  • Загрузчик Smart Boot Manager.
Доступны также игра nethack и система меню сервиса boot.kernel.org.
netboot.me
Меню загрузчика netboot.me
Сам boot.kernel.org (или сокращенно BKO) представляет абсолютно идентичную netboot.me функциональность. Он использует тот же gPXE и предлагает собственный вариант загрузочного меню, содержащий дистрибутивы:
  • Debian live
  • Ubuntu 9.04
  • Damm Small Linux
  • Knoppix 5.0.1
  • Fedora 11 Live CD
Возможности и ограничения сервиса полностью идентичны netboot.me. Цель проекта: распространение загрузочных образов систем диагностики, инсталяторов дистрибутивов и LiveCD, тестирование экспериментальных версий ядра.
boot.kernel.org
Меню загрузчика boot.kernel.org

Кастомный дистрибутив в netboot.me

Выше я уже упоминал о том, что netboot.me позволяет добавлять в сервис собственную конфигурацию для загрузки. Но даже если она не будет принята администраторами сервиса, ее все равно можно будет загрузить с любой netboot.me-флешки. 
Для этого необходимо залить ядро и образ initrd (нужно использовать специальный образ, содержащий в себе весь дистрибутив, как это сделать ищите в интернете, по запрсу "netboot initrd") на какую-нибудь сетевую машину с белым адресом, войти на сайт netboot.me (регистрация не требуется, сервис использует аккаунты google для управления пользователями), перейти по ссылке "MY CONFIGS", нажать на ссылку "new". В появившемся поле следует ввести имя новой конфигурации, описание, указать адрес ядра в поле "Kernel/Image", адрес initrd-образа в поле "Initrd" и необходимые аргументы ядра в поле "Args".
После того как конфигурация будет создана в поле "Chainload URL" появится ее адрес, последним элементом которого будет ID конфигурации, который необходимо запомнить. При следующей загрузке с помощью netboot.me нажмите любую клавишу после появления строки "Press any key for options or wait n seconds". Выбери опцию "Boot a configuration directly" и введите ID своей конфигурации.

Свой собственный boot.kernel.org

В отличии от netboot.me, сервис boot.kernel.org не предоставляет возможности создавать собственные конфигурации, зато он полностью открыт (на самом деле netboot.me тоже открыт, но официальной инструкции по его запуску нет). А это значит, что всю используемую им платформу сетевой загрузки можно скачать и установить на свой сервер. Попробуем сделать это.
Для начала установим инструменты сборки, систему управления версиями git и ассемблер nasm:
$ sudo apt-get install build-essential git-core nasm
Затем получим исходные тексты системы BKO:
$ git clone git://git.etherboot.org/scm/people/pravin/BKO.git
$ cd BKO
$ git submodule init
$ git submodule update
Отредактируем конфигурационный файл config так, чтобы опция BASE_URL содержала URL, по которому будет доступен BKO (он будет вшит в gPXE), а опция ISO_LOCATION_LOCAL - URL ISO-образов дистрибутивов (сделаем его равным BASE_URL/ISO).
Теперь запускаем процесс сборки gPXE и всех остальных компонентов BKO:
$ make
$ cd install_help
$ ./configure_BKO.sh
Скачаем модифицированные образы initramfs поддерживаемых дистрибутивов и их ISO-образы:
$ ./download_initramfs_images_http.sh
$ ./download_ISO.sh
Это все. Осталось только перенести содержимое каталога BKO в корень веб-сервера (например, /var/www) и выставить на файлы правильные права доступа.

Проблема загрузки netboot.me и BKO

На некоторых машинах загрузочные диски netboot.me и boot.kernel.org могут отработать неправильно, в результате чего вы не увидите загрузочное меню и не сможете произвести выбор ОС. Причина этого в установке неподдерживаемого видеоадаптером режима. Исправить ситуацию пока нельзя, но можно можно воспользоваться режимом командной строки (комбинация Ctrl+B) для ручной загрузки нужной конфигурации.

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free