Перейти к содержимому

Slax ipxe что это

  • автор:

Почему ОС всё ещё не загружаются по сети?

Представьте, в ОС или каком-либо компоненте нашли уязвимость, взломали, и одно дело, утекшие данные, а ведь до кучи могут сделать хост частью своего ботнета, например. Вы хватаетесь за голову, что ж теперь, аудит проводить, куда лазили, что делали, или просто переустановить всё, опять же заново настраивать, — сплошной головняк. Восстановление из последнего бэкапа? Как давно он был сделан? Ведь наверняка с тех пор в конфигурацию хоста внесены изменения. Я веду к тому, что всё ещё популярно хранить актуальное состояние ОС в единственном экземпляре в «горячем» виде, так сказать.

А что если, экземпляр вашей ОС хранился бы в «холодном» виде в образе, на сервере, откуда бы загружался на ваш хост при каждом его включении, и подтягивал за собой всю конфигурацию, необходимую для работы. Хост взломали, а вы просто исправили баг в образе который хранится «на холодную» и жмякнули кнопочку reset для перезагрузки, и снова в строю. Это же просто офигенно.

Как раз сейчас я этим и занимаюсь и решил поделиться мыслями. Хочу перевести все свои сервисы на удалённую «бездисковую» загрузку по сети. Чтоб даже домашний ПК-роутер, раздающий интернеты, загружался по сети и подтягивал образ с соответствующей конфигурацией. Для этого нужен только DHCP, tftp-hpa и. grub2, либо syslinux.

Когда компьютер включается, UEFI / BIOS при необнаружении накопителей пытается загрузиться через сеть, это так по-умолчанию, можно тупо принести новый комп из магазина домой, закрытыми глазами его собрать, включить и он загрузится, и станет нодой, частью вашей сети, да. кра-со-та.

UEFI спросит DHCP-сервер, DHCP выдаст IP и скажет, что по такому-то адресу находится загрузчик. UEFI попытается загрузить его по TFTP-протоколу, и в случае успеха, уже сам grub2 покажет красивую менюшку с выбором ОС, — добро пожаловать бездисковую загрузку по сети!

С установкой и запуском tftp-hpa проблем не будет, /usr/sbin/in.tftpd —listen —secure —verbose /var/ftp/tftpboot

Предлагаю всё хранить в /var/ftp/tftpboot, туда же установим загрузчик GRUB2:

# grub-mknetdir --net-directory /var/ftp/tftpboot Netboot directory for i386-pc created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/i386-pc/core.0 Netboot directory for i386-efi created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/i386-efi/core.efi Netboot directory for x86_64-efi created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/x86_64-efi/core.efi

Далее DHCP, достаточно настроить чтобы он раздавал IP и говорил по какому адресу находится файл загрузчика, который UEFI будет загружать через TFTP.

# cat /etc/dhcpd.conf shared-network arpanet < interface br0; allow booting; allow bootp; next-server 10.0.0.1; filename "boot/grub/i386-pc/core.0"; subnet 10.0.0.0 netmask 255.0.0.0 < option domain-name-servers 8.8.8.8, 8.8.4.4; option subnet-mask 255.0.0.0; option routers 10.0.0.1; range 10.0.0.2 10.0.0.254; >>

Загрузка будет происходить с tftp://$/$ . У меня интерфейс br0 — бридж, в который вхожи все виртуальные машины. Именно br0 присвоен 10.0.0.1. У вас это может быть просто сетевая карта enp1s4po3te5ri7ng9.

Алсо, если у вас реально UEFI, можно добавить проверку, какой загрузчик отдавать системе:

option client-system-architecture-type code 93 = unsigned integer 16; if option client-system-architecture-type = 00:09 < filename "boot/grub/x86_64-efi/core.efi"; >else < filename "boot/grub/i386-pc/core.0"; >

У меня кстати на QEMU с OVMF загрузчик EFI не заработал. Не знаю почему, то ли OVMF кривой, то ли надо тестировать на реальном железе (пока не пробовал).

Ну и вишенкой на торте надо создать обычный grub.cfg vi /var/ftp/tftpboot/boot/grub/grub.cfg :

