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
Last revision Both sides next revision
ru:handbook:hacklivecd [2010/07/26 09:49]
lexeii created
ru:handbook:hacklivecd [2010/08/16 23:23]
lexeii translator
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//​):​ Клавиши F1, F2 и F3 выводят файлы справки,​ а F4 — текстовый файл (в нашем случае — //​display.txt//​):​
  
- +<file>
- +
-<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>​
- +<file>
-<code> +
 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.txt · Last modified: 2010/10/01 01:01 by lexeii