Возникла проблема установки ОС на комп без CD и флоппи драйвов. Как оказалось, достаточно настроить DHCP и TFTP серверы, разместить необходимые файлы на роутере (с флешкой или HDD), и можно загрузить по сети любой компьютер, поддерживающий PXE. На всякий случай напишу как это сделать, вдруг пригодится кому-нибудь. 1. На вкладке Services -> DNSMasq включаем:
Code: |
DNSMasq Enable Local DNS Enable |
В окне Additional DNSMasq Options вписываем строчку:
Code: |
dhcp-boot=pxelinux.0 |
Нажимаем кнопки Save, Apply Settings внизу. Можно проверить, что эта строчка попала в файл конфигурации:
Code: |
cat /tmp/dnsmasq.conf |
и перезапустить dnsmasq:
Code: |
killall dnsmasq dnsmasq --conf-file=/tmp/dnsmasq.conf |
2. Ставим xinetd, если еще не установлен:
Code: |
ipkg-opt install xinetd. |
3. Ставим tftp сервер:
Code: |
ipkg-opt install atftp |
4. В файле /opt/etc/xinetd.d/atftp меняем пользователя на nobody. Его (nobody) нужно создать, если его еще нет. Как это сделать см. Вики по Optware . Файл конфигурации atftp после этого выглядит так:
Code: |
# # atftp # service tftp { flags = REUSE socket_type = dgram protocol = udp instances = 30 wait = yes user = nobody server = /opt/sbin/atftpd server_args = /opt/tftpboot log_on_success = HOST PID log_on_failure = HOST disable = no } |
5. Чтобы xinetd стартовал при перезагрузке роутера, в стартовом скрипте должны присутствовать строчки наподобие следующих (см. снова Вики по Optware ):
Code: |
if [ -d /opt/etc/init.d ]; then for f in /opt/etc/init.d/S* ; do [ -x $f ] && $f start done fi |
6. Cоздаем директорию tftpboot для загрузки и поддиректорию pxelinux.cfg в ней:
Code: |
mkdir -p /opt/tftpboot/pxelinux.cfg |
7. Запускаем xinitd:
Code: |
/opt/etc/init.d/S10xinitd |
Проверить, что tftp сервер прослушивает свой порт, можно командой:
В выводе должна быть строка, содержащая udp порт 69:
Code: |
udp 0 0 0.0.0.0:69 0.0.0.0:* |
8. Помещаем в директорию /opt/tftpboot/ файлы pxelinux.0 и memdisk (можно взять, например из пакета syslinux-xxxx-i386.rpm, найти в инете или загрузить по ссылке в конце). Дальнейшие действия подгтавливают содержимое директории /opt/tftpboot и зависят от того, что именно требуется загружать. Как пример, рассмотрим загрузку Damn Small Linux и FreeDOS. 9. В директории /opt/tftpboot/pxelinux.cfg создаем текстовый файл с именем default:
Code: |
DISPLAY boot.txt DEFAULT dsl LABEL dsl kernel linux24 append ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix frominitrd nopcmcia noagp noswap base LABEL fdos kernel memdisk append initrd=freedos.img floppy TIMEOUT 0 PROMPT 1 |
Для каждой метки LABEL (название метки произвольное) указываются две строчки kernel и append. (Опции append для DSL не умещаются здесь в одну строчку, но строка должна быть одна.) 10. В директорию /opt/tftpboot/ помещаем файл linux24 из iso-дистрибутива Damn Small Linux и файл minirt24.gz, который изготавливается по рецепту. Многочисленные опции загрузки DSL также взяты оттуда. Файл freedos.img заимствовован из live-cd дистрибутива systemrescuecd, где можно найти много других образов дискет. 11. Составляем текстовый файл boot.txt, который будет выведен на экран в процессе загрузки:
Code: |
* OS LOAD MENU * - To load Damn Small Linux, press ENTER - To load FreeDOS, type 'fdos' then ENTER |
12. После того, как в директорию /opt/tftpboot/ помещены все файлы, дадим команды:
Code: |
cd /opt/tftpboot chown -R nobody: . |
Теперь на компьютере, имеющем проводное подключение к роутеру, можно выбрать NETBOOT в BIOS setup. При перезапуске DHCP сервер даст IP адрес и переадресует к TFTP серверу, откуда будет выполнена загрузка. (Так как загружаемая ОС размещается в памяти клиента, ее должно быть достаточно, но обычно это не проблема.) Содержимое директории /opt/tftpboot можно взять отсюда в готовом виде (~50M).
источник: www.dd-wrt.com
ссылка на материал: http://thin.kiev.ua/linux-/623-pxe-dd-wrt.html
|