set default=0 set timeout=60 menuentry "Boot SLAX" < linux /boot/os/slax/vmlinuz load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 from=http://10.0.0.1/slax/slax-64bit-9.9.1.iso initrd /boot/os/slax/initrfs.img >menuentry "Reboot" < reboot >menuentry "Shutdown" < halt >menuentry "Continue"

На этом вся настройка. Для теста я использовал qemu-system-x86_64 -nic tap , который скриптами /etc/qemu- входил в бридж br0. BIOS спрашивал DHCP, DHCP выдавал IP и сообщал адрес загрузчика, далее BIOS загружал его с TFTP сервера и удачно грузился grub2, а дальше — дело тривиальное. Напихать кучу образов ОС.

Для примера можно использовать SLAX, для этого скачаем ISO-образ дистрибутива, стырим оттуда файлики /slax/boot/ и положим к себе в /var/ftp/tftpboot/boos/os/slax/.

Расскажу, как это работает, почему загружается SLAX и почему не загружается Debian / Ubuntu / Anything Else по сети.

Мы включили ПК, по TFTP загрузился grub2 и всё управление сейчас находится у него. Далее, выбирая пунктик меню загрузки SLAX, сам grub2 загружает с TFTP-сервера файлы /vmlinuz и /initrfs.img и передаёт управление уже ядру /vmlinuz. А ядро-то про TFTP сервер ничего не знает! И initrd SLAX’а, и любого другого дистрибутива ничего про TFTP не знает. До того момента, как мы грузимся по сети, мы работаем с TFTP-сервером, grub2 может оттуда загружать все свои модули, шрифты, аниме-картинку-с-понями для фона, но после того, как он передаёт управление ядру — забудьте про TFTP, всё.

В данном примере параметром к ядру указан from=http:// iso-образ SLAX, — да, iso-образ будет скачан с этого ресурса и SLAX будет успешно загружен по сети, нооо, важная деталь — это не параметр ядра, from= сохранится в /proc/cmdline, но ядро не знает что с этим делать, с from= будет работать сам /init скрипт находящийся в initrfs.img. Это чисто фича SLAX, и такой фичи нет у других дистрибутивов.

Как же тогда загрузить Ubuntu Live по сети? Да, grub2 может загрузить ISO образ размером 2гб, но оно вам надо? Ядро не знает про http и ftp (поправьте, если ошибаюсь), но ядро знает про NFS (Network File System) и умеет работать с ней. Таким образом, чтобы загрузить Ubuntu Live, вам надо точно так же извлечь vmlinuz и initrd из iso-образа Ubuntu, а параметром к ядру дописать root=/dev/nfs, таким образом ядро Ubuntu (и любого другого дистрибутива, т.к. это уже фича самого ядра Linux), будет знать, что после того как какой-нибудь скрипт в initrd запросит внешний файл, например, Live-образ системы, — ядро знает, что брать его надо с nfs://10.0.0.1/ubuntu-live — так-то!

Если будут вопросы, постараюсь ответить (хотя скоро спать).

За основу дистрибутива для загрузки по сети я беру любимый CRUX. Вся идея в том, чтобы загружался простенький busybox, подключался к сети (udhcpc), а затем через wget ftp://10.0.0.1/boot/pxelinux.cfg/54:52:00:12:34:56/init.sh && sh init.sh выполнял дальнейшие инструкции для загрузки, которые могут быть вообще любые. Подтягивал любой образ ФС по сети и switch_root в него! Так-то.

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

Развиваем тему загрузки по сети
На этот раз будем переделывать Grub4Dos на загрузку через syslinux с использованием ipxe
Разбирать начальную установку сервера не станем, так как уже рассматривался в первой статье по сетевой загрузке
Установка тонких клиентов на примере загрузки Thinstation и Grub4Dos
Единственное что нам понадобится, это WEB сервер с модулем просмотра файлов. Любой. Я ставлю lighttpd

apt install lighttpd -y lighty-enable-mod dir-listing service lighttpd restart
Теперь пойдем по порядку
  1. Качаем и собираем всё необходимое для syslinux
  2. Создаем структуру каталогов
  3. Загружаем iso файлы
  4. Загружаем ipxe
  5. Пишем и правим конфигурацию до необходимого результата

