SliTaz GNU/Linux official and community documentation wiki.
.png

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ru:handbook:hacklivecd [2010/07/26 09:49]
lexeii created
ru:handbook:hacklivecd [2010/10/01 01:01] (current)
lexeii tiny edits
Line 1: Line 1:
 ======Модификация SliTaz Live CD====== ======Модификация SliTaz Live CD======
- 
- 
- 
  
  
 =====Введение===== =====Введение=====
- 
- 
  
 //​Модификация SliTaz Live CD//, или как получить удовольствие от ISO-образа Live CD. Обратите внимание,​ что вы также можете создать свою вариацию дистрибутива (flavor) при помощи //​Tazlito//​. Создать свой собственный загрузочный ISO-образ очень легко, что подробно описано ниже. При манипуляциях с ISO-образом можно добавлять новые файлы или изменять существующие,​ находящиеся на Live CD. Размер ISO-образа SliTaz менее 30 Мб, а на CD-R или CD-RW примерно 700 Мб места, так что есть где развернуться. Например,​ вы можете поместить туда свои фотографии и устроить слайдшоу при помощи //Gqview//. Модификация ISO-образа позволяет изменить конфигурационные файлы загрузчика,​ стартовую картинку и непосредственно сам GRUB. Также можно добавить утилиту //​Memtest86//​ для тестирования оперативной памяти. Теми же способами можно даже изменить файловую систему — правда,​ для этого потребуется чуть больше команд и времени. //​Модификация SliTaz Live CD//, или как получить удовольствие от ISO-образа Live CD. Обратите внимание,​ что вы также можете создать свою вариацию дистрибутива (flavor) при помощи //​Tazlito//​. Создать свой собственный загрузочный ISO-образ очень легко, что подробно описано ниже. При манипуляциях с ISO-образом можно добавлять новые файлы или изменять существующие,​ находящиеся на Live CD. Размер ISO-образа SliTaz менее 30 Мб, а на CD-R или CD-RW примерно 700 Мб места, так что есть где развернуться. Например,​ вы можете поместить туда свои фотографии и устроить слайдшоу при помощи //Gqview//. Модификация ISO-образа позволяет изменить конфигурационные файлы загрузчика,​ стартовую картинку и непосредственно сам GRUB. Также можно добавить утилиту //​Memtest86//​ для тестирования оперативной памяти. Теми же способами можно даже изменить файловую систему — правда,​ для этого потребуется чуть больше команд и времени.
- 
- 
- 
  
  
 =====Начальная подготовка===== =====Начальная подготовка=====
- 
- 
  
 Для начала определим место для проведения наших экспериментов,​ создав папку и несколько подпапок для файлов. Изменять ISO-образ можно как из самого SliTaz, так и из любого другого дистрибутива Linux, например,​ Debian, Fedora, PCLinuxOS и др. Если вы загружаете SliTaz в режиме Live CD, при котором можно извлечь диск после загрузки SliTaz в память,​ советуем использовать флешку для проведения всех действий,​ иначе все изменения пропадут при выключении компьютера. Прежде всего, создадим папку внутри ///​home/​slitaz//​ в нашей файловой системе. В ней будем хранить исходный ISO-образ и создадим папку src/, куда будем класть архивы с исходниками нужных программ. Все действия можно осуществлять как в командной строке Х-терминала (Xterm), так и в текстовом режиме,​ в терминале Linux. Советуем запускать все команды из-под root во избежание проблем с правами доступа. Чтобы перейти к учетной записи root (администратора),​ создадим папку ///​home/​slitaz///​ и выполним команды:​ Для начала определим место для проведения наших экспериментов,​ создав папку и несколько подпапок для файлов. Изменять ISO-образ можно как из самого SliTaz, так и из любого другого дистрибутива Linux, например,​ Debian, Fedora, PCLinuxOS и др. Если вы загружаете SliTaz в режиме Live CD, при котором можно извлечь диск после загрузки SliTaz в память,​ советуем использовать флешку для проведения всех действий,​ иначе все изменения пропадут при выключении компьютера. Прежде всего, создадим папку внутри ///​home/​slitaz//​ в нашей файловой системе. В ней будем хранить исходный ISO-образ и создадим папку src/, куда будем класть архивы с исходниками нужных программ. Все действия можно осуществлять как в командной строке Х-терминала (Xterm), так и в текстовом режиме,​ в терминале Linux. Советуем запускать все команды из-под root во избежание проблем с правами доступа. Чтобы перейти к учетной записи root (администратора),​ создадим папку ///​home/​slitaz///​ и выполним команды:​
