Установка Debian по сети

Столкнулся с проблемой, есть системник, но нет ни флешки под рукой, ни dvd-rom. А надо поставить Дебиан.

Почесав репу, решил попробовать поставить по сети, благо, ноут под рукой.

И так что нам нужно — образ netboot.tar.gz, юниксподобная система(назовем ее источником), в одной локальной сети с настраеваемым сервером ну и сам сервер с поддержкой загрузки по сети(пусть будет приемником).

Образ был взять отсюда: http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/

Источник я поднял и настроил на виртуальной машине VirtualBox на ноутбуке. Для полноченной работы мне потребовалось 2 сетевые карты, одна для связи виртуальной машины с интернетом, вторая — с локальной сетью, виртуальные сетевые карты соединил  с реальной сетевой сетевым мостом.

Приёмник ищет загрузчик в сети при помощи протоколов BOOTP и DHCP. Поэтому на источнике нужно настроить DHCP сервер. Для передачи образа потребуется tftp сервер.

И так, запускаем источник. Первый интерфейс служит для связи с внешним миром — его настройки индивидуальны. Настроим второй:

root@Rezerv-server:~# ip addr add 192.168.1.1/24 dev eth1
root@Rezerv-server:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:bd:a9:97 brd ff:ff:ff:ff:ff:ff
    inet 10.100.0.4/24 scope global eth0
    inet6 fe80::a00:27ff:febd:a997/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:94:a3:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global eth1
    inet6 fe80::a00:27ff:fe94:a361/64 scope link
       valid_lft forever preferred_lft forever

Теперь установим isc-dhcp-server. Правим его конфигурацию:

root@Rezerv-server:~# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name "local";
option domain-name-servers 192.168.1.1;

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

authoritative;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
 option routers 192.168.1.1;
 option domain-name-servers 192.168.1.1;
 option domain-name "local";
 next-server 192.168.1.1;
 filename "pxelinux.0";
 range 192.168.1.100 192.168.1.250;
}

Перезапускаем демона. На этом этапе все просто, проблем быть не должно.

Далее — tftp.

Настраиваем сервер по инструкции.

Скачиваем файл и распаковываем его в корневую папку tftp сервера:

root@Rezerv-server:~# cd /srv/tftp/
root@Rezerv-server:/srv/tftp# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/netboot.tar.gz
--2013-06-17 11:51:02--  http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/netboot.tar.gz
Распознаётся ftp.nl.debian.org (ftp.nl.debian.org)... 130.89.149.21, 2001:67c:2564:a120::21
Подключение к ftp.nl.debian.org (ftp.nl.debian.org)|130.89.149.21|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 13063407 (12M) [application/x-gzip]
Сохранение в каталог: ««netboot.tar.gz»».

100%[===================================================================================================================================================================================================>] 13 063 407  1,90M/s   за 7,3s

2013-06-17 11:51:09 (1,71 MB/s) - «netboot.tar.gz» saved [13063407/13063407]

root@Rezerv-server:/srv/tftp#
root@Rezerv-server:/srv/tftp#
root@Rezerv-server:/srv/tftp# tar xfvz netboot.tar.gz
./
./pxelinux.0
./version.info
./pxelinux.cfg
./debian-installer/
./debian-installer/i386/
./debian-installer/i386/initrd.gz
./debian-installer/i386/pxelinux.0
./debian-installer/i386/boot-screens/
./debian-installer/i386/boot-screens/spk.cfg
./debian-installer/i386/boot-screens/f3.txt
./debian-installer/i386/boot-screens/f5.txt
./debian-installer/i386/boot-screens/f10.txt
./debian-installer/i386/boot-screens/syslinux.cfg
./debian-installer/i386/boot-screens/xfce/
./debian-installer/i386/boot-screens/xfce/prmenu.cfg
./debian-installer/i386/boot-screens/xfce/prompt.cfg
./debian-installer/i386/boot-screens/xfce/menu.cfg
./debian-installer/i386/boot-screens/xfce/txt.cfg
./debian-installer/i386/boot-screens/xfce/txtdt.cfg
./debian-installer/i386/boot-screens/xfce/adtxt.cfg
./debian-installer/i386/boot-screens/xfce/adtxtdt.cfg
./debian-installer/i386/boot-screens/splash.png
./debian-installer/i386/boot-screens/dtmenu.cfg
./debian-installer/i386/boot-screens/kde/
./debian-installer/i386/boot-screens/kde/prmenu.cfg
./debian-installer/i386/boot-screens/kde/prompt.cfg
./debian-installer/i386/boot-screens/kde/menu.cfg
./debian-installer/i386/boot-screens/kde/txt.cfg
./debian-installer/i386/boot-screens/kde/txtdt.cfg
./debian-installer/i386/boot-screens/kde/adtxt.cfg
./debian-installer/i386/boot-screens/kde/adtxtdt.cfg
./debian-installer/i386/boot-screens/vesamenu.c32
./debian-installer/i386/boot-screens/f8.txt
./debian-installer/i386/boot-screens/rqtxt.cfg
./debian-installer/i386/boot-screens/prompt.cfg
./debian-installer/i386/boot-screens/f7.txt
./debian-installer/i386/boot-screens/stdmenu.cfg
./debian-installer/i386/boot-screens/menu.cfg
./debian-installer/i386/boot-screens/f2.txt
./debian-installer/i386/boot-screens/txt.cfg
./debian-installer/i386/boot-screens/f9.txt
./debian-installer/i386/boot-screens/adtxt.cfg
./debian-installer/i386/boot-screens/exithelp.cfg
./debian-installer/i386/boot-screens/f4.txt
./debian-installer/i386/boot-screens/f6.txt
./debian-installer/i386/boot-screens/f1.txt
./debian-installer/i386/boot-screens/lxde/
./debian-installer/i386/boot-screens/lxde/prmenu.cfg
./debian-installer/i386/boot-screens/lxde/prompt.cfg
./debian-installer/i386/boot-screens/lxde/menu.cfg
./debian-installer/i386/boot-screens/lxde/txt.cfg
./debian-installer/i386/boot-screens/lxde/txtdt.cfg
./debian-installer/i386/boot-screens/lxde/adtxt.cfg
./debian-installer/i386/boot-screens/lxde/adtxtdt.cfg
./debian-installer/i386/linux
./debian-installer/i386/pxelinux.cfg/
./debian-installer/i386/pxelinux.cfg/default
root@Rezerv-server:/srv/tftp# chown "nobody" -R *
root@Rezerv-server:/srv/tftp#
root@Rezerv-server:/srv/tftp# ls -l
итого 12760
drwxrwxr-x 3 nobody root     1024 Июн 14 03:36 debian-installer
-rw-r--r-- 1 nobody root 13063407 Июн 14 03:36 netboot.tar.gz
lrwxrwxrwx 1 nobody root       32 Июн 14 03:36 pxelinux.0 -> debian-installer/i386/pxelinux.0
lrwxrwxrwx 1 nobody root       34 Июн 14 03:36 pxelinux.cfg -> debian-installer/i386/pxelinux.cfg
-rw-rw-r-- 1 nobody root       54 Июн 14 03:36 version.info

И, в принципе, все. Далее включаем приемник, лезем в биос, включаем загрузку по сети, ребутаемся и ждем появления установочного окна дебиан.