Возможно порядок будет меняться, это нормаль. Я достаточно много времени потратил, чтобы осознать процесс происходящего.

Syslinux

Создаем в корне tftp сервера папку syslinux
Здесь будет вся наша структура каталогов и прочее
Если кроме данной сборки ничего больше не используется, то можно не дробить на подкаталоги и делать без подпапки syslinux
В моем случае используются и другие загрузочные pxe файлы
В папке syslinux создаем подпапки:
pxelinux.cfg — папка конфигурации загрузчика
utils — папка утилит, можно и без нее кидать всё в корень
В папке pxelinux.cfg создаем файл пустой файл default
Это файл основной конфигурации меню syslinux

cd ~/tftpboot/syslinux/pxelinux.cfg/ touch default

Качаем с сайта архив https://cdn.kernel.org/pub/linux/utils/boot/syslinux/
На момент установки syslinux-6.03.zip
Не похоже чтобы он развивался дальше так как версия от 06-Oct-2014 16:33
Распаковываем в любую временную папку и начинаем искать файлы
Файлы необходимы для базовой работы загрузки по сети. Они раскиданы по папкам. Самое простое, воспользоваться поиском.

find ./ -iname ldlinux.c32 ./bios/com32/elflink/ldlinux/ldlinux.c32 find ./ -iname libutil.c32 ./efi32/com32/libutil/libutil.c32 ./efi64/com32/libutil/libutil.c32 ./bios/com32/libutil/libutil.c32

Как видим файл с одинаковым именем встречается в нескольких подкаталогах.
Нас интересует простой метод, без efi. Берем по пути ./bios/com32/
Если что-то не докопировали, то при загрузке сервер сообщит об этом
Список файлов и структура которую мы должны получить в итоге:

. ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── memdisk ├── pxelinux.0 ├── pxelinux.cfg │ ├── default │ └── vesamenu.c32 └── utils ├── chain.c32 ├── poweroff.c32 └── reboot.c32

В настройках DHCP сервера, для клиентов указываем файл загрузки
/syslinux/pxelinux.0

ISO IPXE

В корне папки syslinux создаем подпапки
iso — папка с загрузочными образами
ipxe — папка с файлами конфигурации и модулем загрузки ipxe
Закидываем образы для загрузки по сети. Это Live утилиты. С загрузкой больших Live линукс дистрибутивов есть сложности. Для начала рассматриваем что работает без нареканий
Подопытный ноутбук имеет частоту CPU 1533 и на борту 512 памяти
По большей части загрузка по сети делается для старого оборудования, которое не умеет грузиться с USB
В папку ipxe качаем готовый обра IPXE

cd ~/tftpboot/syslinux/ipxe/ wget http://boot.ipxe.org/ipxe.lkrn
HTTP

Для загрузки образом есть несколько вариантов. Можно использовать nfs, можно использовать http.
Так как в начале я ставил lighttpd, то понятно что я использую http
Необходимо настроить путь к папке с образами, а именно путь до папки iso

nano /etc/lighttpd/lighttpd.conf . server.document-root = "/home/virtual/tftpboot/syslinux/iso" . service lighttpd restart

Не забвайте про права на папки, так как lighttpd работает от имени пользователя www-data, то необходимо предоставить права на iso. В процессе настройки это может понадобиться не один раз

chmod -Rf 755 /home/virtual/tftpboot/syslinux/

ipxe http

Конфигурация

Основная логика работы такая:
В пункте меню syslinux выбирается пункт, и в зависимости он грузится или сразу в память, или посредством ipxe по сети
Мелкие образы я гружу сразу в память через модуль memdisk. Так как её мало то большие образы уже не загрузить и выдается ошибка, поэтому вызывается файл конфигурации *.ipxe для http через модуль ipxe.lkrn
В папке ipxe создаем файл с параметрами загрузки образа. Под каждый образ, свой файл

nano ipxe/Acronis_2017.ipxe
#!ipxe dhcp set keep-san 1 sanboot --no-describe -k http://192.168.118.49/Acronis_2017.iso