- 
- 
  
 <​code>​ <​code>​
- 
 $ su $ su
- 
  # mkdir -p /​home/​slitaz/​hacked  # mkdir -p /​home/​slitaz/​hacked
- 
 (# mkdir -p /​home/​slitaz/​src) (# mkdir -p /​home/​slitaz/​src)
- 
  # cd /​home/​slitaz/​hacked  # cd /​home/​slitaz/​hacked
- 
 </​code>​ </​code>​
- 
- 
- 
  
  
 ===Извлекаем содержимое ISO-образа=== ===Извлекаем содержимое ISO-образа===
- 
- 
  
 Теперь,​ когда мы в рабочей папке, мы должны создать папку, которая будет представлять содержимое корневого каталога CD-ROM, и извлечь файлы из образа,​ а именно — ядро Linux (bzImage), сжатую файловую систему (rootfs.gz) и файлы загрузчика isolinux. Извлечь эти файлы можно двумя способами — взять с самого диска или из ISO-образа. Чтобы создать папку для корневого каталога CD rootcd и скопировать файлы с CD-ROM устройства ///​dev/​cdrom//,​ которое смонтировано как ///​media/​cdrom//,​ выполним команды:​ Теперь,​ когда мы в рабочей папке, мы должны создать папку, которая будет представлять содержимое корневого каталога CD-ROM, и извлечь файлы из образа,​ а именно — ядро Linux (bzImage), сжатую файловую систему (rootfs.gz) и файлы загрузчика isolinux. Извлечь эти файлы можно двумя способами — взять с самого диска или из ISO-образа. Чтобы создать папку для корневого каталога CD rootcd и скопировать файлы с CD-ROM устройства ///​dev/​cdrom//,​ которое смонтировано как ///​media/​cdrom//,​ выполним команды:​
- 
- 
  
 <​code>​ <​code>​
- 
 # mount -t iso9660 /dev/cdrom /​media/​cdrom # mount -t iso9660 /dev/cdrom /​media/​cdrom
- 
 # mkdir rootcd # mkdir rootcd
- 
 # cp -a /​media/​cdrom/​* rootcd # cp -a /​media/​cdrom/​* rootcd
- 
 </​code>​ </​code>​
- 
- 
  
 Чтобы смонтировать образ во временную папку ///​tmp/​loop//​ (допустим,​ он называется slitaz-cooking.iso),​ создать папку //rootcd//, скопировать все файлы и отмонтировать образ, введем:​ Чтобы смонтировать образ во временную папку ///​tmp/​loop//​ (допустим,​ он называется slitaz-cooking.iso),​ создать папку //rootcd//, скопировать все файлы и отмонтировать образ, введем:​
- 
- 
  
 <​code>​ <​code>​
- 
 # mkdir /tmp/loop # mkdir /tmp/loop
- 
 # mount -o loop slitaz-cooking.iso /tmp/loop # mount -o loop slitaz-cooking.iso /tmp/loop
- 
 # mkdir rootcd # mkdir rootcd
- 
 # cp -a /tmp/loop/* rootcd # cp -a /tmp/loop/* rootcd
- 
 # umount /tmp/loop # umount /tmp/loop
- 
 </​code>​ </​code>​
- 
- 
  
 Готово — теперь все необходимые файлы находятся в папке rootcd/. Чтобы в этом убедиться,​ выведем весь список файлов командой ls: Готово — теперь все необходимые файлы находятся в папке rootcd/. Чтобы в этом убедиться,​ выведем весь список файлов командой ls:
- 
- 
  
 <​code>#​ ls -R rootcd</​code>​ <​code>#​ ls -R rootcd</​code>​
- 
- 
- 
  
  
 =====Добавляем файлы в ISO-образ===== =====Добавляем файлы в ISO-образ=====
- 
- 
  
 Добавить файлы и папки в образ — значит скопировать их в папку rootcd и собрать новый образ. Эти файлы можно поместить в одну или две папки, созданные в корневом каталоге CD. Как только образ будет записан на CD-R или CD-RW, SliTaz можно будет использовать по-прежнему,​ смонтировав как ///​media/​cdrom//​ и работая с файлами с помощью emelFM2, Clex или командной строки. Ваши данные будут доступны из любой системы Linux, BSD или даже Windows. Добавить файлы и папки в образ — значит скопировать их в папку rootcd и собрать новый образ. Эти файлы можно поместить в одну или две папки, созданные в корневом каталоге CD. Как только образ будет записан на CD-R или CD-RW, SliTaz можно будет использовать по-прежнему,​ смонтировав как ///​media/​cdrom//​ и работая с файлами с помощью emelFM2, Clex или командной строки. Ваши данные будут доступны из любой системы Linux, BSD или даже Windows.
- 
- 
- 
  
  
 ===Создадим папки и скопируем данные=== ===Создадим папки и скопируем данные===
- 
- 
  
 Чтобы создать и скопировать файлы, можно начать с командной строки,​ а затем перейти в графический режим как пользователь по умолчанию. Создадим папку //images// от имени root и изменим права доступа,​ предоставим всем пользователям разрешение на запись:​ Чтобы создать и скопировать файлы, можно начать с командной строки,​ а затем перейти в графический режим как пользователь по умолчанию. Создадим папку //images// от имени root и изменим права доступа,​ предоставим всем пользователям разрешение на запись:​
- 
- 
  
 <​code>​ <​code>​
- 
 # mkdir rootcd/​images # mkdir rootcd/​images
- 
 # chmod 777 rootcd/​images # chmod 777 rootcd/​images
- 
 </​code>​ </​code>​
- 
- 
  
 Теперь,​ когда существует папка, в которой любой пользователь может размещать файлы, можем начать заполнять ее и в конце создадим загрузочный ISO-образ,​ как показано ниже. Теперь,​ когда существует папка, в которой любой пользователь может размещать файлы, можем начать заполнять ее и в конце создадим загрузочный ISO-образ,​ как показано ниже.
- 
- 
- 
  
  
 =====Изменяем конфигурацию isolinux===== =====Изменяем конфигурацию isolinux=====
- 
- 
  
 Изменение конфигурации isolinux позволяет создавать новые пункты загрузочного меню с другими параметрами загрузки. Например,​ можно запускать SliTaz с русской локализацией и раскладкой клавиатуры опциями //lang=ru// и //​kmap=ru//​. В плане дизайна можно изменить загрузочную картинку. Изменение конфигурации isolinux позволяет создавать новые пункты загрузочного меню с другими параметрами загрузки. Например,​ можно запускать SliTaz с русской локализацией и раскладкой клавиатуры опциями //lang=ru// и //​kmap=ru//​. В плане дизайна можно изменить загрузочную картинку.
- 
- 
  
 Приложение isolinux управляет загрузкой с Live CD и также входит в состав пакета Syslinux. Из исходного файла Syslinux можно запускать несколько приложений,​ назначение которых — запустить систему Linux. Двоичный файл //​isolinux.bin//​ контролирует непосредственно процесс загрузки. Сам же загрузчик простой и быстрый,​ и его можно легко настраивать в графическом режиме или через текстовый редактор. В синтаксисе конфигурационного файла //​isolinux.cfg//​ совсем несложно разобраться — чтобы добавить новые записи,​ просто копируйте и вставляйте записи исходного файла. Для изменения файла в графическом режиме с помощью Leafpad введем:​ Приложение isolinux управляет загрузкой с Live CD и также входит в состав пакета Syslinux. Из исходного файла Syslinux можно запускать несколько приложений,​ назначение которых — запустить систему Linux. Двоичный файл //​isolinux.bin//​ контролирует непосредственно процесс загрузки. Сам же загрузчик простой и быстрый,​ и его можно легко настраивать в графическом режиме или через текстовый редактор. В синтаксисе конфигурационного файла //​isolinux.cfg//​ совсем несложно разобраться — чтобы добавить новые записи,​ просто копируйте и вставляйте записи исходного файла. Для изменения файла в графическом режиме с помощью Leafpad введем:​
- 
- 
  
 <​code>#​ leafpad rootcd/​boot/​isolinux/​isolinux.cfg &</​code>​ <​code>#​ leafpad rootcd/​boot/​isolinux/​isolinux.cfg &</​code>​
- 
- 
- 
  
  
 ===Конфигурационный файл isolinux.cfg=== ===Конфигурационный файл isolinux.cfg===
- 
- 
  
 В начале файла //​isolinux.cfg//,​ находящемся на стандартном Live CD SliTaz, следует параметр **display**,​ который управляет выводом на экран текстового файла или же файла под названием //​isolinux.msg//​. Последний использует 24 символа ASCII и загрузочную картинку. В начале файла //​isolinux.cfg//,​ находящемся на стандартном Live CD SliTaz, следует параметр **display**,​ который управляет выводом на экран текстового файла или же файла под названием //​isolinux.msg//​. Последний использует 24 символа ASCII и загрузочную картинку.
- 
- 
  
 Параметр **default** определяет,​ какой пункт меню будет загружен по умолчанию по истечении отсчета времени (timeout). Параметр **default** определяет,​ какой пункт меню будет загружен по умолчанию по истечении отсчета времени (timeout).
- 
- 
  
 Параметр **timeout** содержит время в секундах до запуска системы;​ можно поставить 0 для мгновенной загрузки или указать,​ скажем,​ 80 сек. Параметр **timeout** содержит время в секундах до запуска системы;​ можно поставить 0 для мгновенной загрузки или указать,​ скажем,​ 80 сек.
- 
- 
  
 Наконец,​ присвоив параметру **prompt** значение 0, можно отключить приглашение //boot://. Наконец,​ присвоив параметру **prompt** значение 0, можно отключить приглашение //boot://.
  
 +Клавиши F1, F2 и F3 выводят файлы справки,​ а F4 — текстовый файл (в нашем случае — //​display.txt//​). Пример конфигурации:​
  
- +<file>
-Клавиши F1, F2 и F3 выводят файлы справки,​ а F4 — текстовый файл (в нашем случае — //​display.txt//​):​ +
- +
- +
- +
-<code> +
 display isolinux.msg display isolinux.msg
- 
 default slitaz default slitaz
- 
 label slitaz label slitaz
- 
       kernel /​boot/​bzImage       kernel /​boot/​bzImage
- 
       append initrd=/​boot/​rootfs.gz rw root=/​dev/​null vga=788       append initrd=/​boot/​rootfs.gz rw root=/​dev/​null vga=788
- 
 implicit 0 implicit 0
- 
 prompt 1 prompt 1
- 
 timeout 80 timeout 80
- 
 F1 help.txt F1 help.txt
- 
 F2 options.txt F2 options.txt
- 
 F3 isolinux.msg F3 isolinux.msg
- 
 F4 display.txt F4 display.txt
- +</file>
-</code> +
- +
  
 К примеру,​ создадим пункт меню //​slitaz-ru//,​ в котором укажем язык системы — русский,​ а раскладку клавиатуры — английскую:​ К примеру,​ создадим пункт меню //​slitaz-ru//,​ в котором укажем язык системы — русский,​ а раскладку клавиатуры — английскую:​
  
- +<file>
- +
-<code> +
 label slitaz-ru label slitaz-ru
- 
       kernel /​boot/​bzImage       kernel /​boot/​bzImage
- 
       append initrd=/​boot/​rootfs.gz rw root=/​dev/​null lang=ru kmap=en       append initrd=/​boot/​rootfs.gz rw root=/​dev/​null lang=ru kmap=en
- +</file>
-</code> +
- +
  
 Закончив править файл конфигурации,​ не забудьте сохранить изменения и создать новый загрузочный ISO-образ вместе с isolinux. Закончив править файл конфигурации,​ не забудьте сохранить изменения и создать новый загрузочный ISO-образ вместе с isolinux.
- 
- 
- 
  
  
 =====Устанавливаем и используем Memtest86===== =====Устанавливаем и используем Memtest86=====
- 
- 
  
 Приложение //​memtest86//​ (размером 92 Кб) служит для тестирования оперативной памяти (RAM). Memtest86 проводит серьезные тесты, которые в случае ошибок непосредственно указывают на их источник в аппаратуре. Эта программа будет находиться в папке //boot//, ее можно будет запустить,​ набрав //memtest// в строке приглашения isolinux. Приложение //​memtest86//​ (размером 92 Кб) служит для тестирования оперативной памяти (RAM). Memtest86 проводит серьезные тесты, которые в случае ошибок непосредственно указывают на их источник в аппаратуре. Эта программа будет находиться в папке //boot//, ее можно будет запустить,​ набрав //memtest// в строке приглашения isolinux.
- 
- 
  
 Для установки memtest86 перейдем в папку ///​home/​slitaz/​src//​ (если такой папки нет: //mkdir -p /​home/​slitaz/​src//​),​ скачаем и распакуем архив с исходниками программы:​ Для установки memtest86 перейдем в папку ///​home/​slitaz/​src//​ (если такой папки нет: //mkdir -p /​home/​slitaz/​src//​),​ скачаем и распакуем архив с исходниками программы:​
- 
- 
  
 <​code>​ <​code>​
- 
 # cd /​home/​slitaz/​src # cd /​home/​slitaz/​src
- 
 # wget http://​www.memtest86.com/​memtest86-3.3.tar.gz # wget http://​www.memtest86.com/​memtest86-3.3.tar.gz
- 
 # tar xzf memtest86-3.3.tar.gz # tar xzf memtest86-3.3.tar.gz
- 
 </​code>​ </​code>​
- 
- 
  
 После распаковки можно будет изучить файл README, содержащий информацию о программе. Теперь установим ее в наш будущий ISO-образ. Учитывая то, что мы собираем образ в папке ///​home/​slitaz/​hacked//,​ скопируем прекомпилированный бинарник в папку //boot// корневого каталога будущего CD: После распаковки можно будет изучить файл README, содержащий информацию о программе. Теперь установим ее в наш будущий ISO-образ. Учитывая то, что мы собираем образ в папке ///​home/​slitaz/​hacked//,​ скопируем прекомпилированный бинарник в папку //boot// корневого каталога будущего CD:
- 
- 
  
 <​code>​ <​code>​
- 
 # cp memtest86-3.3/​precomp.bin \ # cp memtest86-3.3/​precomp.bin \
- 
   /​home/​slitaz/​hacked/​rootcd/​boot/​memtest   /​home/​slitaz/​hacked/​rootcd/​boot/​memtest
- 
 </​code>​ </​code>​
- 
- 
  
 Теперь же, когда бинарник включен в состав CD, добавим пункт меню для memtest86 в конфигурационный файл isolinux и создадим загрузочный ISO. Перейдем в папку ///​home/​slitaz/​hacked//​ и отредактируем //​isolinux.cfg//​ в Leafpad: Теперь же, когда бинарник включен в состав CD, добавим пункт меню для memtest86 в конфигурационный файл isolinux и создадим загрузочный ISO. Перейдем в папку ///​home/​slitaz/​hacked//​ и отредактируем //​isolinux.cfg//​ в Leafpad:
- 
- 
  
 <​code>​ <​code>​
- 
 # cd /​home/​slitaz/​hacked # cd /​home/​slitaz/​hacked
- 
 # leafpad rootcd/​boot/​isolinux/​isolinux.cfg & # leafpad rootcd/​boot/​isolinux/​isolinux.cfg &
- 
 </​code>​ </​code>​
  
-<​code>​+Добавьте следующие строки:​
  
 +<​file>​
 label memtest label memtest
- 
       kernel /​boot/​memtest       kernel /​boot/​memtest
- +</file>
-</code> +
- +
  
 Официальный сайт [[http://​www.memtest86.com/​|Memtest86]]. Официальный сайт [[http://​www.memtest86.com/​|Memtest86]].
- 
- 
- 
  
  
 =====Изменяем корневую систему===== =====Изменяем корневую систему=====
- 
- 
  
 Модифицируя корневую систему,​ можно, к примеру,​ добавить нового пользователя и придумать ему пароль,​ изменить графические объекты или прописать те или иные команды в автозапуск. Для этого необходимо:​ Модифицируя корневую систему,​ можно, к примеру,​ добавить нового пользователя и придумать ему пароль,​ изменить графические объекты или прописать те или иные команды в автозапуск. Для этого необходимо:​
- 
- 
  
   - распаковать файл сжатой файловой системы //​rootfs.gz//;​   - распаковать файл сжатой файловой системы //​rootfs.gz//;​
- 
   - внести необходимые изменения;​   - внести необходимые изменения;​
- 
   - пересобрать этот файл;   - пересобрать этот файл;
- 
   - создать новый ISO.   - создать новый ISO.
- 
- 
  
 Предположим,​ мы уже создали рабочую папку ///​home/​slitaz/​hacked//​. Тогда создадим в ней еще одну папку, куда будем распаковывать содержимое //​rootfs.gz//,​ и назовем ее //rootfs// для удобства. Скопируем в нее //​rootfs.gz//​ из папки //​rootcd/​boot//:​ Предположим,​ мы уже создали рабочую папку ///​home/​slitaz/​hacked//​. Тогда создадим в ней еще одну папку, куда будем распаковывать содержимое //​rootfs.gz//,​ и назовем ее //rootfs// для удобства. Скопируем в нее //​rootfs.gz//​ из папки //​rootcd/​boot//:​
- 
- 
  
 <​code>​ <​code>​
- 
 # cd /​home/​slitaz/​hacked # cd /​home/​slitaz/​hacked
- 
 # mkdir rootfs # mkdir rootfs
- 
 # cp rootcd/​boot/​rootfs.gz rootfs # cp rootcd/​boot/​rootfs.gz rootfs
- 
 </​code>​ </​code>​
- 
- 
  
 Итак, теперь у нас есть сжатый вариант системы,​ распакуем его при помощи cpio. С технической точки зрения //​rootfs.gz//​ является cpio-файлом,​ сжатым с использованием алгоритма lzma или gzip. Ядро Linux распознаёт его как образ файловой системы,​ загружаемой в оперативную память (initramfs). При запуске системы ядро загружается в память,​ распаковывает образ системы и выполняет загрузочные скрипты. Итак, теперь у нас есть сжатый вариант системы,​ распакуем его при помощи cpio. С технической точки зрения //​rootfs.gz//​ является cpio-файлом,​ сжатым с использованием алгоритма lzma или gzip. Ядро Linux распознаёт его как образ файловой системы,​ загружаемой в оперативную память (initramfs). При запуске системы ядро загружается в память,​ распаковывает образ системы и выполняет загрузочные скрипты.
- 
- 
  
 Чтобы распаковать файловую систему в папку //rootfs// и удалить сам архив (помните,​ что вы можете копировать приведенные здесь команды и вставлять их в терминал),​ выполним команды:​ Чтобы распаковать файловую систему в папку //rootfs// и удалить сам архив (помните,​ что вы можете копировать приведенные здесь команды и вставлять их в терминал),​ выполним команды:​
- 
- 
  
 <​code>​ <​code>​
- 
 # cd rootfs # cd rootfs
- 
 # (zcat rootfs.gz 2>/​dev/​null || lzma d rootfs.gz -so) | cpio -id # (zcat rootfs.gz 2>/​dev/​null || lzma d rootfs.gz -so) | cpio -id
- 
 # rm rootfs rootfs.gz # rm rootfs rootfs.gz
- 
 </​code>​ </​code>​
- 
- 
  
 Теперь можно вносить изменения в систему. Если понадобится вывести список файлов полученной корневой системы,​ это можно сделать командой //ls//. Теперь можно вносить изменения в систему. Если понадобится вывести список файлов полученной корневой системы,​ это можно сделать командой //ls//.
- 
- 
- 
  
  
 ===Вносим изменения в произвольный файл=== ===Вносим изменения в произвольный файл===
- 
- 
  
 Чтобы придерживаться принципа простоты и помочь вам понять основы,​ мы изменим файл скрипта,​ чтобы автоматически выполнить некоторые команды при запуске системы с CD. Возьмем файл ///​etc/​init.d/​local.sh//​ — откройте его в своем любимом текстовом редакторе,​ например,​ в Geany: Чтобы придерживаться принципа простоты и помочь вам понять основы,​ мы изменим файл скрипта,​ чтобы автоматически выполнить некоторые команды при запуске системы с CD. Возьмем файл ///​etc/​init.d/​local.sh//​ — откройте его в своем любимом текстовом редакторе,​ например,​ в Geany:
- 
- 
  
 <​code>#​ geany /​etc/​init.d/​local.sh &</​code>​ <​code>#​ geany /​etc/​init.d/​local.sh &</​code>​
- 
- 
  
 Добавим две команды,​ первая выводит строку с сообщением,​ а вторая останавливает систему на 4 секунды:​ Добавим две команды,​ первая выводит строку с сообщением,​ а вторая останавливает систему на 4 секунды:​
  
- +<file>
- +
-<code> +
 echo "* Hacked SliTaz version booting..."​ echo "* Hacked SliTaz version booting..."​
- 
 sleep 4 sleep 4
- +</file>
-</code> +
- +
- +
  
  
 ===Заново собираем образ сжатой файловой системы=== ===Заново собираем образ сжатой файловой системы===
- 
- 
  
 Произведя все необходимые изменения,​ соберем образ файловой системы,​ используя команды //find// для поиска файлов,​ //cpio// для архивации,​ //lzma// и //gzip// для сжатия и вертикальную черту **|**, чтобы свести все команды воедино. Запустим эти команды из папки //rootfs// и создадим файл //​rootfs.gz//​ в папке уровнем выше: Произведя все необходимые изменения,​ соберем образ файловой системы,​ используя команды //find// для поиска файлов,​ //cpio// для архивации,​ //lzma// и //gzip// для сжатия и вертикальную черту **|**, чтобы свести все команды воедино. Запустим эти команды из папки //rootfs// и создадим файл //​rootfs.gz//​ в папке уровнем выше:
- 
- 
  
 <​code>#​ find . -print | cpio -o -H newc | lzma e -si -so > ../​rootfs.gz</​code>​ <​code>#​ find . -print | cpio -o -H newc | lzma e -si -so > ../​rootfs.gz</​code>​
- 
- 
  
 Или через gzip: Или через gzip:
- 
- 
  
 <​code>#​ find . -print | cpio -o -H newc | gzip -9 > ../​rootfs.gz</​code>​ <​code>#​ find . -print | cpio -o -H newc | gzip -9 > ../​rootfs.gz</​code>​
- 
- 
  
 Наконец,​ скопируем полученный файл в папку //​rootcd/​boot//​ и соберем загрузочный ISO-образ. Для проведения первой операции выполним:​ Наконец,​ скопируем полученный файл в папку //​rootcd/​boot//​ и соберем загрузочный ISO-образ. Для проведения первой операции выполним:​
- 
- 
  
 <​code>​ <​code>​
- 
 # cd ../ # cd ../
- 
 # cp -a rootfs.gz rootcd/boot # cp -a rootfs.gz rootcd/boot
- 
 </​code>​ </​code>​
- 
- 
- 
  
  
 =====Создаем загрузочный ISO-образ===== =====Создаем загрузочный ISO-образ=====
- 
- 
  
 Следующие команды создают образ с загрузчиком //​isolinux//,​ используя приложение //​genisoimage//​ с несколькими параметрами. Вначале указываем имя образа укажем вначале,​ после ключа -o, а корневой каталог CD (//​rootcd//​) — в конце, после ключа //​-boot-info-table//:​ Следующие команды создают образ с загрузчиком //​isolinux//,​ используя приложение //​genisoimage//​ с несколькими параметрами. Вначале указываем имя образа укажем вначале,​ после ключа -o, а корневой каталог CD (//​rootcd//​) — в конце, после ключа //​-boot-info-table//:​
- 
- 
  
 <​code>​ <​code>​
- 
 # genisoimage -R -o slitaz-hacked.iso -b \ boot/​isolinux/​isolinux.bin \ # genisoimage -R -o slitaz-hacked.iso -b \ boot/​isolinux/​isolinux.bin \
- 
   -c boot/​isolinux/​boot.cat \ -no-emul-boot -boot-load-size 4 \   -c boot/​isolinux/​boot.cat \ -no-emul-boot -boot-load-size 4 \
- +  ​-V "​SliTaz-Hacked"​ -input-charset iso8859-1 ​
-  ​-V "​SliTaz-Hacked"​ -input-charset iso8859-1 -boot-info-table rootcd +  ​-boot-info-table rootcd
 </​code>​ </​code>​
- 
- 
  
 Если вы хотите проверить содержимое образа перед прожигом,​ смонтируйте его через loop и выведите список файлов. В SliTaz и большинстве Linux-систем записать образ в формате ISO на диск можно утилитой //wodim//. Если вы хотите проверить содержимое образа перед прожигом,​ смонтируйте его через loop и выведите список файлов. В SliTaz и большинстве Linux-систем записать образ в формате ISO на диск можно утилитой //wodim//.
- 
- 
- 
  
  
 ===Создаем ISO при помощи скрипта=== ===Создаем ISO при помощи скрипта===
- 
- 
  
 Если у вас много творческих планов и вы хотите создать множество ISO-образов,​ вам, вероятно,​ захочется автоматизировать этот процесс,​ написав простой скрипт. Такой скрипт можно написать прямо в командной строке или в графическом режиме,​ не забудьте лишь сделать его исполнимым. К примеру,​ создать скрипт можно командой //cat//; EOF здесь означает End Of File — конец файла. Создадим скрипт //​gen_hacked_iso.sh//,​ включающий две переменные — имя образа и путь к папке rootcd: Если у вас много творческих планов и вы хотите создать множество ISO-образов,​ вам, вероятно,​ захочется автоматизировать этот процесс,​ написав простой скрипт. Такой скрипт можно написать прямо в командной строке или в графическом режиме,​ не забудьте лишь сделать его исполнимым. К примеру,​ создать скрипт можно командой //cat//; EOF здесь означает End Of File — конец файла. Создадим скрипт //​gen_hacked_iso.sh//,​ включающий две переменные — имя образа и путь к папке rootcd:
- 
- 
  
 <​code>​ <​code>​
- 
 # cat > gen_hacked_iso.sh << "​EOF"​ # cat > gen_hacked_iso.sh << "​EOF"​
- 
- 
  
 #!/bin/sh #!/bin/sh
- 
 # Создание измененного ISO-образа. # Создание измененного ISO-образа.
- 
 # #
- 
 ISO_NAME="​slitaz-hacked.iso"​ ISO_NAME="​slitaz-hacked.iso"​
- 
 ROOTCD="​rootcd"​ ROOTCD="​rootcd"​
- 
- 
  
 genisoimage -R -o $ISO_NAME -b boot/​isolinux/​isolinux.bin \ genisoimage -R -o $ISO_NAME -b boot/​isolinux/​isolinux.bin \
- 
    -c boot/​isolinux/​boot.cat -no-emul-boot -boot-load-size 4 \    -c boot/​isolinux/​boot.cat -no-emul-boot -boot-load-size 4 \
- +   -V "​SliTaz-Hacked"​ -input-charset iso8859-1 ​
-   -V "​SliTaz-Hacked"​ -input-charset iso8859-1 -boot-info-table $ROOTCD +   -boot-info-table $ROOTCD
- +
  
 EOF EOF
- 
 </​code>​ </​code>​
- 
- 
  
 Теперь делаем скрипт исполняемым и запускаем:​ Теперь делаем скрипт исполняемым и запускаем:​
- 
- 
  
 <​code>​ <​code>​
- 
 # chmod +x gen_hacked_iso.sh # chmod +x gen_hacked_iso.sh
- 
 # ./​gen_hacked_iso.sh # ./​gen_hacked_iso.sh
- 
 </​code>​ </​code>​
  
 +----
 +Статью перевел [[http://​forum.slitaz.org/​index.php/​profile/​1273/​Cyril|Cyril]]
  
 
ru/handbook/hacklivecd.1280130565.txt.gz · Last modified: 2010/07/26 09:49 by lexeii