KNOPPIX: как его при-ru-чить (и не только...).

KNOPPIX - это Linux-дистрибутив класса LiveCD, т.е. компакт диск, загрузившись с которого, Вы получаете полноценную операционную систему. Инсталлировать на жесткий диск ничего не надо, его вообще может не быть. При этом Интернет, офис, работа с изображениями, мультимедийные приложения - все доступно, причем в качественной графической среде. KNOPPIX 3.1 - современный дистрибутив, основанный на новом ядре и последних версиях программ. Это - свободное программное обеспечение, Вы платите только за услуги по его получению.

KNOPPIX 3.1 - наверное, лучший LiveCD дистрибутив на сегодняшний день, и хотя его, конечно же, можно установить на жесткий диск для постоянной работы, основная прелесть именно в той легкости, с которой он подчиняет себе любое железо, не требуя взамен ни Вашего времени, ни Вашего винчестера. Вместе с компакт диском он может мигрировать с компьютера на компьютер, всякий раз создавая для вас привычную рабочую среду.

Применений для такого диска много. Можно просто выполнять повседневную работу, можно тестировать аппаратные средства или программное обеспечение. Можно использовать как диск спасения. Можно использовать его для обучения. Для того, чтобы попробовать Linux. Или просто удивить знакомых. А можно заниматься хакерством, наконец. Как Насчет конкурса "Мы используем KNOPPIX для..."?

Ничего подобного в мире Windows нет. Многие даже не верят, что такой дистрибутив может существовать. И, тем не менее, - существует, факт.

Возможно, при первом запуске KNOPPIX Вам будет не хватать поддержки русского языка. А в дальнейшем, не исключено, что понадобится свой уникальный набор программ. Для преодоления таких трудностей в KNOPPIX есть набор решений.

Начнем с простого.

Опции загрузки.

На CD, в каталоге KNOPPIX есть файл knoppix-cheatcodes.txt. Вот небольшая выдержка из этого файла, показывающая, какие опции можно задать при появлении приглашения boot:


knoppix lang=cn|de|da|es|fr|it|ru|sk|tr|tw|us pl - определяет язык и раскладку клавиатуры.
knoppix desktop=fluxbox|gnome|icewm |kde|larswm|twm |wmaker|xfce - определяет оконный менеджер.
knoppix 2 Runlevel 2 - запуск в консольном режиме.
knoppix floppyconfig - конфигурация берется из файла knoppix.sh на дискете.
expert - интерактивный запуск, позволяет выбрать параметры в ходе загрузки системы.

Есть и другие опции.

KNOPPIX, как и почти всякая Linux-система, не привязан к определенному языку. Выбор (локализация) производится пользователем, а не производителем дистрибутива. Иногда в киосках, торгующих компакт дисками, можно увидеть коробочки с надписью "Red Hat, Russian Edition". Кто его знает, что там внутри, но точно не то, что написано. Потому, что не существует русской редакции Red Hat. То же и KNOPPIX - Вы просто выбираете ту локаль, которая Вам нужна.

Сейчас нас интересует, как установить поддержку русского языка. Для этого, в ответ на приглашение boot: наберите:

knoppix lang=ru

После загрузки системы Вы увидите, что меню (во всяком случае, то, что переведено) выводится на русском. В окне терминала и в редакторе можно набирать по русски.

Иметь основным русский язык, не очень удобно, если Вы много работаете с командной строкой. Кроме того, в системе присутствуют английский, немецкий и французский. Четыре языка, переключение между ними циклическое. Это тоже неудобно, исправляем.

Конфигурационная дискета.

KNOPPIX - полноценная операционная система. Конечно, средствами системы можно оставить два языка и назначить основной раскладкой клавиатуры английский, а дополнительной - русский. Можно настроить количество и вид рабочих столов, модемное и сетевое соединение с Интернет, и много что еще. Но все эти изменения действуют только в текущем сеансе. Ведь мы не можем изменить файлы на CD. После перезагрузки все надо начинать сначала.

Для того, чтобы сохранить сделанные изменения, воспользуемся пунктом меню Configuration (Kmenu->KNOPPIX->Configuration->Save). Чистая, отформатированная дискета должна быть в дисководе. На нее будет записан скрипт и архив с файлами конфигурации, всего 60...80Кб информации. При перезагрузке в ответ на приглашение boot: наберите:

knoppix floppyconfig