Теперь правим основной файл конфигурации syslinux
Для фонового изображения необходимо положить его в папку /syslinux/pxelinux.cfg/back.jpg
Размер изображения должен совпадать с разрешением экрана в конфигурацци
В моем случае это 800×600

nano syslinux/pxelinux.cfg/default
UI pxelinux.cfg/vesamenu.c32 ALLOWOPTIONS 0 PROMPT 0 MENU CLEAR MENU RESOLUTION 800 600 MENU TITLE >> MENU BACKGROUND pxelinux.cfg/back.jpg MENU WIDTH 50 MENU VSHIFT 3 MENU MARGIN 3 MENU ROWS 12 # THEME #====================================================== MENU COLOR border 30;44 #40ffffff #a0000000 std MENU COLOR title 1;36;44 #9033ccff #a0000000 std MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all MENU COLOR unsel 37;44 #50ffffff #a0000000 std MENU COLOR help 37;40 #c0ffffff #a0000000 std MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std MENU COLOR msg07 37;40 #90ffffff #a0000000 std MENU COLOR tabmsg 31;40 #30ffffff #00000000 std #====================================================== LABEL - MENU LABEL Free DOS KERNEL memdisk append iso raw initrd=iso/fd11src_live.iso LABEL - MENU LABEL Mem Test KERNEL memdisk append iso raw initrd=iso/memtest.iso LABEL - MENU LABEL HDD Test Victoria KERNEL memdisk append iso raw initrd=iso/victoria.iso LABEL - MENU LABEL Acronis 2013 KERNEL ipxe/ipxe.lkrn INITRD ipxe/Acronis_2013.ipxe LABEL - MENU LABEL Acronis 2017 KERNEL ipxe/ipxe.lkrn INITRD ipxe/Acronis_2017.ipxe LABEL - MENU LABEL Acronis B&R 11.5 KERNEL ipxe/ipxe.lkrn INITRD ipxe/Acronis_11.5.ipxe LABEL - MENU LABEL ERD Commander x32 KERNEL ipxe/ipxe.lkrn INITRD ipxe/erd65_32.ipxe LABEL - MENU LABEL ERD Commander x64 KERNEL ipxe/ipxe.lkrn INITRD ipxe/erd65_64.ipxe LABEL - MENU LABEL HDD Local Boot COM32 utils/chain.c32 append hd0 0 LABEL - MENU LABEL Reboot COM32 utils/reboot.c32 LABEL - MENU LABEL Shutdown COM32 utils/poweroff.c32

В итоге структура каталогов имеет вид:

. ├── ipxe │ ├── Acronis_11.5.ipxe │ ├── Acronis_2013.ipxe │ ├── Acronis_2017.ipxe │ ├── erd65_32.ipxe │ ├── erd65_64.ipxe │ └── ipxe.lkrn ├── iso │ ├── Acronis_11.5.iso │ ├── Acronis_2013.iso │ ├── Acronis_2017.iso │ ├── erd65_32.iso │ ├── erd65_64.iso │ ├── fd11src_live.iso │ ├── memtest.iso │ └── victoria.iso ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── memdisk ├── pxelinux.0 ├── pxelinux.cfg │ ├── back.jpg │ ├── default │ └── vesamenu.c32 └── utils ├── chain.c32 ├── poweroff.c32 └── reboot.c32
SLAX

При попытке загрузить обычный Linux Live дистрибутив, получаем ошибку initramfs
В принципе есть варианты решений http://ipxe.org/appnote/ubuntu_live
Мне удалось загрузить Slax
Сами параметры загрузки можно увидеть распаковав образ Slax iPXE с сайта https://www.slax.org/
Мы будем загружать простой образ Slax 32bit
В папке iso создадим папку slax, в ней подпапку ipxe
В папку ipxe необходимо положить загрузчик slax. Его можно взять из образа или скачать http://ftp.linux.cz/pub/linux/slax/Slax-9.x/ipxe/9.7.0/32bit/
Сам образ кладем в корне папке slax, здесь же будет и файл параметров конфигурации slax-32bit-9.7.0.ipxe
Проделываемые действия, без сокращений чтобы лучше понимать

