Категория: Руководства
Некоторые камрады, наверно, помнят серию статей про принципы создания живых дистрибутивов, размещенную на linux16.net некоторое время назад. Сегодня я хотел бы перевести эту тему из теоретической плоскости в практическую и поговорить о таком выдающемся варианте LiveCD, как Slax.
Slax симпатичен мне по нескольким причинам. Во-первых, он базируется на одном из моих любимых дистрибутивов - Slackware, который отличается простотой, стабильностью, стремлением к соответствию классическим образцам (можно сказать, что он ближе всех из Linux-систем к стандартам BSD). Slackware хорош для решения задач, не требующих GUI (сервера), но при желании его можно заточить под X.org сколь угодно красиво. Вторая причина, по которой мне нравится Slax - стильный и очень толковый сайт проекта, который активно развивается. Там есть форум, благожелательное отношение к новичкам, приятный, современный дизайн, мощная теоретическая база. Ну и, наконец Slax легко настроить под решение широкого круга задач.
Дистрибутив можно загрузить с соответствующего сайта (около 200 Мб)и поэкспериментировать с ним в виртуальной машине (я использую VirtualBox). Загрузившись с iso-образа, вы будете приятно удивлены тем, что подключение к Интернет уже настроено, большинство частоиспользуемых консольных утилит (вплоть до Midnight Commander) уже присутствуют в системе, что иксы запускаются и выглядят очень опрятно (KDE). Но есть и неприятные моменты:во-первых, дистрибутив не русифицирован. Во-вторых, под иксами отсутствует сколь-либо адекватный браузер (не считать же таковым Konqueror). В-третьих. В третьих каждый для себя может придумать сам, поскольку LiveCD - не просто забава, а система для выполнения специфических задач, так что решив его использовать нужно быть готовым к доработкам.
Принципы "заточки" Slax под "себя" очень просты. С помощью утилит dir2lzm и tgz2lzm можно превратить содержимое каталога или tgz-архива в модуль Slax. Далее iso-шник потрошится (с помощью Midnight Commander'a) полученный модуль добавляется в каталог с модулями и с помощью скрипта make_iso.sh вновь превращается в iso-образ, но уже с новыми возможностями. Поясню на примере. Известно, что для корректной русификации Linux нужны библиотеки glibc и glibc-i18, а также кое-какие скрипты. Допустим, эти пакеты у вас находятся в файлах glibc.tgz, glibc-i18.tgz и config_ru_RU.tgz (пакеты Slackware - это обычные tgz-архивы, только в добавок выполняющие при распаковке скрипты из своей папки install. Найти их можно в дистрибутиве Slackware 12.1). Для создания соответствующих модулей достаточно выполнить
tgz2lzm glibc.tgz 020-glibc.lzm tgz2lzm glibc-i18.tgz 025-i18.lzm tgz2lzm config_ru_RU.tgz 030-ru.lzm
Названия результирующих файлов могут быть любыми, но лучше впереди ставить трехзначные числа (с лидирующими нулями при необходимости) чтобы Slax знал, в какой последовательности загружать их. Получившиеся файлы нужно поместить в соответствующую папку распакованного дистрибутива Slax и создать новый iso-образ с помощью скрипта make_iso.sh.
Но не всё так просто. Дело в том, что tgz2lzm и dir2lzm - не стандартные утилиты Linux, а исключительно слаксовские приблуды, то есть воспользоваться ими можно только загрузившись с диска Slax. Это не есть гут. Хотелось бы всё это проделывать (изменять живой дистрибутив в соответствии со своими потребностями) не перезагружаясь и не прекращая других задач. Решение напрашивается само собой: работать над модификацией Slax под виртуальной машиной. Только вот беда: виртуальная машина - вещь в себе. По крайней мере моя любимая VirtualBox. Попасть внутрь нее из реальной машины можно только по сети или через механизм зашаренных (общих для реальной и виртуальной машин) папок. А чтобы зашарить папки нужно пропатчить виртуальную машину так называемыми гостевыми дополнениями. Давайте вместе проделаем необходимые шаги для этого, а заодно модифицируем Slax таким образом, чтобы он, работая под виртуальной машиной, всегда имел доступ к основной машине через зашаренную папку (или несколько папок, их число не ограничено).
Создайте виртуальную машину с виртуальным жестким диском объемом мегабайт в 500, установите на нее Slackware (или любой другой дистрибурив) в минимальной конфигурации. Загружаемся, входим. Из меню виртуальной машины выбираем "Устройства -> Подключить CD-ROM -> Образ CD/DVD-ROM". В появившемся менеджере виртуальных дисков выбераем VBoxAdditions.iso. Он там присутствует по умолчанию, но если по каким-то причинам его там нет, то этот исошник можно найти в каталоге .usr/share/virtualbox (для VirtualBox версии 6.0.7 по крайней мере). Монтируем:
mkdir -p /mnt/cdrom mount -t iso9660 /dev/cdrom /mnt/cdrom
Можете убедиться в mc, что всё замонтировалось правильно и каталог /mnt/cdrom действительно содержит дополнения гостевой ОС, то есть файлы с именами типа VBoxLinuxAdditions-бла-бла-бла.
Выключаем виртуальную машину командой halt, создаем виртуальную машину, которая будет грузиться со Slax, подключаем к ней виртуальный жесткий диск, на который только что перенесли инсталлятор гостевой ОС. Бутимся со Slax в текстовом режиме, входим, обнаруживаем жесткий диск, уже примонтированный умным Слаксом куда-нибудь в папку типа /mnt/hda2, то есть в каталоге /mnt/hda2/tmp нас ждет исполняемый файл VboxLinuxAdditions-x86.run. Казалось бы уже всё понятно: нужно его запустить и он установит дополнения гостевой ОС. Это так, но сначала мы выполним маленькую хитренькую команду:
Ну, а теперь действительно:
cd /mnt/hda2/tmp ./VboxLinuxAdditions-x86.run
Пошел процесс, причем процесс явно что-то делающий с исходниками ядра (они, со всеми необходимыми для LiveCD патчами, включены в стандартный состав Slax). Это компилируются модули, которые позволят в дальнейшем связывать виртуальную и реальную машины с помощью зашаренных папок. В конце процесс слегка матюгнется по поводу того, что не обнаружил X. Да они нам и не нужны, иксы-то, лишь бы папки зашаривались. Теперь - особая консольная магия:
find /bin -type f -anewer /tmp/before > vbox.lst find /etc -type f -anewer /tmp/before >> vbox.lst find /lib -type f -anewer /tmp/before >> vbox.lst find /sbin -type f -anewer /tmp/before >> vbox.lst find /usr -type f -anewer /tmp/before >> vbox.lst vim (mcedit) vbox.lst tar cvfz vbox.tgz -T vbox.lst
С помощью этой последовательности команд мы составляем список файлов, к которым было обращение после создания файла /tmp/before и загоняем их в архив (список придется слегка подредактировать вручную, ибо там много лишнего, но вы легко догадаетесь, что в нем реально нужно оставить). А вот теперь можно полученный архив превратить в модуль для Slax
tgz2lzm vbox.tgz 040-vbox.lzm
Можете сразу же, не перезагружаясь, убедиться, что виртуальная машина стала видеть зашаренные папки. Создайте общую папку с помощью меню VirtualBox и выполните
/etc/rc.d/rc/rc.vboxadd start /etc/rc.d/rc.vboxvfs start mkdir -p /mnt/vbox mount -t vboxsf myshare /mnt/vbox
В этот каталог (то есть в зашаренную вами папку реальной машины) скопируйте получившийся модуль, затем поместите его в папку с модулями Slax, пересоберите iso-образ и после перезагрузки вы сможете работать с папками реальной машины из виртуальной.
Описанный метод (создаем файл с помощью команды touch и собираем в архив всё, что возникло позднее его) годится для любых задач по модификации Slax. Я с помощью этого нехитрого трюка закорячил в LiveCD браузер Opera (с русификацией, оконным менеджером fvwm и Qt) и даже сервера PostgreSQL и Tomcat. Всё прекрасно работает, в том числе под виртуальной машиной.
Дистрибутив GNU/Linux для запуска со сменных носителей.
Slax - современный, портативный, маленький и быстрый дистрибутив GNU/Linux с модульным подходом и красивым дизайном. Несмотря на свой небольшой размер Slax обеспечивает широкую спектр предварительно установленного программного обеспечения для ежедневного использования, в том числе хорошо организованный графический пользовательский интерфейс и полезные инструменты восстановления для системных администраторов.
Модульный подход дает Вам возможность легко включать любое другое программное обеспечение в Slax. Если вам не хватает вашего любимого текстового редактора, сетевого инструмента или игры, просто загрузить модуль с программным обеспечением и скопируйте его в Slax. Нет необходимости в установке и не нужно настраивать, он просто работает.
А теперь давайте проверим, так ли это на самом деле.
Данный дистрибутив устанавливался на компьютер со следующими характеристиками:
Thinkpad x60t
3Гб ОЗУ
Wifi Intel Corporation PRO/Wireless 3945ABG [Golan]
Встроенный видеопроцессор от Intel 945GM
Звук Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 02)
USB-накопитель Kingston Datatraveler SE9 16Гб.
Данный дистрибутив "заточен" под работу на USB накопителях, но установить его официальным методом невозможно. Для установки официальным методом нужно распаковать скачанный архив на флешку и запустить bootinst.sh, после чего bootinst.sh предлагает прочитать лог ошибок и нажать Enter, что я и сделал.
Ладно, оставим официальный установщик в покое и установим через Unetbootin-Linux-613-bin (пятого августа этого года )
Как мы видим, Unetbootin не смог определить место положения SlaxLive ISO и предлагает нам загрузить его вручную. Что я и сделал.
Ошибок нет. Ну раз их нет, попробуем теперь запустить.
Нам предлагают три режима запуска:
1. Режим "по умолчанию".
2. Запустить Slax.
3. Запустить как PXE Server
PXE Server, нам как простым пользователям Windows не нужен. Интересно, а чем отличается "режим по умолчанию" от "запустить slax" ?
Попробуем по порядку:
Режим "по умолчанию":
Только чёрный экран и кроме busybox больше ничего.
Запускаем "Запустить Slax" и по нажатию Enter ничего не происходит.
Получается что один из "дружелюбных сборок" GNU/Linux поставил простого неискушённого пользователя Windows перед чёрным экраном и командным интерпретатором BusyBox.
На этом этапе данный обзор закончен. В следующий раз мы пригласим более опытного пользователя, который скорее всего затронет программные пакеты dd и grub4dos.
Дргугие программы: #1. Director-cemetery #3. дохтур #4. Tritus #5. nexfwall #6. nexfwall #8. UnPlayer #9. СергейSlax - один из самых популярных видов Live Linux
1. Скачиваем Образ с сайта разработчиков http://slax.org
2. Папку Slax распаковываем из образа в корень флешки.
3.Извлекаем файлы vmlinuz и initrd.gz из папки Boot в образе, и копируем их в папку Slax вкорне флешки.
4. В Menu.lst добавляем строки:
title SLAX 6
kernel /slax/vmlinuz ramdisk_size=6666 splash=silent vga=789 root=/dev/ram0 rw autoexec=xconf;telinit
4 fromusb
initrd=/slax/initrd.gz
Или с копированием файлов в Оперативку (рамдрайв)
Загрузка Slax6 таким способом, требует для своей работы не менее 382Мб оперативной памяти.
title SLAX 6 Copy To RAM
kernel /slax/vmlinuz ramdisk_size=6666 splash=silent vga=789 root=/dev/ram0 rw copy2ram autoexec=xconf;telinit
4 fromusb
initrd=/slax/initrd.gz
Всё готово, можно проверять.
Рассмотрим второй способ с использованием системыподменю .
1. Скачиваем Образ с сайта разработчиков.
2. Папку Slax распаковываем из образа в корень флешки.
3.Извлекаем файлы vmlinuz и initrd.gz из папки Boot в образе, и копируем их в папку Slax вкорне флешки.
4. По адресу /boot/menus/ создаём файл slax.lst .
splashimage (hd0,0)/BOOT/Splash/ Ваша картинка .xpm.gz
foreground ffffff
background ff0000
timeout 30
default 0
title Slax Graphics mode (KDE)
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit
4 fromusb
initrd /slax/initrd.gz
title Slax Graphics mode (KDE) + save changes /slax/
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit
4 changes=/slax/ fromusb
initrd /slax/initrd.gz
title Slax Graphics mode, Copy To RAM
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw copy2ram autoexec=xconf;telinit
4 fromusb
initrd /slax/initrd.gz
title Slax Always Fresh
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit
4 fromusb
initrd /slax/initrd.gz
title Slax Graphics VESA mode
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=telinit
4 fromusb
initrd /slax/initrd.gz
title Slax Text mode
find --set-root /grldr
kernel /slax/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw fromusb
initrd /slax/initrd.gz
title Return Back <==
configfile (hd0,0)/menu.lst
title Reboot
reboot
title ShutDown
halt
Всё это варианты загрузки Slax .
5. В Menu.lst добавляем строки:
title Slax 6 ==>
configfile (hd0,0)/boot/menus/slax.lst
Теперь при выборе пункта меню Slax 6 ==> будет появляться страница с вариантами загрузки ОС .
Для того чтобы Slax стал Русским, нам нужно скачать модуль russian.lzm. найти его можно здесь
Затем поместить этот модуль на флешку по адресу \slax\modules
При следующей загрузке Slax будет Русским.
Последний штрих, добавляем в строчку команд для ядра (kernel) - lang=ru iocharset=koi8-r в каждый пункт (вариант) загрузки, это нужно для того, чтобы корректно распознавались Русские шрифты на NTFS разделах.
Здесь установка немного отличается.
Вместо файла initrd.gz теперь файл initrfs.img
И папку boot теперь можно не трогать.
1. Из архива извлеките папку Slax в корень флешки.
2. В Menu.lst пропишите строки:
title SLAX 6
kernel /slax/boot/vmlinuz ramdisk_size=6666 splash=silent vga=789 root=/dev/ram0 rw autoexec=xconf;telinit
4 fromusb
initrd=/slax/boot/initrfs.img
Установка Slax завершена.
Если что то не получилось, загляните на Форум
Этот способ помог разработать г-н ytenok
Запускаем Slax 6.1.2 из любого места на флешке. Тем самым имея несколько версий на одном носителе, которые между собой не перекликаются.
Форматируем флешку в fat32. Устанавливаем grub4dos или syslinux. Или ставим grub4dos в mbr. а syslinux в pbr. Через какой загручик запускать, решать вам.
Из slax-6.1.2.iso копируем папки boot и slax на флешку в любое место, например в: /ISO/slax/slax-6.1.2
Судя по этому посту из папки boot удаляем всё кроме 2-х файлов initrd.gz и vmlinuz. На загрузку это не влияет, а вес слегка уменьшится.
В любой LiveCD *NIX системе или Gparted. Смотрим как у нас монтируется флешка. В моём случае это /dev/sdd1. Прописываем дополнительный параметр from и дальше указываем путь вместе с точкой монтивания, к тому месту где у нас лежит slax.
Должно получится примерно так: from=/dev/sdd1/ISO/slax/slax-6.1.2/
Ещё важный момент, в пути после from=/. /slax-6.1.2/ не нужно прописывать ещё папку slax. Может это не принципиально, но в моём случае загрузка не пошла.
В меню (пример syslinux) прописываем, различные варианты:
MENU LABEL Slax 6.1.2 Graphics mode (KDE)
KERNEL /ISO/slax/slax-6.1.2/boot/vmlinuz
APPEND initrd=/ISO/slax/slax-6.1.2/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit
4 changes=/ISO/slax/slax-6.1.2/slax/ fromusb from=/dev/sdd1/ISO/slax/slax-6.1.2/
MENU LABEL Slax 6.1.2 Always Fresh
KERNEL /ISO/slax/slax-6.1.2/boot/vmlinuz
APPEND initrd=/ISO/slax/slax-6.1.2/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit
4 fromusb from=/dev/sdd1/ISO/slax/slax-6.1.2/
MENU LABEL Slax 6.1.2 Copy To RAM 300MB+
KERNEL /ISO/slax/slax-6.1.2/boot/vmlinuz
APPEND initrd=/ISO/slax/slax-6.1.2/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw copy2ram autoexec=xconf;telinit
MENU LABEL Slax 6.1.2 Graphics VESA mode
KERNEL /ISO/slax/slax-6.1.2/boot/vmlinuz
APPEND initrd=/ISO/slax/slax-6.1.2/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=telinit
4 changes=/ISO/slax/slax-6.1.2/slax/ from=/dev/sdd1/ISO/slax/slax-6.1.2/
C параметром fromusb в моём случае, с ним и без него - разницы не увидел.
На виртуалке QEMU не работает. На USB 3.0 у меня тоже не работает.
Slax - современная, портативная, небольшая и быстрая операционная система Линукс с модульной структурой и выдающимся дизайном. Несмотря на свои небольшие размеры, Slax предоставляет широкий спектр предварительно установленного программного обеспечения для повседневного использования, включая хорошо организованной графический пользовательский интерфейс и полезные инструменты восстановления для системных администраторов.
Модульный подход даёт вам возможность легко включить любое другое ПО в Slax. Если Вам не хватает Вашего любимого текстового редактора, сетевой утилиты или игры, просто скачайте модуль с ПО и скопируйте его в Slax, не надо устанавливать, не надо настраивать.
Если Вы новичок, или Вы просто слишком заняты, чтобы делать это самому, следуйте нескольким шагам, чтобы собрать Вашу собственную персонализированную операционную систему, используя здешний веб-интерфейс.
Ключевые возможностиВ Slax, вы не ограничивается только стойкие домашний каталог - весь корневой файловой системы в полной мере записи, поэтому мы говорим о "стойких изменений" (а не о "стойких дома", известные из других дистрибутивов Live). Вы можете изменить /bin/bash точно так же, как и
/kderc.Способ, описанный выше, просто установит начальный загрузчик syslinux в MBR (master boot record) вашего устройства. Syslinux работает только на файловой системе FAT (которая широко используется на большинстве USB флэш-накопителей, Камер и MP3-плееров). Если ваше устройство отформатировано с использованием отличной файловой системы (очень рекомендуется использовать родную Linux файловую систему, как XFS), вам нужно будет использовать скрипт "liloinst.sh" вместо этого. В настоящее время, liloinst не обеспечивает такое же приятное загрузочное меню, как syslinux, но это может быть осуществлено в ближайшее время. Проверьте, не было ли повреждений при загрузке
Эта контрольная сумма используется для нескольких целей, и самая распространенная состоит в том, чтобы убедиться, что загрузка прошла без повреждения. Если md5sum вашего загруженныого файла отличается от опубликованного md5 странице, то вы можете быть на 100% уверены, что файл поврежден. В этом случае попробуйте загрузить его еще раз.
Для вычисления md5 суммы загруженныого файла, используйте специальное программное обеспечение. Вы можете найти его через Google, попробуйте искать по ключевому слову "md5sum.exe", если вы находитесь в Windows. Запуск Slax с USB флэш - накопителя
Как известно, USB флеш-накопители, имеют определенное количество стираемых сегментов, каждый из которых может быть перезаписан определенное количество раз (например 100 000) перед тем как он выйдет из строя. Обычные файловые системы такие как FAT или ext2 были изначально спроектированы для магнитных дисков и неоднократно перезаписывают структуры данных в одном и том же месте, поэтому поврежденный сегмент не может быть восстановлен. Такой тип повреждения не подлежит восстановлению.
Чтобы предотвратить разрушение файловой системы, всегда корректно выполняйте выключение и перезагрузку системы. Если Вы загружаете Slax с другого устройства, а USB-накопитель используете как носитель данных, то всегда, прежде чем отсоединить его компьютера отмонтируйте его в системе. Если Вы можете, то используйте журналируемые файловые системы (такие как XFS) вместо FAT или ext2. И всегда старайтесь использовать устройства с поддержкой технологии 'выравнивания износа (wear levelling)', предназначенной для того, чтобы равномерно распределить перезапись, что увеличивает срок их жизни.Например, как раз так и сработает. Устойчивые изменения в Slax
Если Вам неудобно использовать команды, просто щёлкните 2 раза Ваш модуль.lzm в файловом менеджере (например, в konqueror), это даст то же самое.
Убедитесь в том, что сохраняете регистр символов, так как имена всех файлов и каталогов чувствительны к регистру. Если вы делаете это в Windows, некоторые файловые менеджеры не будут корректно показывать вам регистр, так что вам, возможно, придется использовать оригинальный проводник Windows.
Если вы используете Slax на USB, просто создайте свои каталоги и файлы на вашем устройстве. Но если вы используете Slax на CD, вам необходимо сначала скопировать содержимое вашего CD куда-нибудь, а затем внести изменения, и, наконец, создать новый ISO образ. Как это сделать описано ниже.В следующем примере, Slax будет выполнять 'apache.sh start' на уровне выполнения 3 (что означает запуск системы), и будет выполнять 'apache.sh stop' на уровне выполнения 0 или 6 (это означает, что Slax выключает или перезагружает систему). 7)Если ваша программа может быть запущена в GUI (например, в KDE, XFCE и т.д.), вы должны включать иконки и добавить меню файл на модуль, так что пользователь может начать применение легко найти его в своем меню. Чтобы добавить меню, просто создайте два файла: Первый файл (*.desktop) описывает запись меню. Он может выглядеть так: 8) Если программное обеспечение в вашем модуле начало, он должен начинаться сразу без каких-либо излишних диалогов, советы дня или лицензионных соглашений. Имейте в виду, что если пользователь включен модуль по вашей чтения CD, он никоим образом не вспомнить настройки (отключить подсказки, согласны лицензий и т.д.), поэтому модуль не следует беспокоиться ему каждый раз при старте.
9) Зависимые от ваших модуль должен быть максимально мало, насколько это возможно. Это означает, что меньше других модулей, которые требуются в вашем модуль, лучше, но не забудьте сохранить размер модуля как можно меньше. Например, если ваш модуль может работать спокойно без питона, то не забудьте удалить все скрипты питона из вашего модуля, вместо includin питона в нем.
Если модуль требует некоторых библиотек, которые являются практически полезна только для вашего модуля, а затем включить библиотеки прямо в вашем модуле и не загружать их по отдельности. Как, например, XFCE требует много xfcelib * библиотек, в то время как практически ненужное на что-либо еще. Итак, включать их в XFCE модуль.
С другой стороны, если модуль нуждается в некоторой библиотеки или программы, которые могут оказаться полезными и для других модулей, а, никогда не включать его в свой модуль, но и отправить ее по отдельности. Так, например, питона бинарных файлов всегда должны быть загружены отдельно и не включены ни в один модуль.Некоторые библиотеки или программы не показывают каких-либо пользовательский интерфейс, в этом случае иллюстрация не требуется. Но приятно, truecolor икона должна быть предоставлена. Модули без значка редко принимаются. Если вы считаете, что это не возможно найти иконку для вашего модуля, а затем снова думать. Он не обязательно должен быть уникальным для своего модуля, но пользователь должен иметь возможность различать Текстовый редактор и Почтовый клиент просто беглый взгляд на иконы.
Название не должно содержать каких-либо ненужных тире и подчеркивания, просто поставить там программное обеспечение название, за которым следует номер версии. Ниже приводится Описание должно быть достаточно продолжительным, с тем чтобы сделать обзор категории смотреть приятно, но должно содержать только полезную информацию для пользователей. Он предназначен для описания модуля для кого-то которые не имеет абсолютно никакого идея, что находится внутри, и тем, что оно полезно. Нет фиктивных документов, ни связей, ни грамматических ошибок правописания или, никаких восклицательных знаков и не changelogs. Рекомендуемая длина составляет 40 слов или более.