Как стать автором
Обновить

Бездисковые рабочие станции. Загрузка по сети полноценного linux

В итоге описанных манипуляций получим debian-6.0.3-amd64 в качестве серверной и ubuntu-11.10-i386 в качестве клиентской ОС.

Настройка сервера


Ставим Debian cdimage.debian.org/debian-cd/6.0.3/amd64/bt-cd
Для того чтобы система раздавала интернет пишем правило для iptables
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

и сохраняем их
iptables-save > /etc/iptables.up.rules

включаем форвардинг
echo "1" > /proc/sys/net/ipv4/ip_forward

редактируем
apt-get install mc
mcedit /etc/sysctl.conf

добавляем в него строчку:
net.ipv4.ip_forward = 1

Установка pureftpd в качестве DHCP сервера


apt-get install dnsmasq

настравиваем для загрузки по сети
mcedit /etc/apt-get install dnsmasq
раскомментируем строку
dhcp-boot=pxelinux.0

и задаём диапазон раздаваемых ip-адресов
dhcp-range=192.168.100.2,192.168.100.253,12h

Установка NFS


apt-get install nfs-kernel-server

если при запуске будет выдавать ошибку Permission denied — перезагрузить сервер
создаём каталог для клиентской ос
mkdir /kubuntu32
cd /kubuntu32


устанавливаем debootstrap
wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.38_all.deb
apt-get install binutils
ar -x debootstrap_1.0.38_all.deb
cd /
zcat /kubuntu32/data.tar.gz | tar xv
скачиваем клиентскую ОС
debootstrap --arch i386 oneiric /kubuntu32 http://mirrors.uaip.org/ubuntu/


настраиваем NFS
mcedit /etc/exports

дописываем путь к клиентской файловой системе и права клиента
/kubuntu32 192.168.100.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)

синхронизируем настройки
exportfs -rv

перегружаем NFS-сервер
/etc/init.d/nfs-kernel-server restart

корректируем список зеркал
mcedit /kubuntu32/etc/apt/sources.list
куда вписываем список зеркал которые будут доступны
пользователям клиентской Ubuntu

Настройка клиентской Ubuntu для загрузки по сети


Изменяем кореневой каталог
chroot /kubuntu32

выставляем пароль для root
passwd
настройка ядра
apt-get update
apt-get install mc
mcedit /etc/initramfs-tools/initramfs.conf


ставим
MODULES=netboot
BOOT=nfs


загружаем ядро linux (в окне при установке выбираем yes — продолжить установку без загрузчика)
apt-get install linux-image

создаём образ initramfs
mkdir /bootimg
mkinitramfs -o /bootimg/initrd.img 3.0.0-13-generic
cp /boot/vmlinuz-3.0.0-13-generic /bootimg/vmlinuz


редактируем сетевые интерфейсы
mcedit /etc/network/interfaces

добавляем
auto eth0
iface eth0 inet manual


редактируем разбивку диска
mcedit /etc/fstab
# /etc/fstab: static file system information.
#
# proc /proc proc defaults 0 0
/dev/nfs / nfs defaults 1 1


выходим из клиентской файловой системы
exit


Установка TFTP сервера



apt-get install tftpd-hpa

в появившемся диалоговом окне пишем /tftpboot
настраиваем TFTP сервер
mcedit /etc/default/tftpd-hpa

указываем кореть сервера
TFTP_DIRECTORY="/tftpboot"

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

cd /tftpboot
wget http://mirrors.uaip.org/ubuntu/dists/oneiric/main/installer-i386/current/images/netboot/pxelinux.0
mkdir pxelinux.cfg
mcedit pxelinux.cfg/default


указываем пути к образам ядра и к корню подгружаемой файловой системы
DEFAULT linux
LABEL linux
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img nfsroot=192.168.100.1:/kubuntu32 ip=dhcp rw
PROMPT 0
TIMEOUT 0

скачиваем образы
cp /kubuntu32/bootimg/vmlinuz /tftpboot/vmlinuz
chmod 644 /tftpboot/vmlinuz
cp /kubuntu32/bootimg/initrd.img /tftpboot/initrd.img
chmod -R 777 /tftpboot


Настройка клиентов


в настройках BIOS выставляем загрузку по сети, мне нужная опция попадалась в таких местах:
Boot->Boot Settings Configuration->Boot From Onboard NAN=Enabled

Запускаем клиентский компьютер, заходим под root и указанным выше паролем
создаём тестового пользователя
adduser test

устанавливаем графическую среду KDE
apt-get install kubuntu-desktop

по желанию можно еще и GNOME поставить
apt-get install kubuntu-desktop

тогда пользователь при логине сможет выбрать в чём работать
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.