mkdir syslinux/iso/slax/ mkdir syslinux/iso/slax/ipxe/ cd syslinux/iso/slax/ipxe/ wget http://ftp.linux.cz/pub/linux/slax/Slax-9.x/ipxe/9.7.0/32bit/initrfs.img wget http://ftp.linux.cz/pub/linux/slax/Slax-9.x/ipxe/9.7.0/32bit/vmlinuz cd .. wget http://ftp.linux.cz/pub/linux/slax/Slax-9.x/slax-32bit-9.7.0.iso nano slax-32bit-9.7.0.ipxe
#!ipxe kernel http://192.168.1.49/slax/ipxe/vmlinuz vga=normal load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 from=http://192.168.1.49/slax/slax-32bit-9.7.0.iso initrd http://192.168.1.49/slax/ipxe/initrfs.img boot

В меню syslinux создадим пункт меню

cd ~tftp/syslinux/pxelinux.cfg/ nano default
LABEL - MENU LABEL Slax 32bit KERNEL ipxe/ipxe.lkrn APPEND dhcp && chain http://192.168.1.49/slax/slax-32bit-9.7.0.ipxe

Если получили ошибку доступа к файлам, то не забываем править права

chmod -Rf 755 /home/virtual/tftpboot/syslinux/

IP адрес — это адрес сервер tftp, того где мы все это настраиваем

Еще раз окончательный вид получившейся структуры файлов
. ├── ipxe │ ├── Acronis_11.5.ipxe │ ├── Acronis_2013.ipxe │ ├── Acronis_2017.ipxe │ ├── erd65_32.ipxe │ ├── erd65_64.ipxe │ └── ipxe.lkrn ├── iso │ ├── Acronis_11.5.iso │ ├── Acronis_2013.iso │ ├── Acronis_2017.iso │ ├── erd65_32.iso │ ├── erd65_64.iso │ ├── fd11src_live.iso │ ├── memtest.iso │ ├── slax │ │ ├── ipxe │ │ │ ├── initrfs.img │ │ │ └── vmlinuz │ │ ├── slax-32bit-9.7.0.ipxe │ │ └── slax-32bit-9.7.0.iso │ └── victoria.iso ├── ldlinux.c32 ├── libcom32.c32 ├── libutil.c32 ├── memdisk ├── pxelinux.0 ├── pxelinux.cfg │ ├── back.jpg │ ├── default │ └── vesamenu.c32 └── utils ├── chain.c32 ├── poweroff.c32 └── reboot.c32

PS: Gparted

Загрузка официального образа gparted
В документации есть статья https://gparted.org/livepxe.php
Объясню немного проще

Качаем ZIP архив как указано в документации
https://sourceforge.net/projects/gparted/files/gparted-live-stable/1.0.0-3/
1.0.0-3 — на момент написания статьи
Распаковываем как нам нравится. Берем папку live, копируем её на сервер в папку iso (см выше) и переименовываем в gparted

Пункт меню для syslinux/pxelinux.cfg/default
LABEL - MENU LABEL Gparted 32bit KERNEL iso/gparted/vmlinuz APPEND initrd=iso/gparted/initrd.img boot=live config components union=overlay username=user noswap noeject ip= vga=788 fetch=http://192.168.1.49/gparted/filesystem.squashfs

Записки линуксоида Vlsu

Каждый линуксоид прекрасно знает, что такое Slax Linux. Это миниатюрный дистрибутив, который создан на базе Slackware, способный уместиться на MiniCD и при запуске полностью скопировать себя в оперативную память. А если загрузить его с флеш-карты, то еще и изменения сохранить получится. Кроме того, нельзя не подчеркнуть модульную структуру и наличие KDE в качестве рабочего окружения.

Но у этого замечательного дистрибутива есть и значительные минусы. Самый главный из них — долгая заморозка проекта. Новых версий не было с 4 августа 2009 (6.1.2) по 10 декабря 2012 (7.0.0). За этот промежуток времени многие успели забыть о слаксе. Версия 6.1.2 не могла корректно распознавать многое новое оборудование, так что в качестве «реанимационки» (загрузочной usb-флешки) систему использовать перестали.

