Что такое циклическая файловая система?
Gnu / Linux (и подавляющее большинство систем unix) имеет механизм, который позволяет монтировать файл (предварительно отформатированный), как если бы это был жесткий диск, обычно без таблицы разделов. Эта дрянная диаграмма (сделанная мной) объясняет, как работает этот механизм.
Использование файлов петель
1- Файлы Mount.iso
Файлы .iso, стандартные по преимуществу на компакт-дисках и DVD, представляют собой не что иное, как файл цикла, файловая система которого может быть изменена. ISO 9960 (чаще встречается на компакт-дисках) или UDF (наиболее часто встречается на DVD). Чтобы смонтировать его, воспользуемся командой mount.
mkdir iso # создать каталог chmod -R 666 iso # предоставить всем пользователям разрешение на чтение mount image.iso iso / # монтировать iso-образ (требуется root)
У вас есть ограничение: по очевидным причинам обе файловые системы доступны только для чтения.
2- только для чтения squashfs
Предположим, у нас есть папка с изображениями и / или видео, организованная по году, в котором они были сняты. Очевидно, что маловероятно, что мы захотим изменить данные, содержащиеся в папках за предыдущие годы. Вот где на помощь приходит Squashfs. Squashfs - это сжатая файловая система, доступная только для чтения, поэтому после создания образа мы не сможем изменить данные внутри.
Таким образом, не только мы сэкономим огромное количество места, но и любопытный эффект, который чтение файлов будет быстрееиз-за необходимости читать файлы меньшего размера, поскольку в настоящее время распаковка файла является минимальным усилием для большинства процессоров.
Оставляя преамбулы, чтобы создать образ squashfs, мы должны использовать команду mksquashfs, синтаксис которой прост:
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
А вот практический пример:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Итак, выбранный алгоритм - xz, поскольку именно он более высокая степень сжатия предложения (из имеющихся), при этом размер выбранного блока является максимальным. какие позволяет улучшить результаты сжатия (по умолчанию это 64КиБ).
Теперь мы сможем смонтировать его с помощью простого;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Убедившись, что все правильно, мы можем удалить исходные файлы или оставить файл в качестве резервной копии.
Если мы хотим, чтобы он монтировался при запуске ОС, мы должны добавить строку этого стиля в / etc / fstab:
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Что происходит, когда мы хотим добавить или удалить файлы или просто извлечь эти снимки? Что ж, у нас есть команда команда несквошфс.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
По умолчанию он будет использовать "squashfs-root" в качестве каталога для извлечения. можно изменить с помощью опции -d
- livecd
- Встроенные системы
- Сервера
- В общем, любая система только для чтения
3- «Аварийный своп»
Представьте, что по какой-то причине (гибернация, массивные компиляции ...) вам нужен дополнительный своп. Здесь в игру вступает файл цикла, первый шаг - создать пустой файл определенного размера с определенным размером блока, мы делаем это с помощью команды дд:
dd if=/dev/zero of=loop bs=1M count=512
В этом случае размер блока составляет один МиБ, а размер файла - 512 МБ. Так быть не должно.
Создаем и активируем своп с помощью этой команды
mkswap loop && swapon loop
Имейте в виду, что производительность файла цикла всегда несколько ниже, чем у реального физического.
4-делай что хочешь
Это лишь некоторые из наиболее характерных примеров, не стесняйтесь экспериментировать с chroot, системами шифрования, вложенными циклами ... Ваши возможности безграничны. Но будьте осторожны с командами, которые вы запускаете, подумайте, прежде чем нажимать ввод.
Интересные ссылки
- Википедия Squashfs
- Человек mksquashfs
- Человек unsquashfs
- iso 9960 википедия
- Википедия UDF
- Википедия VFS
- Цикл википедии
Хороший пост че !! У меня есть несколько гигантских резервных копий, и мне никогда не приходило в голову их сжать. Я собираюсь использовать это, и, кстати, я зашифрую свой внешний, чтобы заполнить его, а затем я вспомнил, что собирался зашифровать его 🙁
Интересно попробовать сквошфс
Хороший учебник, я читал, как создавать файлы img с помощью dd и монтировать их, но не знал, как использовать Squashfs и его сжатие; Хотя он не позволяет изменять его содержимое, его использование может быть полезно в таких ситуациях, как те, которые вы комментируете. Спасибо, что поделились, привет.
Очень приятно знать, спасибо за совет.
Вы всегда узнаете что-то новое. Превосходно!
Забавно, я знал squashfs и для чего они нужны, но мне никогда не приходило в голову сжимать свои изображения. Спасибо за совет.
Впечатляет, давай попробуем посмотреть, в чем дело, очень хороший совет
отличный туто !!! =)… Очень хорошие чаевые !!!
Привет, роадер. Очень интересная статья, спасибо, что поделились.
В Gentoo вам нужно включить поддержку SquashFS в ядре перед его компиляцией, я протестирую его, чтобы посмотреть, как это работает. Спасибо.
протестировано на Gentoo, компилируя для него ядро, и отлично.
Исправь небольшую опечатку, роадер.
В примере:
Фотографии mksquashfs-2009 фото-2010 фото-2011 фото-2012 фото-2013 фото_2009-2013.sqsfs -comp xz -bs 1M
оставьте s в "-bs" (который определяет размер блока), это должно выглядеть так:
Фотографии mksquashfs-2009 фото-2010 фото-2011 фото-2012 фото-2013 фото_2009-2013.sqsfs -comp xz -b 1M