Що таке squashfs довідкова система puppyrus linux

Це 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 32 байт. Файлові системи можуть бути до 2 32 байт.

Squashfs може використовувати блоки розміром до 64 Кб (розмір за замовчуванням 64 Кб). Використання 64-кілобайтовий блоків дозволяє досягати більшому ступені стиснення, ніж звичайний 4-кілобайтовий розмір блоку.

SquashFS привносить концепцію фрагментарних блоків: можливість об'єднувати множинні файли, за розміром менші блоку, в окремий блок, досягаючи високих ступенів стиснення.

Копії файлів виявляються і видаляються.

Підтримуються архітектури як big-endian, так і little-endian.

SquashFS може збирати файлові системи, створені на машинах з різною послідовністю байтів.

роз'яснення

Тепер давайте переконаємося, що будь-які наступні обговорення вам будемо простіше зрозуміти. Процедура запуску роботи SquashFS, в цілому, складається з наступних кроків:

Патч і рекомпіляції Linux-ядра для можливості підтримки SquashFS

Створення стислій файлової системи з mksquashfs

Перевірка: установка squashfs в місце тимчасового призначення

Модифікування стартових скриптів / etc / fstab вашої цільової Linux-системи для встановлення нової стислій файлової системи, коли це необхідно

придбання SquashFS

Домашня сторінка SquashFS містить новини про останньому випуску і лог змін, а також загальну інформацію про SquashFS. Ви можете отримати останню версію на сторінці проекту SquashFS SourceForge.

Підготовка сумісного з SquashFS ядра

"Склеювання" вихідних текстів ядра

З кодами ядра і наявністю належного патча все, що вам потрібно робити це (ми виходимо з того, що у вас є вихідні тексти ядра Linux в / usr / src / linux і xnj і вихідні тексти SquashFS в / usr / src / squashfs):

Внести зміни в директорію початкових кодів SquashFS і скопіювати пaтч ядра (ми виходимо з того, що він називається squashfs-patch) в / usr / src / linux.

Йдемо в директорію вихідних текстів Linux / usr / src / linux.

Увага: пам'ятайте, що ми не будемо залишати цю директорію протягом всіх наступних пов'язаних з ядром процедур і все доріжки будуть даватися відносно / usr / src / linux.

Тепер «склеюємо» вихідні тексти за допомогою пaтча SquashFS:

Компіляція ядра 2.6.x

чистимо і підготуємо ядро ​​програми:

Виберемо конфігурацію ядра використовуючи ваш улюблений метод (config / menuconfig / xconfig / gconfig):

У розділі «File systems» ( «Файлові системи»), підрозділі «Miscellaneous (різні) file systems» активуємо опцію «Squashed filesystem» в якості модуля або як пов'язану з ядром. Обов'язково компілювати SquashFS всередині ядра тільки в тому випадку, якщо плануємо використовувати «сквошенние» початкові віртуальні диски (initrd).

Для використання стисненого початкового віртуального диска, активуємо «Initial RAM disk support» в розділі «Device drivers», підрозділі «Block devices».

Щоб мати можливість встановити стислу файлову систему після закольцовку пристрою, слід активувати опцію «Loopback device support» ( «Підтримка закольцовку») і розділі «Device drivers» ( «Драйвера»), підрозділі «Block devices» ( «Блокові пристрої»).

Тепер ви можемо компілювати ядро ​​і модулі:

Компіляція ядра 2.4.x

У розділі «File systems» активуємо опцію «Squashed filesystem» в якості модуля або як пов'язану з ядром. Обов'язково компілювати SquashFS всередині ядра тільки в тому випадку, якщо планується використовувати «сквошенние» початкові віртуальні диски (initrd).

Якщо хочемо використовувати «сквошенние» початкові вирт диски, активуємо «Initial RAM disk support» (підтримку початкових вирт дисків) в розділі «Block devices» ( «Блокові пристрої»).

Щоб мати можливість встановити стислу файлову систему після закольцовку пристрою, слід активувати опцію «Loopback device support» ( «Підтримка закольцовку») і розділі «Device drivers» ( «Драйвера»), підрозділі «Block devices» ( «Блокові пристрої»).

Тепер можна компілювати ядро ​​і модулі:

Інсталяція і тестування ядра

Тепер пора інсталювати ваше нове ядро ​​з можливістю роботи SquashFS. Інструкції нижче для інсталяції і початкового завантаження ядра на хостовой машині.

Ми виходимо з того, що ядро ​​було компілювати на x.86 архітектурі, і що стиснений образ ядра знаходиться в arch / i386 / boot / субдіректоріі дерева ядра. Тепер скопіюємо ядро ​​в директорію / boot (і назвемо для зручності bzImage-sqsh):

Не забудемо інсталювати модулі ядра, якщо вони у вас є:

Модифікуємо конфігурацію файлу початкового завантажувача, щоб він включав тепер наше нове ядро ​​і інсталюємо (оновлюємо) початковий завантажувач. Тепер можна перезавантажитися з новим ядром. Коли воно запуститься, перевіримо, що все пройшло правильно:

Або, якщо встановили підтримку SquashFS як модульного ядра:

Якщо бачимо рядок squashfs над іншими файловими системами, це означає, що SquashFS успішно впроваджена в ядро.

Компіляція допоміжної програми mksquashfs

Тепер нам потрібно скомпілювати mksquashfs - інструмент для створення стислих файлових систем

Компілюємо і встановимо mksquashfs:

Якщо все пройшло добре, набираємо mksquash в рядку підказки, що видасть повідомлення як ним користуватися.

Використання mksquashfs

mksquashfs - це інструмент для створення нових «сквошенних» файлових систем і для додавання нових даних в уже існуючі сквошенние файлові системи. Основний вид командного рядка для mksquashfs:

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

Схожі статті