Table of Contents

Проблема

Иногда бывает нужно внести некоторые маленькие изменения в образ LiveCD, упакованного в squashfs. Например - сбросить неизвестный пароль root.

Решение

Смонтировать squashfs непосредственно для записи нельзя. Можно только распаковать, изменить и запаковать обратно.
Устанавливаем нужные для работы пакеты:

sudo apt-get install squashfs-tools

Копируем файлик squashfs в директорию, где мы сможем его распаковать:

cp /mnt/clonezilla/live/filesystem.squashfs /path/to/workdir
cd /path/to/workdir

Распаковываем:

unsquashfs filesystem.squashfs

Дальше в директории /path/to/workdir/squashfs-root меняем нужные файлики.
Напрмер - меняем пароль в ./etc/shadow. Генерируем новый пароль (он будет password):

perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'

Записываем получившееся значение в соответствующую строку в ./etc/passwd и пакуем squashfs обратно:

cd /path/to/workdir
sudo mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot

Однако, некоторые LiveCD не могут работать со сжатой squashfs (возникают ошибки монтирования root), поэтому пакуем без сжатия:

sudo mksquashfs squashfs-root filesystem.squashfs -b 1024k -e boot