Редактирование содержания squashfs

  • 19th day of Aftermath, in the yold 3182
  • 2 Comments

Большинство LiveCD дистрибутивов (Debian, Ubuntu, Fedora, Mint, etc) содержат файл filesystem.squashfs, который является контейнером с сжимающей файловой системой, распаковываемой и загружаемой при загрузке LiveCD. Ниже будет описано, как добавлять/удалять и редактировать файлы в таком контейнере.

Для обновления содержимого squashfs необходимо установить пакет squashfs-tools, он есть в большинстве популярных Linux дистрибутивов. После этого перейдите в каталог, где лежит filesystem.squashfs, войдите в сеанс супер-пользователя:

cd ~/work_dir
su

и распакуйте контейнер:

unsquashfs filesystem.squashfs

И сразу после этого удалите или перенесите оригинальный файл в другую папку:

mv filesystem.squashfs ~/backup/

После распаковки в папке, где изначально лежал контейнер, появится каталог squashfs-root – изменяйте его, как вам это необходимо: добавляйте, удаляйте, редактируйте его содержимое.

Когда все необходимые изменения будут проведены, вы можете пересоздать файл обновленного squashfs-контейнера:

mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot

Это потребует какого-то времени, но в результате вы получите обновлённый filesystem.squashfs. Если надо добавить его в существующий iso-образ, это можно сделать с помощью удобной gui-утилиты isomaster.

Важно делать все эти команды под root. Если всё это сделать под обычным пользователем, squashfs пересоберется, но в результате на Live-системе могут перестать работать программы su и sudo.

  1. opendx says:

    the main question not addressed here – how to insert this updated file into bootable .iso file from which it was taken?

Leave a Comment

Your email address will not be published. Required fields are marked *