Как воспользоваться сетевой загрузкой (PXE) для Ubuntu LiveCD

Источник: rus-linux
Aviad Raviv; Перевод: Н.Ромоданов

Вы еще не используете Ubuntu как систему номер один в качестве инструмента для устаранения непроладок, диагностики и восстановительных процедур? Она, может быть, сможет заменить все, чем вы пользуетесь в настоящее время. Кроме того, как только в компьютер будет загружена живая система Ubuntu, можно будет выполнить такую же настройку ОС, как вы это делаете обычно. Как только вы перейдете к использованию Ubuntu с загрузкой через сеть, то даже если вы ранее пользовались версией на CD, вам больше не потребуется искать компакт-диски, которые забыты в устройствах CD.

Предварительные требования

  • Предполагается, что вы уже настроили сервер FOG так, как это описано в нашем руководстве "Что такое сетевая загрузка (PXE) и как ей можно пользоваться".
  • Все предварительные требования, указанные в руководстве по настройке системы FOG, относятся и к данному случаю.
  • Данная процедура использовалась для того, чтобы загружать по сети системы от Ubuntu 9.10 (Karmic Koala) и до 11.04 (Natty Narwhal). Ее можно использовать и для других дистрибутивов, похожих на Ubuntu (например, Linux Mint), но это не проверялось.
  • Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему ... Вы можете пользоваться любым другим редактором, который вам нравится.

Как это работает?

В целом процесс загрузки Ubuntu LiveCD, как мы все знаем, происходит следующим образом:

  • Вы вставляете диск в привод компакт-дисков, а BIOS знает, как использовать компакт-диск так, чтобы получить доступ к программе загрузки (isolinux), которая располагается на компакт-диске.
  • Программа isolinux отвечает за выбор меню. После того, как вы выберите загрузочную запись, например, "Start or install Ubuntu" (Запуск или установка Ubuntu), она вызывает файлы ядра + initrd (исходный диск RAM), копирует их в память и передает им параметры.
  • Теперь в оперативной памяти под управлением ядра + initrd начинается процесс загрузки, при этом будут использоваться переданные параметры, в которых определяется, например, следующее: должна ли показываться заставка, необходимо ли выдавать данные максимально информативно и т.п.
  • Когда скрипты inirtrd закончат загрузку драйверов и информацию об устройствах, они найдут файлы Ubuntu LiveCD, которые продолжат процесс загрузки. В нормальной ситуации поиск происходит на локальном физическом устройстве cdrom.

Для сетевой загрузки:

  • Вместо локального носителя, такого как компакт диск, клиент загружается, используя свою сетевую карту (PXE) и получает по протоколу TFTP программу PXElinux.
  • Так же, как программа Isolinux, программа PXElinux отвечает за выбор меню. После выбора загрузочной записи, он вызывает файл ядра + файл initrd системы Ubuntu, копирует их в памяти и передает им параметры.
  • Теперь в оперативной памяти под управлением ядра + initrd начинается процесс загрузки, при этом поиск дополнительной информации должен происходить не в загрузочных файлах на локальном физическом устройстве cdrom на клиентской машине, а на общем ресурсе нашего сервера FOG.

Это возможно потому, что создатели Ubuntu добавили работу с сетями, интегрировав в файл ядра + файл Initrd драйвера сетевых карт и протоколы.

За это можно сказать только спасибо команде Ubuntu.

Сделайте так, чтобы файлы Ubuntu были доступны на сервере

Первое, что нужно сделать, чтобы файлы Ubuntu были доступны на сервере. Вы можете просто скопировать их с компакт-диска или извлечь их из файла ISO, и это будет прекрасно работать. С учетом сказанного, мы сделаем автомонтирование файла ISO. Хотя это и не обязательно, но когда вы так поступаете, это позволит вам воспользоваться статьей "Как обновить Ubuntu ISO без повтороной загрузки" для обновления версии Ubuntu, загружаемой через сеть, не в выполняя всю процедуру с нуля, и заменить всего лишь один файл для того, чтобы выполнить все обновление.

