Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

setups:howto-squashfs [2017/12/17 10:04] (текущий)
Строка 1: Строка 1:
 +======Что такое SquashFS?======
 +  *[[http://ibiblio.org/gferg/ldp/css/SquashFS-HOWTO/index.html|Оригинал статьи. Revision 1.0]]
 +  *[[http://www.tldp.org/HOWTO/html_single/SquashFS-HOWTO|Свежая версия. Revision 1.9]]
  
 +Это HOWTO описывает использование **SquashFS** --- высоко сжатой файловой системы только-для-чтения для Linux, которая предназначена для использования в очень маленьких и встроенных системах, где хотелось бы использовать сжатую файловую систему. С этим документом вы узнаете как подготовить Linux-ядро для SquashFS, создать сжатую файловую систему и успешно пользоваться ей. 
 +
 +
 +=====Вступление=====
 +
 +Когда создаются маленькие и встроенные Linux-системы, каждый байт запоминающего устройства (дискета, флэш-карта и т. д.) очень важен, поэтому сжатие используется везде, где возможно. Также, сжатые файловые системы часто используются для целей архивирования. Для огромных общих архивов, так же, как и для персональных медиа-архивов, это насущно необходимо.
 +
 +ShquashFS выводит всё это на новый уровень. Это файловая система только для чтения, которая позволяет вам сжимать целые файловые системы или отдельные директории, переписывать их в другие устройства/разделы или в обычные файлы, а затем устанавливать их непосредственно (если это устройство) или использовать закольцовку устройства (в случае с файлом). Модульный, компактный системный дизайн SquashFS блестящ. Для целей архивирования SquashFS предоставляет вам гораздо большую гибкость и скорость исполнения, чем архивы ''.tar.gz''.
 +
 +В выпуск SquashFS исходные тексты Linux-ядра (что делает возможным чтение Squash на вашем ядре), а также вспомогательная программа mksquashfs, которая создает сжатые файловые системы (в файле или в блочном устройстве).
 +
 +Последнее дерево выпуска SquashFS 2.x, предыдущая была 1.x. Этот документ описывает оба эти выпуска с соответствующими пометками. Например, если какое-либо свойство или параметр различны в этих выпусках, это будет обозначено как: новое значение (2.х) или старое значение (1.х).
 +
 +
 +=====Обзор SquashFS=====
 +
 +  * Данные, связующие узлы и директории сжаты.
 +  * Squashfs сохраняет полностью идентификаторы пользователя/группы (''uin/gids'') (32 бита) и время создания файла.
 +  * Поддерживаются файлы до 2<sup>32</sup> байт. Файловые системы могут быть до 2<sup>32</sup> байт.
 +  * Данные узлов и директорий очень сильно сжаты и упакованы в байтовых пределах. Каждый сжатый узел имеет в среднем размер 8 байт (конкретная длина зависит от типа файла (то есть обычный файл, директория, символьная ссылка и блочные/символьные узлы устройства имеют различные размеры).
 +  * Squashfs может использовать блоки размером до 64 Кб (размер по умолчанию 64 Кб). Использование 64-килобайтовых блоков позволяет достигать большей степени сжатия, чем обычный 4-килобайтовый размер блока.
 +  * SquashFS привносит концепцию фрагментарных блоков: возможность объединять множественные файлы, по размеру меньшие блока, в отдельный блок, достигая больших степеней сжатия.
 +  * Копии файлов обнаруживаются и удаляются.
 +  * Поддерживаются архитектуры как big-endian, так и little-endian.
 +  * SquashFS может собирать файловые системы, созданные на машинах с различной последовательностью байтов.
 +
 +
 +=====Разъяснения=====
 +
 +Теперь давайте убедимся, что любые последующие обсуждения вам будем проще понять. Процедура запуска работы SquashFS, в целом, состоит из следующих шагов:
 +
 +  * Патч и рекомпиляция Linux-ядра для возможности поддержки SquashFS
 +  * Компиляция mksquashfstool
 +  * Создание сжатой файловой системы с mksquashfs
 +  * Проверка: установка squashfs в место временного назначения
 +  * Модифицирование стартовых скриптов ''/etc/fstab'' вашей целевой Linux-системы для установления новой сжатой файловой системы, когда это необходимо
 +
 +
 +======Приготовления для SquashFS======
 +
 +
 +=====Приобретение SquashFS=====
 +
 +[[http://squashfs.sourceforge.net/|Домашняя страница SquashFS]] содержит новости о последнем выпуске и лог изменений, а также общую информацию о SquashFS. Вы можете заполучить последнюю версию на странице проекта SquashFS SourceForge.
 +
 +
 +=====Подготовка совместимого со SquashFS ядра=====
 +
 +Для того, чтобы читать SquashFS, вам необходимо, чтобы она поддерживалась вашим ядром --- точно так же, как если бы это были файловые системы reiserfs или ext3. Вы должны убедиться в наличии соответствующего пaтча для вашей версии ядра --- он должен быть расположен в субдиректории ''linux-2.x.y'' в дереве исходных текстов SquashFS. Помните также, что в большинстве случаев вам понадобится чистое (оригинальное) Linux-ядро от www.kernel.org. Если ваше ядро от продавца-дистрибьютера, оно может быть уже пропатчено, поэтому с патчем SquashFS скорее всего не будет работать, поскольку патчи SquashFS сделаны для оригинальных Linux-ядер.
 +
 +
 +===="Склейка" исходных текстов ядра====
 +
 +С исходниками ядра и наличием надлежащего патча все, что вам нужно делать это (мы исходим из того, что у вас имеются исходные тексты ядра Linux в ''/usr/src/linux'' и ''xnj'' и исходные тексты ''SquashFS'' в ''/usr/src/squashfs''):
 +
 +Внести изменения в директорию исходников SquashFS и скопировать пaтч ядра (мы исходим из того, что он называется ''squashfs-patch'') в ''/usr/src/linux''.
 +
 +<code bash>
 +cd /usr/src/squashfs
 +cp linux-2.x.y/squashfs-patch /usr/src/linux
 +</code>
 +
 +Идем в директорию исходных текстов Linux ''/usr/src/linux'':
 +
 +<code bash>
 +cd /usr/src/linux
 +</code>
 +
 +Внимание: помните, что мы не будем покидать эту директорию в течение всех последующих связанных с ядром процедур и все дорожки будут даваться относительно ''/usr/src/linux''.
 +
 +Теперь "склеиваем" исходные тексты с помощью пaтча SquashFS:
 +
 +<code bash>
 +patch -p1 < squashfs-patch
 +</code>
 +
 +
 +====Компиляция ядра 2.6.x====
 +
 +чистим и подготовим ядро программы:
 +
 +<code bash>
 +make distclean
 +make mrproper
 +</code>
 +
 +Выберем конфигурацию ядра используя ваш любимый метод (''config''/''menuconfig''/''xconfig''/''gconfig''):
 +
 +<code bash>
 +make menuconfig
 +</code>
 +
 +В разделе "File systems" ("Файловые системы"), подразделе "Miscellaneous (различные) file systems" активируем опцию "Squashed filesystem" в качестве модуля либо как связанную с ядром. Обязательно компилировать SquashFS внутри ядра только в том случае, если планируем использовать "сквошенные" начальные виртуальные диски (''initrd'').
 +
 +Для использования сжатого начального виртуального диска, активируем "Initial RAM disk support" в разделе "Device drivers", подразделе "Block devices".
 +
 +Чтобы иметь возможность установить сжатую файловую систему после закольцовки устройства, следует активировать опцию "Loopback device support" ("Поддержка закольцовки") и разделе "Device drivers" ("Драйвера"), подразделе "Block devices" ("Блочные устройства").
 +
 +Теперь вы можем компилировать ядро и модули:
 +
 +<code bash>
 +make
 +</code>
 +
 +
 +====Компиляция ядра 2.4.x====
 +
 +Выберем конфигурацию:
 +
 +<code bash>
 +make menuconfig
 +</code>
 +
 +В разделе "File systems" активируем опцию "Squashed filesystem" в качестве модуля либо как связанную с ядром. Обязательно компилировать SquashFS внутри ядра только в том случае, если планируется использовать "сквошенные" начальные виртуальные диски (''initrd'').
 +
 +Если хотим использовать "сквошенные" начальные вирт диски, активируем "Initial RAM disk support" (поддержку начальных вирт дисков) в разделе "Block devices" ("Блочные устройства").
 +
 +Чтобы иметь возможность установить сжатую файловую систему после закольцовки устройства, следует активировать опцию "Loopback device support" ("Поддержка закольцовки") и разделе "Device drivers" ("Драйвера"), подразделе "Block devices" ("Блочные устройства").
 +
 +Теперь можно компилировать ядро и модули:
 +
 +<code bash>
 +make dep
 +make bzImage
 +make modules
 +</code>
 +
 +
 +====Инсталляция и тестирование ядра====
 +
 +Теперь пора инсталлировать ваше новое ядро с возможностью работы SquashFS. Инструкции ниже для инсталляции и начальной загрузки ядра на хостовой машине.
 +
 +Мы исходим из того, что ядро было компилировано на x.86 архитектуре, и что сжатый образ ядра находится в ''arch/i386/boot/'' субдиректории дерева ядра. Теперь скопируем ядро в директорию ''/boot'' (и назовем для удобства ''bzImage-sqsh''):
 +
 +<code bash>
 +cp arch/i386/boot/bzImage /boot/bzImage-sqsh
 +</code>
 +
 +Не забудем инсталлировать модули ядра, если они у вас есть:
 +
 +<code bash>
 +make modules_install
 +</code>
 +
 +Модифицируем конфигурацию файла начального загрузчика, чтобы он включал теперь наше новое ядро и инсталлируем (обновляем) начальный загрузчик. Теперь можно перезагрузиться с новым ядром. Когда оно запустится, проверим, что все прошло правильно:
 +
 +<code bash>
 +cat /proc/filesystems
 +</code>
 +
 +Или, если установили поддержку SquashFS в качестве модульного ядра:
 +
 +<code bash>
 +insmod squashfs
 +cat /proc/filesystems
 +</code>
 +
 +Если видим строку squashfs над другими файловыми системами, это означает, что SquashFS успешно внедрена в ядро.
 +
 +
 +=====Компиляция вспомогательной программы mksquashfs=====
 +
 +Теперь нам нужно скомпилировать mksquashfs --- инструмент для создания сжатых файловых систем
 +
 +<code bash>
 +cd /usr/src/squashfs/squashfs-tools
 +</code>
 +
 +Компилируем и установим mksquashfs:
 +
 +<code bash>
 +make
 +cp mksquashfs /usr/sbin
 +</code>
 +
 +Если все прошло хорошо, набираем mksquash в строке подсказки, что выдаст сообщение как им пользоваться.
 +
 +
 +======Вспомогательная программа mksquashfs, как она есть======
 +
 +
 +=====Использование mksquashfs=====
 +
 +**mksquashfs** --- это инструмент для создания новых "сквошенных" файловых систем и для добавления новых данных в уже существующие сквошенные файловые системы. Основной вид командной строки для mksquashfs:
 +
 +<code bash>
 +mksquashfs source1 source2 ... destination [options]
 +</code>
 +
 +  ; source1, source2 и т. д. : файлы и директории, которые должны быть в итоге добавлены в полученную файловую систему с относительными и/или абсолютными путями
 +  ; destination : обычный файл (файловая система, образ файла) или блочное устройство (такое как ''/dev/fd0'' или ''/dev/hda3''), куда мы хотим поместить свою сжатую файловую систему.
 +
 +Заметки по работе mksquashfs по умолчанию:
 +
 +Когда новые файлы добавляются в новую файловую систему или присоединяются к уже существующей, mksquashfs будет автоматически переименовывать файлы с одинаковыми именами: если два или более файла с названием ''text'' появятся в одной полученной директории, второй файл будет переименован в ''text_1'', третий в ''text_2'' и т. д.
 +
 +Идентичные файлы будут удалены, поэтому будет оставаться только один физический экземпляр (в SquashFS 2.x можно отменить поиск/удаление копий с опцией %%--no-duplicates%%).
 +
 +Если в пункте назначения уже есть существующая SquashFS по умолчанию, новые пункты будут добавлены в существующую ветвь директорий. Необходимо проверить список опций ниже, чтобы заставить mksquash переписать пункт назначения полностью и/или изменить его таким образом, чтобы добавить новые элементы исходных текстов. Пожалуйста обратите внимание, что невозможно присоединять записи к файловой системе, созданной с mksquashfs1.x используя mksquashfs2.x. Для этого понадобится установить SqyashFS-1.x файловую систему и скопировать файлы куда-нибудь, а затем присоединить их с другими нужными файлами, чтобы создать файловую систему SquashFS-2.x.
 +
 +Если даны один файл исходных текстов или директория, они становятся ветвью в заново созданной файловой системе. Если даны два или более файлов исходников и/или директорий, они все станут подпунктами в ветви новой файловой системы.
 +
 +Полученная в результате файловая система будет упакована во множество пакетов 4 Кб: это необходимо для файловых систем, используемых в блочных устройствах. Если вы абсолютно уверены, что вам это не понадобится, используйте опцию %%--nopadoption%%, чтобы отменить эту операцию.
 +
 +Смотрите следующий раздел с более подробным описанием всех возможных опций.
 +
 +
 +=====Опции командной строки=====
 +
 +Все возможные опции для mksquashfs представлены в таблице ниже.
 +
 +Таблица 1. Опции командной строки инструмента mksquashfs
 +
 +Описание опций
 +
 +| -2.0 | заставляет mksquashfs версии 2.1 создавать файловую систему версии 2.0 |
 +| -all-root или  --root-owned | объединяет все файлы целевой файловой системы в ветвь (UID=o, GID=o) |
 +| -always-use-fragments | разделяет все файлы размером больше блока на фрагменты (только 2.x, достижение больших степеней сжатия) |
 +| -b [block size] | использует [block size] размер блока файловой систему (32 Кб по умолчанию) --- это может быть также 512, 1024, 2048, 4069, 8192, 16384 или 32768 |
 +| -be или -le | запускает big endian либо little endian файловую систему, соответственно. |
 +| -check-data | активирует дополнительные проверки файловой системы |
 +| -e [file 1] ([file 2] ...) | задает, какие файлы и/или директории нужно опустить из новой файловой системы, которая должна создаваться |
 +| -ef [file] | указывает файл, который содержит перечень файлов/директорий, которые нужно исключить |
 +| -force-gid [GID] | устанавливает все групповые ID в целевой файловой системе в [GID] (может быть указано как имя или число) |
 +| -force-uid [UID] | устанавливает все юзерские ID в целевой файловой системе в [UID] (может быть указано как имя или число) |
 +| -info | выдает файлы, их оригинальный размер и степень сжатия после добавления в файловую систему |
 +| -keep-as-directory | если исходный текст представляет из себя одну директорию, опция делает эту директорию субдиректорией ветви в созданной файловой системе |
 +| -noappend | если целевой файл/устройство уже содержит сжатую файловую систему, лучше перепишите его, чем добавлять новые данные в уже существующую файловую систему |
 +| -no-duplicates | не обнаруживает/удаляет одинаковые имена файлов |
 +| -noD или --noDataCompression | не сжимать данные |
 +| -noF или --noFragmentCompresstion | не сжимать фрагменты (только для 2.x) |
 +| -no-fragments | не создавать фрагментарные блоки (только для 2.x, это создаст практически такую же файловую систему, как 1.x) |
 +| -noI или --no-Inode-Compresstion | не сжимать таблицу узлов |
 +| -nopad | не паковать полученную файловую систему во множественные пакеты 4 Кб |
 +| -root-becomes [name] | может быть использована в процессе присоединения к уже существующей сжатой файловой системе: это создаст новый корень и [имя] директорию, которая будет содержать все пре-существующие файлы/директории |
 +| -version | выдает сообщение о версии, авторских правах и лицензии |
 +
 +В большинстве случаев нужно оставить все опции сжатия/блоков по умолчанию, поскольку они позволяют mksquashfs достигать наилучших возможных степеней сжатия.
 +
 +
 +======Создание и использование сжатых файловых систем======
 +
 +
 +=====Основные шаги=====
 +
 +Для того, чтобы создать сжатую файловую систему из одной директории (скажем, ''/some/dir'' (''какая-то/директория'')) и вывести ее в обычный файл (таким образом продуцируя образ файловой системы), нужно сказать только одну волшебную фразу:
 +
 +<code bash>
 +mksquashfs /some/dir dir.sqsh
 +</code>
 +
 +mksquashfs начнет сжимать и печатать получаемое число узлов и размер записанных данных, так же, как среднюю степень сжатия. Теперь у нас есть образ директории ''/some/dir'' в файле ''dir.sqsh''. Теперь можно использовать команду установки, чтобы установить ее используя устройство закольцовки:
 +
 +<code bash>
 +mkdir /mnt/dir
 +mount dir.sqsh /mnt/dir -t squashfs -o loop
 +</code>
 +
 +Чтобы проверить, получилось ли то, что ожидали:
 +
 +<code bash>
 +ls /mnt/dir
 +</code>
 +
 +Если мы хотим вывести файловую систему непосредственно в устройство (скажем, дискета на ''/dev/fd0''):
 +
 +<code bash>
 +mksquashfs /some/dir /dev/fd0
 +</code>
 +
 +Затем просто установим устройство:
 +
 +<code bash>
 +mount /dev/fd0 /mnt/floppy -t squashfs
 +</code>
 +
 +И проверим, все ли в порядке:
 +
 +<code bash>
 +ls /mnt/floppy
 +</code>
 +
 +
 +=====Сжатие файловых систем=====
 +
 +Операции, описанные здесь, обращены к большинству случаев, когда может использоваться сжатая файловая система только-для-чтения, хотите ли вы, чтобы она была на блочном устройстве или в файле. Это может быть все что угодно начиная от FTP/HTTP архивов, которые часто не обновляются до сжатого сегмента памяти и все, что угодно в этом духе.
 +
 +
 +====Пример 1====
 +
 +Давайте предположим, что у нас есть директория ''/var/arch'' со множеством файлов и что надо превратить ее в сжатую файловую систему и сохранить на вашем сегменте ветви в качестве файла (это будет образ файловой систему который вы установите через кольцевое устройство). Операции, которые понадобится сделать:
 +
 +Сожмем директорию, затем установим через кольцевое устройство, чтобы проверить:
 +
 +<code bash>
 +mksquashfs /var/arch /var/arch.sqsh
 +mkdir /mnt/tmp
 +mount /var/arch.sqsh /mnt/tmp -t squashfs -o loop
 +ls /mnt/tmp
 +</code>
 +
 +Если все прошло, как ожидалось, чтобы файловая система устанавливалась автоматически во время запуска, добавим эту строку в ''/etc/fstab'':
 +
 +<file>
 +/var/arch.sqsh/var/archsquashfsro,defaults0 0
 +</file>
 +
 +Извлекаем файловую систему из временного места установки и установите используя компонент ''fstab'':
 +
 +<code bash>
 +umount /mnt/tmp
 +mount /var/arch
 +</code>
 +
 +Теперь просто убедимся, что все работает хорошо:
 +
 +<code bash>
 +ls /var/arch
 +</code>
 +
 +
 +====Пример 2====
 +
 +Предположим, что у нас есть два раздела жесткого диска, ''/dev/hda6'' (который пуст) и ''/dev/hda7'' (который больше, чем ''/dev/hda6'', установлен в ''/at/arch'', содержит те же данные и полон). Теперь скажем, мы хотим сжать файловую систему ''/dev/hda7'' и переместить ее в ''/dev/hda6'', потом использовать ''/dev/hda7'' для каки-то других целей. Мы предположим, что у нас будет следующая строка в ''/etc/fstab'' (reiserfs это просто пример файловой системы, используемой на ''/dev/hda7''):
 +
 +<file>
 +/dev/hda7/var/archreiserfsdefaults0 0
 +</file>
 +
 +И точно таким же образом, как с предыдущим примером:
 +
 +<code bash>
 +mksquashfs /var/arch /var/arch.sqsh
 +mkdir /mnt/tmp
 +mount /var/arch.sqsh /mnt/tmp -t squashfs -o loop
 +ls /mnt/tmp
 +</code>
 +
 +Если все прошло хорошо, извлекаем ''/dev/hda7'' (если нужно) и используйте ''dd'' чтобы копировать ''var/arch/sqsh'' в ''/dev/hda6'':
 +
 +<code bash>
 +umount /dev/hda7
 +dd if=/var/arch.sqsh of=/dev/hda6
 +</code>
 +
 +Теперь изменим строку в ''/etc/fstab'' для ''/dev/hda7'' на:
 +
 +<file>
 +/dev/hda6/var/archsquashfsro,defaults0 0
 +</file>
 +
 +Установим новую файловую систему и проверим, все ли прошло хорошо:
 +
 +<code bash>
 +mount /var/arch
 +ls /var/arch
 +</code>
 +
 +Не забудем стереть ненужный образ файловой системы:
 +
 +<code bash>
 +rm /var/arch.sqsh
 +</code>
 +
 +
 +=====Создание маленьких/встроенных систем=====
 +
 +Под "маленькие/встроенные", подразумеваются Linux-системы, которые строятся в первоначальной загрузкой c дискет, IDE/USB флэш дисков, iso9660 CD-ROM'ов, маленьких жестких дисков и т.д. Хотите ли вы иметь вашу целую корневую файловую систему или единичный носитель (единичный сегмент, одна дискета) или у вас модульная система (несколько дискет или сегментов диска), процедура практически идентична. Создание таких Linux-систем стоит вне контекста этого HOWTO --- есть специальные HOWTO и гиды для этого (такие, как Bootdisk HOWTO и Linux From Scratch --- посетите [[http://www.tldp.org|tldp.org]] чтобы найти эти документы).
 +
 +
 +====Сжатые файловые системы на дискетах/флэш/жестких дисках====
 +
 +Чтобы использовать SquashFS для создания Linux-систем на маленьких дисках, нужно сделать следующие обычные шаги для создания минимальных систем.
 +
 +Проделайте следующие операции в соответствующих пунктах:
 +
 +Когда создаеся ядро для вашей системы, убедитесь, что вы настраиваете поддержку SquashFS, чтобы оно могло устанавливать сжатые файловые системы.
 +
 +Используйте mksquashfs для создания начального виртуального диска только-для-чтения и/или ветви и/или других файловых систем.
 +
 +Не забудьте установить типа файловых систем для squashfs в ''/etc/fstab'' и/или начальных скриптах вашей системы для установления сжатых файловых систем.
 +
 +Пример с дискетой. Предположим что у нас есть дерево системы дискеты в ''/home/user/floppylinux'' и мы хотим поместить корневую файловую систему на одну дискету, а ''/usr'' на другую. Что надо сделать:
 +
 +<code bash>
 +cd /home/user
 +mksquashfs floppylinux root.sqsh -e usr
 +mksquashfs floppylinux/usr usr.sqsh
 +</code>
 +
 +Примечание 1: здесь можно видеть, как мы используем опцию -e чтобы исключить директорию ''/usr'' из образа корневой файловой системы.
 +
 +Примечание 2: не забудьте указать squashfs в директории ''/etc/fstab'' вашего корневого диска или стартовых скриптах когда устанавливаете файловую систему /usr.
 +
 +Вставляем корневой диск в накопитель (предполагается , что на ней есть, положим, компилятор, и, таким образом, файловая система существует на этой дискете, а корневая файловая система будет постоянно храниться под директорией ''/boot'' этой файловой системы):
 +
 +<code bash>
 +mount /mnt/floppy
 +cp root.sqsh /mnt/floppy/boot
 +</code>
 +
 +Когда будет сделано, вытаскиваем корневую дискету, меняем дискеты на ''/usr'' диск и используем ''dd'' для передачи данных на ''usr'':
 +
 +<code bash>
 +dd if=usr.sqsh of=/dev/fd0
 +</code>
 +
 +
 +====Сжатые файловые системы на CD-ROM====
 +
 +Посредством SquashFS можно сжимать большие файловые системы, что может быть использовано в CD дисках (просто как пример).
 +
 +Запустите SquashFS в Linux-ядре целевой системы. Создаем сжатую корневую файловую систему. Изменяем начальные скрипты ''/etc/fstab'' целевой системы чтобы установить сжатую файловую систему, когда она нам понадобится.
 +
 +Если мы создаем корневую файловую систему из запущенной Linux-системы, используем опцию ''-e'', чтобы mksquashfs исключил все псевдо-файловые системы, такие, как ''/proc'', ''/sys'' (на Linux-ядре после 2.5x) и ''/dev'' (когда используется DevFS). Также не забываем добавить сам образ ядра файловой системы который создается вместе с mksquashfs (Предполагается, что вы знаете причины для этих исключений).
 +
 +
 +======Благодарности======
 +
 +Я бы хотел выразить мою искреннюю благодарность и безмерное уважение:
 +
 +Phillip Lougher --- за его блестящую работу по squashfs, за создание эксклюзивного патча для linux-2.4.18, за его помощь в редактировании этого howto и ответы на мои письма.
 +
 +Tabatha Marshall из TLDP Проекта Документации Linux за помощь мне написании этого HOWTO финального выпуска 1.0.
 +
 +Всех из Проекта Документации Linux за их великолепную работу над всеми HOWTO и гидами, которые сильно помогли мне в исследовании и изучении тонкостей Linux.
 +
 +Всех из рассылочных листов Проекта Документации Linux, которые помогли мне начать.
 +
 +Бесконечная благодарность и уважение всем, кто развивает открытый для использования софт.
 +
 +
 +======Лицензия======
 +
 +Этот документ может быть использован и распространен в пределах и под условиями , последующими дальше в Open Content licencе. Коротко это означает, что вы можете свободно изменять и распространять это HOWTO с основным условиям , что вы сохраняете ссылку на автора и авторские права. Полный текст лицензии вы можете увидеть на [[http://www.opencontent.org/opl.shtml]]
 +
 +----
 +
 +//Artemyi I. Pavlov//
 +
 +//Опубликовал и редактировал Виктор Мелехин//
Печать/экспорт