Седьмая версия значительно меняет ситуацию. Весь софт обновлён до последних версий. (кроме KOffice — его вообще нет) . Может показаться странным, но KDE4 работает великолепно! Тормозов, вылетаний и прочих гадостей при запуске в виртуальной машине обнаружено не было.

Здесь речь пойдёт о Slax 7.0.5.

Slax и все-все-все.

Наверняка вы уже попробовали все приложения, с которыми можно работать без сети. Пришло время подключиться к Интернету. Одним из самых популярных способов подключения к сети Интернет является ADSL-подключение, поэтому опишу именно те действия, которые потребуются для подключения. Рассмотренный ниже способ подходит вам в том случае, если вы подключаете ADSL-модем непосредственно к сетевой карте вашего компьютера, в случае USB-модема потребуются дополнительные манипуляции. Итак, нам понадобятся два модуля, которые необходимо скачать, положить на флэшку, активировать и настроить. Итак, как гласит страничка форума forum.ru-board.com, посвященная этому вопросу (forum.ru-board.com/topic.cgi?forum=65&topic=1985&start=0&limit=1&m=3#1), нам нужны:

  • ppp-2.4.tgz
  • rp-pppoe.tgz

Немного погуглив, находим упоминание о более свежей версии ppp-2.4.4.tar.gz на странице (www.filewatcher.com/m/ppp-2.4.4.tar.gz.688763.0.0.html).

К сожалению, первые ссылки не дали скачать желаемый архив, но одна из последующих наверняка принесет удачу, в моем случае это была третья (ftp.prz.rzeszow.pl/pub/gentoo/source/distfiles/ppp-2.4.4.tar.gz). Аналогично ищем с помощью Google второй архив. Одна из первых ссылок приведет нас к странице (www.sfr-fresh.com/linux/misc/rp-pppoe-3.10.tar.gz/index_o.html). Ссылка «Download» на этой странице даст нам 2-й желаемый архив: rp-pppoe-3.10.tar.gz (www.sfr-fresh.com/linux/misc/rp-pppoe-3.10.tar.gz).

К сожалению, скачанные архивы не являются модулями Slax, но кто нам помешает сделать их таковыми? Создадим на нашей флэшке в папке slax папку tmp и положим 2 наших архива (ppp-2.4.4.tar.gz и rp-pppoe-3.10.tar.gz) туда. Перезагрузимся в Slax с нашей флэшки.

Для преобразования архивов в модули используем Terminal, как и ранее. Введем в командной строке команду:

cd /mnt/sdb1/slax/tmp

вывод этой команды должен показать, что оба архива находятся в этой папке :).

Создадим каталоги 1 и 2 для переупаковки наших архивов в модули Slax:

mkdir 1
mkdir 2

Скопируем, соответственно, ppp-2.4.4.tar.gz в папку 1, а rp-pppoe-3.10.tar.gz — в 2:

cp ppp-2.4.4.tar.gz 1/
cp rp-pppoe-3.10.tar.gz 2/

Перейдем в первую папку и распакуем архив, находящийся в ней:

cd 1/
tar -xzvf ppp-2.4.4.tar.gz

Команда tar отвечает за мощный универсальный упаковщик/распаковщик и архиватор, который используется, как правило, во всех без исключения дистрибутивах Linux. О том, что архив распакован, нам скажет все та же команда:

Мы увидим, что в папке 1 появилась папка ppp-2.4.4.

Теперь мы должны запаковать папку ppp-2.4.4 в модуль Slax:

dir2lzm ppp-2.4.4 ppp-2.4.4.lzm

Поздравляю, мы получили первый готовый модуль Slax, собранный собственноручно!

Перейдем во второй каталог и повторим сделанное для второго архива:

cd ../2
tar -xzvf rp-pppoe-3.10.tar.gz
dir2lzm rp-pppoe-3.10 rp-pppoe-3.10.lzm

Теперь переместим созданные модули в /mnt/sdb1/slax/modules. Чтобы проверить себя, используем полные пути к файлам:

mv /mnt/sdb1/slax/tmp/1/ppp-2.4.4.lzm /mnt/sdb1/slax/modules
mv /mnt/sdb1/slax/tmp/2/rp-pppoe-3.10.lzm /mnt/sdb1/slax/modules

