Для мобильных и встраиваемых устройств c linux на борту в качестве корневой файловой системы (rootfs) часто используется ext2. Образ rootfs подготавливают (собирают) на обычном компьютере а затем копируют на устройство.
Допустим, надо изменить уже готовый образ rootfs, снятый с ext2.
Если образ сжат при помощи gzip, разархивируем:
gzip -d rootfs.img.gz
Монтируем образ как loop устройство:
mkdir mnt mount -o loop rootfs.img ./mnt
Копируем во временную директорию:
mkdir rootfs cp -a ./mnt/* ./rootfs
ключ -a у команды cp указывает, что надо оставить без изменений все атрибуты фалов, и не заменять симлинки ( символические ссылки ) на файлы.
Вносим необходимые изменения в директории rootfs, добавляем/удаляем/редактируем файлы.
Запаковываем обратно в ext2, для этого используем утилиту genext2fs, если ее нет, то ставим:
apt-get install genext2fs
Создаем образ rootfs:
genext2fs -b 32000 -d ./rootfs rootfs-ext2.img
Ключ -b указывает размер создаваемого образа в блоках, блок по-умолчанию равен 1024 байта.
Сжимаем:
gzip rootfs-ext2.img
Получили rootfs-ext2.img.gz