Делаем загружаемую по сети удаленную машину. Удобно для создания миникластеров или просто тонких клиентов
Требуемые роли и пакеты для этих ролей
Службы могут быть размещены как на одном сервере, так и на нескольких. Я обычно выделяю отдельную виртуальную машину с компилятором, чтобы не ставить среду разработки и зависимости на рабочих серверах.
Настройка DHCP
В файл настройки /etc/dhcp/dhcpd.conf прописываем
И создаем зону c записью хоста
Строго говоря опция fixed-address не обязательна. После настройки перезагружаем службу DHCP.
Настройка TFTP
Создаем директорию с файлами для загрузки. Это обычно или /tftpboot или /var/tftpboot. Туда складываем необходимый минимум файлов, обычно это базовая версия установки. В debian установка производится через утилиту debootstrap, которая собирает дистрибутив.
Для работы демона tftp через inet.d(самый простой вариант) в файле /etc/inetd.conf изменяем конфиг tftp на
и перезапускаем inetd.
Для загрузки через pxe проще всего использовать syslinux, с настройкой grub будет необходимо разбираться. Копируем загрузчик и делаем конфигурацию
И создаем конфиг для загрузки в папке /tftpboot/pxelinux.cfg/. Это может быть или файл конфигурации по умолчанию default или индивидуально в формате 01-MAC(как показано ниже).
На данном этапе уже возможно загрузка, но необходимо подготовить ядро и корневой раздел новой системы
Настройка NFS
Для начала настроим NFS сервер и сделаем директорию для экспорта
Теперь подготовим собственно саму корневую систему. Понадобится debootstrap
Последний параметр - локальное зеркало дебиана. Установка занимает некоторое время.
Входим в новую систему и правим некоторые конфиги.
Настройка ядра
Устанавливаем необходимый ToolChain и исходники ядра
Конфигурируем ядро со следующими параметрами
Компилируем ядро и ставим в соответствующую директорию загружаемой системы
Вроде всё, ничего не забыл, должно работаь.
(С)перто отсюда
http://www.jukie.net/bart/blog/nfsroot-on-debian
http://onesis.sourceforge.net/NFSroot-HOWTO.php#configpxelinux
http://wiki.bolay.net/doku.php?id=operating_systems:linux:debian:nfsboot
Службы могут быть размещены как на одном сервере, так и на нескольких. Я обычно выделяю отдельную виртуальную машину с компилятором, чтобы не ставить среду разработки и зависимости на рабочих серверах.
- DHCP
- dhcpd
- TFTP\pxe
- atftpd
- syslinux
- NFS
- Compiler
- build-essentials
- linux-source-2.6
В файл настройки /etc/dhcp/dhcpd.conf прописываем
allow bootp;
allow booting;
И создаем зону c записью хоста
subnet 10.0.0.0 netmask 255.255.255.192 {
range 10.0.0.15 10.0.0.62;
option domain-name "home.net";
option domain-name-servers 10.0.0.2;
option routers 10.0.0.1;
host pxe {
hardware ethernet 52:54:00:ED:89:19;
fixed-address 10.0.0.10;
option host-name "pxe0";
next-server 10.0.0.2; #адрес tftp сервера
filename "pxelinux.0"; #имя загрузчика
}
}
Строго говоря опция fixed-address не обязательна. После настройки перезагружаем службу DHCP.
Создаем директорию с файлами для загрузки. Это обычно или /tftpboot или /var/tftpboot. Туда складываем необходимый минимум файлов, обычно это базовая версия установки. В debian установка производится через утилиту debootstrap, которая собирает дистрибутив.
mkdir /tftpboot
Для работы демона tftp через inet.d(самый простой вариант) в файле /etc/inetd.conf изменяем конфиг tftp на
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
и перезапускаем inetd.
Для загрузки через pxe проще всего использовать syslinux, с настройкой grub будет необходимо разбираться. Копируем загрузчик и делаем конфигурацию
mkdir /tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
И создаем конфиг для загрузки в папке /tftpboot/pxelinux.cfg/. Это может быть или файл конфигурации по умолчанию default или индивидуально в формате 01-MAC(как показано ниже).
$ /tftpboot/pxelinux.cfg/01-01-23-45-67-89-ab
IPAPPEND 2 # I don't know :)
# SERIAL 0 115200 # show on serial console
PROMPT 1 # show boot: prompt
TIMEOUT 10 # boot default after 1 second
DEFAULT linux
label linux
kernel vmlinuz-diskless
append rw netdev=irq=11,name=eth0 root=/dev/nfs ip=::::pxe0:eth0:dhcp nfsroot=10.0.0.2:/var/nfsroot/pxe0 panic=30
На данном этапе уже возможно загрузка, но необходимо подготовить ядро и корневой раздел новой системы
Для начала настроим NFS сервер и сделаем директорию для экспорта
mkdir /var/nfsroot
mkdir /var/nfsroot/pxe
apt-get install nfs-server
echo "/var/nfsroot/pxe 10.0.0.0/24(rw,no_root_squash,no_subtree_check)" >> /etc/exports
exportfs -av
Теперь подготовим собственно саму корневую систему. Понадобится debootstrap
debootstrap --include=nfsbooted,dhcp3-client,procps,passwd,vim,less,configure-debian lenny /nfsroot/pxe http://10.0.0.2/debian
Последний параметр - локальное зеркало дебиана. Установка занимает некоторое время.
Входим в новую систему и правим некоторые конфиги.
- в /etc/hosts прописываем минимальный конфиг
127.0.0.1 localhost
- /etc/hostname прописываем имя системы
pxe
- /etc/resolv.conf прописываем параметны нашей сети.
- /etc/nfsbooted/mountfix.conf
NFSROOTDIR=/.nfsroot
- /etc/fstab
/ /.nfsroot none bind,ro 0 0
proc /proc proc defaults 0 0
# copied from /etc/nfsbooted/fstab
/dev/ram /tmp ramfs defaults,rw,auto,dev 0 0
/dev/ram1 /var/run ramfs defaults,rw,auto,dev 0 0
/dev/ram2 /var/state ramfs defaults,rw,auto,dev 0 0
/dev/ram3 /var/lock ramfs defaults,rw,auto,dev 0 0
/dev/ram4 /var/account ramfs defaults,rw,auto,dev 0 0
/dev/ram5 /var/log ramfs defaults,rw,auto,dev 0 0
/dev/ram6 /var/lib/gdm ramfs defaults,rw,auto,dev 0 0
/dev/ram7 /var/tmp ramfs defaults,rw,auto,dev 0 0
- заканчиваем инсталляцию финальной конфигурацией из chroot окружения
configure-debian --all
Устанавливаем необходимый ToolChain и исходники ядра
apt-get install build-essentials linux-source-2.6
Конфигурируем ядро со следующими параметрами
CONFIG_E1000=y | Ethernet (1000 Mbit) ---> Intel(R) PRO/1000 Gigabit Ethernet support |
CONFIG_IP_PNP=y | Networking options ---> IP: kernel level autoconfiguration |
CONFIG_IP_PNP_DHCP=y | Networking options ---> IP: DHCP support |
CONFIG_NFS_FS=y | Network File Systems ---> NFS file system support |
CONFIG_ROOT_NFS=y | Network File Systems ---> Root file system on NFS |
make -j2 bzImage modules
make INSTALL_MOD_PATH=/var/nfsroot/pxe modules_install
make INSTALL_PATH=/var/nfsroot/pxe/boot install
И последнне и самое важное. Ссылка на загружаемое ядроln -s /nfsroot/diskless/boot/vmlinuz* /tftpboot/vmlinuz
Вроде всё, ничего не забыл, должно работаь.
(С)перто отсюда
Комментариев нет:
Отправить комментарий