Система загрузится в том виде, как Вы ее настроили.

Недостатков такого подхода как минимум два. Во-первых, Вам может потребоваться программное обеспечение, которого нет на диске с KNOPPIX. Хотя набор программ очень обширный, вполне возможно, что Вы привыкли к редактору jEdit, которого нет. Или Вы хотите иметь какую-то специфическую справочную информацию именно на этом CD. Во-вторых, не на всех компьютерах есть флоппи-дисководы (или они подключаются вместо CD ROM, как во многих ноутбуках).

Если Вы решите, что оно стоит того, Knoppix можно пересобрать.

Пересборка KNOPPIX.

Все необходимое программное обеспечение для пересборки есть на самом диске KNOPPIX. В качестве примера добавим возможность работы с кириллическими шрифтами в Open Office.

Требования:


- по крайней мере 1 Гб свободной памяти ( то есть 256Mб оперативной памяти и свопинг 750Mб) - если Вы не используете различные программы компрессирования.
- 3,5 Гб свободного места на жестком диске ( отформатированного в ext2/3, xfs и т.п.).

Инструкции:

Загрузитесь с CD KNOPPIX.

Откройте Root Shell ( Kmenu->KNOPPIX->Root Shell ) - все команды приведенные ниже запускаются от имени root.

Смонтируйте раздел жесткого диска, с которым будете работать. Вы должны быть уверены, что этот раздел смонтирован в режиме "чтение-запись". Скажем, если у Вас есть раздел /hda4 объемом не менее 3,5 Гб, то выполните:

mount /dev/hda4 /mnt/hda4

Включите swap. При старте KNOPPIX сам находит и подключает разделы свопинга, если они есть в системе. Например, Вы работаете на компьютере, где уже установлен Linux. Если зто не так, или существующий раздел свопинга меньше 750Мб, то простым решением может стать создание файла свопинга на том же /hda4:

dd if=/dev/zero of=/hda4/swap bs=1k count=750000

mkswap /hda4/swap 750000

swapon /hda4/swap

Сконфигурируйте ваше соединение с Интернет, оно понадобится нам позже. Если добавление новых программ не планируется или их получение не требует доступа к Интернету, то этот пункт (и все, что относится к нему в дальнейшем) можно пропустить.

Создайте на дисковом разделе два каталога - один для Вашего нового Master CD и один для источника. Для создания каталогов и копирования файлов можно воспользоваться не командной строкой, а менеджером Konqueror в режиме root. Результат будет тот же.

mkdir /mnt/hda4/knxmaster

mkdir /mnt/hda4/knxsource

Создайте в каталоге-источнике директорию KNOPPIX:

mkdir /mnt/hda4/knxsource/KNOPPIX

Теперь, скопируйте файлы из каталога KNOPPIX (не с CD, а из той виртуальной файловой системы, которая образуется при старте, в оперативной памяти) в ваш исходный каталог /mnt/hda4/knxsource/KNOPPIX .

