Загрузка по сети

Загрузка компьютера по сети — это процесс загрузки компьютера из сети без использования жесткого диска. Данный метод загрузки может быть использован в маршрутизаторах или в бездисковых рабочих станциях, а также в публичных компьютерах, которые работают, например, в школах или библиотеках. Применяют данную технологию для централизованного управления дисковым пространством или для уменьшения денежных средств вложенных в приобретение или обновление компьютерного оборудования и его дальнейшей поддержки.
На примере загрузки по сети GNU/Linux.

Подготовка

Устаналиваем пакеты:

sudo apt-get install dnsmasq syslinux nfs-kernel-server nfs-common debootstrap tftpd-hpa xinetd

DHCP

Настраиваем dhcp в /etc/dnsmasq.conf:

 dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h
 dhcp-boot=pxelinux.0,headnode,192.168.1.1
#dhcp-host= 00:00:00:00:00:00, 192.168.1.1 (Выдать IP по MAC адрессу)

Где, 00:00:00:00:00:00 - Ваш MAC-адрес.

или настроить dhcp:

ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "xnetworks.ru";
option domain-name-servers 192.168.0.1;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

allow booting;
allow bootp;
next-server 192.168.0.1;
option tftp-server-name "192.168.0.1";

subnet 192.168.0.0 netmask 255.255.255.0 {

    option domain-name-servers 192.168.0.1;
    option routers 192.168.0.1;
    range 192.168.0.50 192.168.0.150;
    deny unknown-clients;

#    if substring ( option vendor-class-identifier, 0, 9) = "PXEClient" {
#        filename "pxelinux.0" ;
#        next-server 192.168.0.1;
#    }

host host50 {
    filename "pxelinux.0";
    hardware ethernet 00:04:79:67:82:1A;
    fixed-address 192.168.0.50;
#    option host-name "host50";
    next-server 192.168.0.1;
    }
}

tftp

Настройка tftp в /etc/xinetd/tftp-hpa:

service tftp
{
        disable         = no
        id              = chargen-dgram
        socket_type     = dgram
        protocol        = udp
        user            = root
        wait            = yes
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot/
}

PXE

Выполним действия:

sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo mkdir /var/lib/tftpboot/pxelinux.cfg

Копируем ядро:

sudo cp /boot/vmlinuz-`uname -r` /var/lib/tftpboot/

Копируем /etc/initramfs-tools/ :

sudo cp -r /etc/initramfs-tools /etc/initramfs-pxe

Редактируем /etc/initramfs-pxe/initramfs.conf

Перепишем BOOT=local на BOOT=nfs.

Создаём ramdisk:

sudo mkinitramfs -d /etc/initramfs-pxe -o /var/lib/tftpboot/initrd.img-`uname -r`

Создаём файл /var/lib/tftpboot/pxelinux.cfg/default и пишем в нём:

LABEL linux
KERNEL vmlinuz-2.6.xx
APPEND root=/dev/nfs initrd=initrd.img-2.6.xx nfsroot=192.168.1.1:/home /nfsroot ip=dhcp rw

NFS

Создаём каталог:

sudo mkdir /home/nfsroot

Редактируем /etc/exports

/home/nfsroot 192.168.1.0/255.255.255.0(rw,no_subtree_check,async,no_root_squash)

Теперь мы просто должны загрузить базовую установку Debian в /home/nfsroot. К счастью для нас, есть отличный инструмент debootstrap.

debootstrap --arch i686 lenny /home/nfsroot/

Редактируем /home/nfsroot/etc/fstab:

proc            /proc         proc   defaults       0      0
/dev/nfs        /             nfs    defaults       0      0
none            /tmp            tmpfs   defaults 0 0
none            /var/run        tmpfs   defaults 0 0
none            /var/lock       tmpfs   defaults 0 0
none            /var/tmp        tmpfs   defaults 0 0
none            /media          tmpfs   defaults 0 0
none		/var/log	tmpfs	defaults 0 0

В /home/nfsroot/etc/network/interfaces должны быть такие строки:

auto lo
iface lo inet loopback
iface eth0 inet dhcp

Ссылки

http://blog.signalnine.net/?p=12
http://rus-linux.net/denis.php?name=denis/art/clusters.html#using

Теги: , , ,

Дата: 3 ноября 2010

Автор: ignusius

Комментарии: 0

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>