LINUX.ORG.RU

compressed file as root image

 , ,


0

1

Пытаюсь оттолкнувшись от mkarchiso сделать что-то похожее, но для debian.

Там по ходу сборки происходит
# Create an EROFS image containing the root file system and saves it on the ISO 9660 file system.
Далее в initramfs тут собранный образ монтируется.

Вопрос, можно ли для экономии места так монтировать сжатый образ?

Из явных ответов знаю squashfs, но хочется tar+zstd. Не могу найти как.

Напрашивается идея, которую я использовал ранее для netboot - распаковать образ в tmpfs смонтированный как newroot.
Но это затратно по RAM, хочется именно смонтировать в RO

PS. Вопрос пока просто академический. У меня сейчас нет образа или работающей системы сборки, я просто пытаюсь расширить функционал mkarchiso под свои нужды.

★★

хм, написал всё это, сел подумать, ближайший sysRescueCD, собираемый силами mkarchiso весит меньше 1Gb, сомневаюсь, что я соберу что-то что не поместится на современную флешку. Значит и в экономии нет смысла.

Наверное этим можно вопрос и закрыть.

Но с удовольствием почитаю и возможно поробую что либо что тут вдруг предложат.

PS. @Spoofing, а вы используете для загрузки систем по сети сжатые образы, или у серверов RAM много им всёравно?

Flotsky ★★
() автор топика
Последнее исправление: Flotsky (всего исправлений: 1)

Чтобы смонтировать tar-архив, сжатый потоковым сжатием, тебе в любом случае сначала придётся его распаковать - целиком, потратив память. И дело тут не в конкретных реализациях (я даже не знаю, есть ли они), а в том что без полной распаковки у тебя принципиально не может это получиться. Без полной распаковки можно монтировать какой-нить zip, где сначала каждый файл отдельно сжимается, а затем уже оборачивается в заголовки. Как squashfs устроено не знаю, вероятно похоже, либо там блочное сжатие вообще (оно тоже подходит и даже иногда лучше).

firkax ★★★★★
()
Ответ на: комментарий от firkax

Я исхожу их того, что я могу к примеру(не проверял, но уверен, что можно)

modprobe zram
echo zstd > /sys/block/zram0/comp_algorithm
echo 4G > /sys/block/zram0/disksize
mkfs.ext4 /dev/zram0
mount /dev/zram0 /mnt/test

И я не вижу тут ни какой явной полной распаковки.

Flotsky ★★
() автор топика
Ответ на: комментарий от Flotsky

Там, наверно, блочное сжатие. А tar, чтобы примонтировать, придётся сначала полностью прочесть всё равно. Вобщем главная проблема тут это tar, завёрнутый в сжатие. Если б наоборот (сначала сжатие, потом tar) - лучше, но всё равно неудобно, а самое хорошее архивы с отдельным индексом (как упомянутый zip, или любая настоящая файловая система).

firkax ★★★★★
()

tar - это tape archiver, т.е. архиватор для магнитных лент как следствие у тебя нет в начале архива информации в каком месте TAR архива какой файл находится. По сути TAR - это конкатенация файлов.

Если сравнивать со squashfs, то в начале при создании squashfs из некоторой директории происходит сканирование структуры, файлов, директорий и эта информация заносится в начало squashfs файла.

В случае tar такого сканирования не производится.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)