Автору настоящего руководства предпочитает иметь еще пару последних версий системы до тех пор, пока не будет проверено, что самая новая версия системы абсолютно стабильная и беспроблемная. Именно поэтому мы делаем подкаталог и точку монтирования соответствующей версии, но вы можете этого не делать и пользоваться единственной точкой монтирования обновлений.

  1. Скопируйте файл ISO в каталог  /tftpboot/howtogeek/linux
  2. Создайте точку монтирования:sudo mkdir -p /tftpboot/howtogeek/linux/ubuntu/<version-of-ubuntu>
  3. Отредактируйте файл  fstab  для того, чтобы можно было монтировать файл ISO автоматически:sudo vim /etc/fstab
  4. Добавьте в файл fstab точку монтирования ISO:/tftpboot/howtogeek/linux/ubuntu-11.04-desktop-amd64.iso /tftpboot/howtogeek/linux/ubuntu/11.04 udf,iso9660 user,loop 0 0 Примечание: Несмотря на две изображаемые строки, эта запись должна представлять собой одну строку.
  5. С помощью следующей команды проверьте, что точка монтирования работает:sudo mount -a
  6. Если все выполнено так, как надо, то вы с помощью следующей команды сможете прочитать содержимое файла ISO:ls -lash /tftpboot/howtogeek/linux/ubuntu/11.04/

Создайте общий ресурс NFS

Хотя процедура загрузки начинается с использования PXE, основная нагрузка смещается на общий ресурс NFS, расположенный на сервере. Поскольку в настоящей статье мы используем наш сервер FOG, компоненты NFS и некоторые варианты конфигурации были за нас разработаны командой FOG, и все, что мы должны сделать, это добавить к ним наш общий ресурс Ubuntu.

  1. Отредактируйте файл exports для того, чтобы добавить новый общий ресурс:sudo vim /etc/exports
  2. Добавьте к нему указатель на нашу точку монтирования ISO:/tftpboot/howtogeek/linux/ubuntu/11.04/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure)
  3. Перезапустите сервис NFS для того, чтобы настройки вступили в силу:sudo /etc/init.d/nfs-kernel-server restart

Настройка меню PXE

Отредактируйте меню Linux stuff:

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=<YOUR-SERVER-IP>:/tftpboot/howtogeek/linux/ubuntu/11.04 initrd=howtogeek/linux/ubuntu/11.04/casper/initrd.lz quiet splash --

На первый взгляд все, что добавлено выше, может выглядеть непонятным, но все, что вам нужно сделать, это заменить *<YOUR-SERVER-IP> на адрес IP вашего сервера NFS/PXE.

Если быть более точным, то указанный выше текст означает следующее:

  • Создание новой записи PXE в подменю "Linux" под названием "Ubuntu 11.04".
  • Благодаря параметру " MENU DEFAULT" эта запись будет выбираться автоматически при входе в подменю "Linux".
  • Указание клиенту взять с помощью TFTP файл ядра + файл initrd из относительного пути в каталоге /tftproot из howtogeek/linux/ubuntu….
  • Указание скриптам initrd монтировать файловую систему root, находящуюся в общем ресурсе NFS, как абсолютный путь <YOUR-SERVER-IP>:/tftpboot/howtogeek…

Примечание: Я попытался (безуспешно) использовать для <YOUR-SERVER-IP> имя DNS вместо адреса IP; возможно, что на этой стадии процесса загрузки сервис DNS просто не поддерживается … Если вы сумели добиться успеха, то сообщите об этом.

Что можно делать

Теперь у вас должна быть возможность загрузить Ubuntu на клиентской машине с помощью PXE (обычно используется клавиша F12).

На данном этапе мы предлагаем вам потратить некоторое время для того, чтобы разобраться, что еще вы можете делать с этим выдающимся инструментальным средством:

  • 10 интеллектуальных способов использовать Linux для решения проблем с вашим компьютером с Windows
  • Переустановка загрузчика Ubuntu Grub после сноса Windows
  • Как отформатировать устройство USB в Ubuntu с помощью GParted - Как использовать GParted для изменения разделов вашей системы Windows 7 или системы Vista

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=36695