Поскольку первоначальные архивы и их распакованное содержимое нам более не понадобится, давайте приберемся за собой:

rm -rf /mnt/sdb1/slax/tmp

Внимание! Будьте осторожны с командой rm, особенно вместе с аргументом -rf, поскольку она удаляет содержимое папки со всей структурой подпапок и при невнимательности может легко «убить» уже настроенную систему! Если вы не уверены в том, какую папку собираетесь удалить, воспользуйтесь командами:

  • ls для отображения содержимого папки,
  • pwd для отображения текущего пути к папке, в которой в данный момент вы находитесь.

Кроме того, используйте полный путь к папке взамен относительного.

Активируем наши 2 модуля, как это уже описывалось выше:

activate /mnt/sdb1/slax/modules/ppp-2.4.4.lzm
activate /mnt/sdb1/slax/modules/rp-pppoe-3.10.lzm

Настроим модули для подключения к сети провайдера. Для этого нам потребуется знать имя пользователя и пароль, а также адреса DNS нашего провайдера. Как правило, их можно узнать из договора подключения и доп. страниц, которые вам могли дать при подключении, или обратившись в пункт подключения услуг вашего провайдера. Если вы используете для подключения byfly, то имя пользователя будет выглядеть примерно так: 150XXXXXXXXXX@beltel.by, где X отвечает за конкретную цифру. Адреса DNS, скорее всего, будут такими: 194.158.202.57 и 193.232.248.2 Я не могу отвечать за правильность цифр, напечатанных в газете, из-за возможных огрехов при наборе, поэтому самое лучшее — свериться со страницами вашего договора подключения.

Введем в командной строке команду:

pppoe-setup

и на вопросы скрипта введем необходимую информацию. Первый вопрос будет об имени пользователя для подключения, второй — об имени сетевого интерфейса, как правило, это будет eth0, поэтому просто жмем Enter для принятия значения по умолчанию. В третий раз — просто жмем Enter. В четвертый — вводим первый адрес DNS сервера провайдера (или «server» без кавычек в нижнем регистре для автоматического определения). В пятый — адрес второго DNS сервера провайдера, в шестой раз необходимо ввести пароль соответствующий вашему имени пользователя для подключения к провайдеру, в седьмой раз нас спросят о файрволе, поскольку у нас его пока нет, введем цифру «0» (без кавычек). В конце, возможно, потребуется ввести «yes» (также без кавычек и в нижнем регистре) для подтверждения и сохранения в системе введенных настроек.

Остается поднять настроенное соединение командой:

pppoe-start

Если отобразилось что-то, отличное от «Connected», необходимо вернуться к предыдущему шагу (pppoe-setup) и повторить ввод информации о подключении более аккуратно.

Команда pppoe-stop позволяет отключиться от Интернета, а pppoe-status — узнать, подключены ли мы к Интернету или нет.

О том, как сделать так, чтобы интернет-подключение стартовало сразу же после входа в Slax, без необходимости вводить pppoe-start, я предложу вам узнать, поискав информацию самостоятельно, например, на slax.org.ru, slax.org, forum.ru-board.com или погуглить.

Если вы используете wifi-подключение к собственному маршрутизатору или к провайдеру, я также отправляю вас за информацией в сеть. Скажу лишь, что это обязательно получится, поскольку получилось у меня, и это также связано с поиском и установкой/настройкой модулей.


Файлы и папки с кириллическими именами — невидимки!

Мы поставили модуль русификации и убедились, что меню KDE содержит переводы на русский для большинства элементов. Однако если поискать имеющиеся у нас на жестком диске файлы, мы можем испытать неприятный шок. Они исчезли! О, ужас! Но не стоит бояться, они не исчезли, они всего лишь невидимы :). Это не представляет проблемы, если не приходится создавать/получать файлы и папки кириллицей, но давайте добавим себе удобства! Случайно наткнувшись на сайт slax.org.ru, а именно — на его страницу русификации (slax.org.ru/rus.html), я бросился пробовать инструкции по русификации-кириллизации KDE (создание файла в /root/.kde/Autostart/ru_kb) и правке файла boot/slax.cfg на флэшке. Но все было тщетно, кириллица на диске оставалась не видна, к счастью, на той же странице было упоминание об официальных модулях, которые позволят получить желаемое. Итак, наша версия Slax 6.1.2, поэтому идем на ftp://ftp.slax.org/SLAX-6.x/multi-language/6.1.2/russian/ и скачиваем два файла:

