You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Сетевая загрузка Учебник<br />
без винчестера<br />
1 Код PXE в сетевой карте или в BIOS компьютера рассылает по сети<br />
расширенный DHCP-запрос.<br />
2 Должным образом сконфигурированный сервер возвращает информацию<br />
о настройках DHCP, а также адрес сервера загрузки, код сетевого<br />
загрузчика и загрузочное меню, подобное обычному меню загрузки<br />
Grub или Lilo.<br />
3 Когда пользователь выбирает пункт меню (или истекает время ожидания),<br />
загрузчик PXE загружает ядро с указанного сервера загрузки,<br />
определяя расположение корневого раздела и другие параметры.<br />
4 Ядро монтирует корневой раздел с помощью NFS и запускает процесс<br />
/sbin/init, который загружает все остальное.<br />
Во всем этом участвуют три сервера: сервер DHCP, отвечающий<br />
на начальный запрос, возвращая информацию о настройках, сервер<br />
загрузки, содержащий ядро, и сервер NFS, содержащий корневую файловую<br />
систему, которая будет монтироваться при загрузке компьютера<br />
клиента. Они могут располагаться как на одном компьютере, так и на<br />
разных – выбор за вами – хотя проще располагать их вместе, особенно<br />
сервер DHCP и серверы загрузки.<br />
Предупреждение о перегрузке аббревиатурами: здесь вы встретите<br />
множество ТБС и РТБС. Мы уже использовали PXE, BIOS, DHCP и NFS,<br />
а будут и новые. Запомните их, так как чуть позже вас ждут тесты.<br />
Установка системы<br />
Во-первых, нам потребуется установленная система на сервере, с<br />
которого мы будем загружаться. Использовать ту систему, которая на<br />
нем уже стоит, нельзя: даже если аппаратная часть компьютеров полностью<br />
идентична, некоторые детали (особенно настройки системы в<br />
/etc) могут различаться. Для каждого клиента нужно установить ОС в<br />
отдельный каталог; обычно это /diskless/IPaddress, что позволяет вам<br />
хранить все установленные ОС клиентов в одном месте и без конфликтов,<br />
потому что два компьютера не могут иметь одинаковые IP-адреса.<br />
Простейший способ выполнить начальную установку системы – это<br />
подключить к будущему бездисковому компьютеру винчестер и привод<br />
CD/DVD и установить систему обычным образом. Если вы будете<br />
настраивать загрузку по сети в существующей системе, то этот этап<br />
уже пройден. Потом содержимое диска можно скопировать в соответствующий<br />
каталог на сервере – либо физически подключив диск, либо<br />
скопировав файлы через сеть. Поскольку вам когда-нибудь придется<br />
открывать сетевой доступ к каталогу сервера, сделаем это сейчас и<br />
скопируем файлы. В этом примере адрес сервера 192.168.2.10, а адрес<br />
клиента 192.168.2.50. Все команды необходимо выполнять с привилегиями<br />
администратора.<br />
На сервере добавьте строки<br />
/diskless/192.168.2.50 192.168.2.0/255.255.255.0(rw,sync,no_root_<br />
squash,no_all_squash,no_subtree_check,rw)<br />
в файл /etc/exports, запустите<br />
mkdir -p /diskless/192.168.2.50<br />
exportfs -a<br />
exportfs<br />
и убедитесь, что в выводе последней команды есть новый каталог. На<br />
клиенте запустите<br />
mkdir -p /mnt/remoteroot<br />
mount -t nfs /mnt/remoteroot 192.168.2.10:/diskless/192.168.2.50<br />
Хороший способ наблюдать за загрузкой в реальном времени - просматривать содержимое<br />
файлов журналов с помощью tail -f.<br />
rsync -ax / /mnt/remoteroot<br />
rsync -ax /home/ /mnt/remoteroot/home/<br />
rsync -ax /boot/ /mnt/remoteroot/boot/<br />
Две последних строки в этом примере нужны только в том случае,<br />
когда домашний каталог (home) и каталог загрузки (boot) находятся в<br />
различных разделах. Проще установить все в один раздел.<br />
А что делать, если жесткий диск к клиенту подключить нельзя?<br />
Тогда установите систему на сервер в раздел, который позже смон-<br />
«Диск не подключить к клиенту?<br />
Убедитесь, что настройки<br />
подходят к его аппаратной части.»<br />
тируете как /diskless. Проверьте, чтобы все настройки, задаваемые в<br />
процессе этой установки, были совместимы с аппаратной частью клиентской<br />
машины. Не устанавливайте загрузчик, и после перезагрузки<br />
сервер загрузится, как обычно. Теперь смонтируйте новый раздел как<br />
/diskless, создайте в нем каталог IPaddress и переместите остальное<br />
содержимое в этот каталог. Пользователям Gentoo сделать это проще,<br />
так как они могут установить систему вручную в каталог /diskless/<br />
IPaddress (просто используйте этот каталог при обычной установке<br />
вместо /mnt/gentoo).<br />
Удаленная установка системы отличается от обычной установки на<br />
локальный диск. Прежде всего, может потребоваться перекомпиляция<br />
ядра. На это есть две причины. Первая – ради возможности смонтировать<br />
корневой раздел по сети вы должны установить опцию ROOT_<br />
NFS=y. Вторая – в большинстве дистрибутивов для загрузки модулей,<br />
необходимых для работы оборудования, используется initrd (началь-<br />
Январь 2008 <strong>Linux</strong> <strong>Format</strong> 79