cp -Rp /KNOPPIX/* /mnt/hda4/knxsource/KNOPPIX

Копирование занимает довольно много времени, т.к. файлы должны быть считаны с CD, разархивированы, и уже в таком виде записаны на диск. Каталог /mnt/hda4/knxsource/KNOPPIX будет содержать примерно 120 тыс. файлов и иметь объем около 1700Мб.

Удалите скрытый каталог .rr_moved. Позднее он будет создан заново программой mkisofs с учетом изменений, сделанных нами в системе.

rm -rf /mnt/hda4/knxsource/KNOPPIX/.rr_moved

Создайте в мастер-каталоге директорию KNOPPIX, для чего выполните

mkdir /mnt/hda4/knxmaster/KNOPPIX

Скопируйте с CD индексный файл в мастер-каталог

cp /cdrom/index.html /mnt/hda4/knxmaster/

Теперь, скопируйте все из каталога /cdrom/KNOPPIX/ в /mnt/hda4/knxmaster/KNOPPIX/ кроме самого файла KNOPPIX размером около 700Мб.

find . -size -100000 -type f -exec cp -p --parents {}/mnt/hda4/knxmaster/KNOPPIX/ \

Теперь Вы можете выполнить команду chroot, чтобы войти в скопированный KNOPPIX для последующей правки дистрибутива:

chroot /mnt/hda4/knxsource/KNOPPIX

Пояснение:

Процессы обычно используют глобальный корневой каталог файловой системы для всех имен путей поиска, начинающихся с "/". Ядро хранит глобальную переменную, которая указывает на индекс глобального корня. Процессы могут менять свое представление о корневом каталоге файловой системы с помощью системной функции chroot. Это бывает полезно, если пользователю нужно создать модель обычной иерархической структуры файловой системы и запустить процессы там. Синтаксис вызова функции:

chroot(pathname);

где pathname - каталог, который впоследствии будет рассматриваться ядром в качестве корневого каталога для процесса. Выполняя функцию chroot, ядро следует тому же алгоритму, что и при смене текущего каталога. Оно запоминает индекс нового корня в пространстве процесса, снимая с индекса блокировку по завершении выполнения функции. Новый индекс становится логическим корнем файловой системы для процесса (и для всех порожденных им процессов) и это означает, что все пути, начинающиеся с корня ("/"), возьмут начало с данного индекса.

Возможно Вы получите целую серию сообщений об ошибках типа /dev/null permission denied. В этом случае проверьте Ваш статус монтирования. Наберите:

mount

Вывод будет содержать информацию обо всех смонтированных устройствах и разделах. Нас интересует строка:

mount /dev/hda4 on /mnt/hda4 type ext3 (rw,nosuid,nodev)

где "nodev" означает, что у Вас нет доступа к смонтированной файловой системе и к устройству /dev/null. А некоторые скрипты направляют свой вывод именно на устройство /dev/null. Чтобы решать эту проблему, Вы должны монтировать целевой раздел прежде, чем Вы сделаете chroot (это уже было описано выше), например так:

mount /dev/hda4 /mnt/hda4

Затем снова наберем mount и проверим, что изменилось:

mount /dev/hda4 on /mnt/hda4 type ext3 (rw)

Теперь все правильно. Новым корнем является каталог /mnt/hda4/knxsource/KNOPPIX.

Чтобы использовать Интернет, Вам нужно смонтировать файловую систему proc

mnt -t proc /proc proc

Теперь отредактируйте /etc/resolv.conf и добавте Ваш сервер nameserver

Измените также smb.conf для Вашей MS-группы, если Вы хотите поддержку smbd (обычно это MSHOME в случае Windows XP HomeEdition и WORKGROUP - в случае Windows 9x).

Проверьте Bашу связь с Интернет:

ping google.com

Теперь Вы можете изменить исходный материал дистрибутива KNOPPIX . Если Вы хотите что-то добавлять, то необходимо сначала удалить некоторые программы, для освобождения места на будущем CD (изначально дистрибутив занимает 700Мб, т.е. болванку целиком). Команда

apt-get remove program

удалит программу program .

Для освобождения места надо представлять, для чего нужна та или иная программа (точнее пакет) и какой объем она занимает. Команда

dpkg-awk "Status: .* installed$" -- Package Installed-Size| awk '{print $2}' | egrep -v '^$' | xargs -n2 echo | perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg

выдаст список пакетов, отсортированный по размеру. Если у Вас есть проблема с вышеуказанной командой сортировки , попробуйте использовать KPackage, который предоставит всю необходимую информацию для принятия решения. Использовать KPackage для удаления пакетов в данном случае нельзя, ведь мы изменяем не исходный дистрибутив, с которого загрузились, а каталог/mnt/hda4/knxsource/KNOPPIX, который в будущем станет основой нового компакт-диска.

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

deborphan

которая укажет пакеты, которые можно удалить, потому что они были нужны только для уже удаленных.

Установите нужные программы на освободившееся место.

Демонтируйте /proc после того, как закончили работу в Интернете - очень важно!

umount /proc

Нажмите CTRL+D чтобы выйти chrooted.

Примечаниe:

Есть конфигурационные файлы, которые, возможно, Вам захочется изменить. Практически все они находятся в каталоге /etc, и, если у Вас хватает опыта в таких делах, то с помощью текстового редактора Вы доведете систему до совершенства.

Для автоматического запуска нужных программы можно создать сценарий и поместить его в каталог /etc/rc5.d/... (программы будут загружаться перед стартом X Window).

Есть смысл обратить внимание также на следующие файлы:

/etc/init.d/knoppix-autoconfig,

/cdrom/KNOPPIX/background.gif - файл фона X Window,

также как существует файл floppyconfig, есть cdromconfig, который запустит knoppix.sh из каталога cdrom/KNOPPIX,

/etc/init.d/xsession/,

usr/local/lib/knoppix.gif - тоже файл фона.

И многие-многие другие файлы конфигурации...

Добавить возможность работы с кириллическими шрифтами в Open Office несложно. Можно использовать шрифты Валентина Филиппова с ftp://ftp.gnome.ru. Их нужно разархивировать и поместить в каталог /mnt/hda4/knxsource/KNOPPIX/usr/share/fonts, чтобы они в дальнейшем оказались в нужном месте на CD.

После старта нашего нового CD KNOPPIX (когда он будет готов), надо сделать эти шрифты известными системе (Центр управления->Системные->Установка шрифтов). А в Open Office просто нужно выбрать необходимый шрифт. Конечно, установку шрифтов в системе можно сделать и заранее, прописав все нужное в файлах конфигурации.

Мы завершили изменение дистрибутива и готовы прожигать CD. Перейдем к созданию образа будущего компакт диска - файла ISO.

Изготовим большой файл KNOPPIX из того материала, который изменяли. Этот файл будет сжат и помещен в каталог /mnt/hda4/knxmaster/KNOPPIX. Программа для создания образа - mkisofs. Процесс занимает много времени, возможно час или даже больше.

mkisofs -R -U -V "KNOPPIX.net filesystem" -P "KNOPPIX www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda4/knxsource/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda4/knxmaster/KNOPPIX/KNOPPIX

Пояснение:

- ключ R определяет создание образа по стандарту iso9660, расширение Rock Ridge, что позволяет обойти некоторые ограничения файловой системы iso9660, - такие как ограничение на размер собственно файловой системы (650 Мб), длин имен файлов (формат 8.3) и ряд других.

- ключ U позволяет использовать имена файлов по стандартам Unix систем (большие и маленькие буквы отличаются, возможно наличие более чем одной точки и т. д.)

- ключ V записывает метку. В данном случае это "Knoppix.net filesystem". Можно указать что-нибудь свое.

- ключ P записывает на диск строку длиной не более 128 символов, обычно данные о производителе или владельце прав. В данном случае это "www.knoppix.net".

При выполнении команды Вы получите сообщение об ошибке, потому что эти названия не полностью соответствуют стандартам ISO. Можете проигнорировать это.

- ключ hide-rr-moved переименовывает служебную директорию RR_MOVED, которая создается программой mkisofs для расширения Rock Ridge, в скрытую - .rr_moved. Она нужна для совместимости с MS DOS.

- ключ cache-inodes ищет жесткие ссылки и записывает соответствующий им файл только один раз. Это экономит место на CD.

- ключ no-bak не записывает на CD файлы резервных копий (признаки таких файлов - символы '~' , '#' или расширение '.bak'.

- ключ pad дописывает в файл образа пустую информацию для того, чтобы общее число секторов было кратно 16, как требует стандарт iso9660 .

Наш исходный материал расположен в каталоге /mnt/hda4/knxsource/KNOPPIX, он сжимается программой create_compressed_fs, которая запущена с приоритетом 5, результат записывается в каталог /mnt/hda4/knxmaster/KNOPPIX в виде одного большого файла KNOPPIX.

Если все прошло успешно, получим окончательный файл образа CD. Переходим в каталог /knxmaster:

cd /mnt/hda4/knxmaster

Воспользуемся той же программой mkisofs.

mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /some/where/knoppix.iso /mnt/hda4/knxmaster

( замените /some/where/ на Ваш каталог, где будет храниться файл образа, готовый для записи на CD)

Пояснение:

Появились новые ключи. Вот их смысл:

- ключ l позволяет использовать длинные имена файлов (до 31 символа).

- ключ r устанавливает для CD права: владелец всех файлов root, чтение для всех.

- ключ J создает каталог с именами файлов по спецификации Joliet. Нужен для совместимости с Windows.

- ключ v выводит информацию о ходе работы программы.

- ключ b определяет, что будущий компакт диск будет загрузочным в соответствии со стандартом "El Torito". Сразу после ключа указан путь к образу загрузчика.

- ключ c определяет имя загрузочного файла и путь к нему.

- ключ o задает имя будущего образа компакт диска.

Все сделано! Осталось записать CD.

При подготовке статьи был использован материал KNOPPIX Remastering HoTo.

Андрей Ракитин

Апрель 2003 г.