каждый из которых менее 3 Мб.

Далее необходимо скачанным файлом initrd.gz заменить на флэшке boot\initrd.gz, а скачанный файл russian.lzm положить в slax\base\russian.lzm. Соответственно, файл slax\modules\russian-utf8-6.0.7-i486-2.lzm можно удалить (пути приведены в Windows-варианте). После всего проделанного загрузимся (перезагрузимся) с флэшки.


В качестве эпилога

Попробовав знакомые уже всем Linux-пользователям программы из типичного набора и убедившись в скорости и надежности дистрибутива, у меня появилось желание поставить что-нибудь потяжелее из области веб-разработчика. А именно — Eclipse c PDT, и вот тут скорости моего флэш-накопителя, вставленного в USB 2.0 порт, стало катастрофически не хватать, и я решил попробовать поставить Slax на жесткий диск ноутбука. Сделать это несложно. Необходимо скопировать папки slax и boot на наш жесткий диск в, соответственно, slax и slax_boot (последнее необходимо, чтобы не пересекаться с одноименной папкой, используемой Windows). Далее рекомендую воспользоваться бесплатной утилитой EasyBCD, которую можно скачать, например, здесь (neosmart.net/downloads/software/EasyBCD/EasyBCD%201.7.2.exe), для правки записей загрузчика Windows Vista. Если вы используете Windows XP, обратитесь к изменению файла boot.ini, скорее всего, находящегося в корне вашего диска C:. Далее при использовании EasyBCD нажмите в ней Add/Remove Entries > Linux выберите GRUB из списка и выберите вариант, при котором GRUB не устанавливается в MBR. Дайте новому пункту загрузки понятное имя, например: Slax. К сожалению, загрузчик все еще не знает, где находятся файлы Slax. Откроем файл C:\NST\menu.lst, удалим все его содержимое и вставим такое.

color black/cyan yellow/cyan
timeout=20
default=1

title Back to Menu
rootnoverify (hd0,0)
chainloader +1
boot

title Slax GRAPHICS MODE (KDE) — Use the maximum allowed resolution.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/

initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Slax ALWAYS FRESH — No changes are written anywhere.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4
initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Slax COPY TO RAM — Copy data to RAM to enhance speed(needs >300MB).
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw copy2ram autoexec=xconf;telinit~4

initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Slax GRAPHICS VESA MODE — Force 1024×768 display resolution.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=telinit~4 changes=/slax/

initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Slax TEXT MODE — Using command prompt only.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw changes=/slax/
initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Slax as PXE SERVER — Boot Slax on other computers over network.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=/boot/pxelinux.cfg/start;/boot/pxelinux.cfg/web/start;xconf;telinit~4

initrd (hd0,1)/Slax/boot/initrd.gz
boot

title Run MEMTEST — Diagnose your computer’s RAM for possible errors.
rootnoverify (hd0,1)
kernel (hd0,1)/Slax/boot/mt86p
boot

В моем случае (hd0,1) указывает на то, что загрузчик Slax следует искать на диске C:. Если папки slax и slax_boot не находятся на диске C: или ваш жесткий диск размечен иначе, чем мой, первый раздел у меня отдан под аварийное восстановление, следует изменить (hd0,1) на что-нибудь из последовательности: (hd0,0). (hd0,2), и т.д. для первого физического жесткого диска, если он единственный в вашей системе. Если же жестких дисков у вас больше и вы имели удовольствие скопировать slax и slax_boot на один из разделов второго диска, попробуйте (hd1,0) и т.д.

Для безопасной работы в сети необходимо создать в системе пользовательскую учетную запись, отличную от root/toor, и наделить ее необходимыми правами, а также стоит установить/сконфигурировать firewall, однако описание этих настроек выходит за тему данной публикации.

Добавить комментарий

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