Описанное здесь я проделывал с загрузочной флэшкой с Xubuntu - однако, я думаю, оно должно так же работать и с остальными дистрибутивами.
Итак... Сперва нужно сходить на pendrivelinux.com и сделать загрузочную флэшку согласно приведённой там инструкции. Специально для тех, кто не владеет буржуйским, я перевёл руководство с этого сайта. Его можно найти вот здесь:
http://wiki.eeeuser.com/ru:installing_ubuntu_8.04 (там всё, что касается "приготовления" загрузочной флэшки).
Live-flash с возможность сохранения изменений (persistent) основан на связке squashfs + unionfs. Суть в том, что поверх сжатого образа корневой файловой системы (образ squashfs), который скопирован с CD-ROM на первый раздел флэшки, с помощью unionfs монтируется второй раздел с возможностью записи. Unionfs позволяет организовать "прозрачное" сохранение/изменение/удаление файлов на такой "гибридной" файловой системе. При этом все изменения, разумеется, записываются лишь в раздел, доступный для записи, а исходный сжатый образ остаётся нетронутым.
На такую persistent-систему можно устанавливать новые пакеты и обновлять старые - все изменения будут сохранены после перезагрузки.
Я поставил самые очевидные для себя пакеты: во-первых, mc (ну, привык я к этой программе!). Затем - nfs-common, openssh-server, openssh-client. Затем запустил проигрывание .avi, .mpg, .mp3, .mp4 файлов во встроенном проигрывателе (на xubuntu он какой-то безликий - очень похож внешне на totem из ubuntu) и дал проигрывателю скачать недостающие для работы кодеки.
По окончании всех манипуляций я запустил apt-get clean - чтобы все новые скачанные пакеты удалились из кэша и не занимали места на диске (ведь они всё равно уже установлены).
После этого я перезагрузился в установленную (не на live-flash) систему и проделал следующее:
1. Подмонтировал оба раздела на persistent-флэшке (поскольку разделы именованные - первый смонтировался в папку /media/xubuntu8, второй - в папку /media/casper-rw).
2. Скопировал к себе в домашнюю папку файл /media/xubuntu8/casper/filesystem.squashfs
3. Создал точки монтирования (папки) /media/nc и /media/ncc (имена, по сути, "от фонаря")
4. *Подмонтировал скопированный образ файловой системы вот так:
mount -t squashfs -o loop filesystem.squashfs /media/nc
5. **Для монтирования "поверх" - добавил временную строчку в /etc/fstab:
aufs /media/ncc aufs dirs=/media/casper-rw=rw:/media/nc=ro 0 0
6. Подмонтировал "гибридную" файловую систему:
mount /media/ncc
7. Создал новый образ сжатой файловой системы с учётом изменений:
mksquashfs /media/ncc filesystem1.squashfs
(это достаточно длительный процесс - занимает несколько минут)
8. Отмонтировал все временные файловые системы (сперва /media/ncc, затем /media/nc) и удалил строчку из fstab.
9. Удалил старый файл filesystem.squashfs на флэшке (/media/xubuntu/casper/) и записал вместо него (под его именем) только что созданный файл (mv filesystem1.squashfs /media/xubuntu/casper/filesystem.squashfs).
10. Полностью очистил содержимое второго раздела флэшки (/media/casper-rw).
Последующая перезагрузка с модифицированной таким образом live-флэшки прошла без проблем. Зато теперь в её live-варианте уже стоит привычный мне mc и проигрывается музыка и видео. При этом второй раздел (для сохранения persistent-состояния) совершенно пуст.
Айс?
----
* Нужно поставить пакеты squashfs-tools и aufs-tools.
** Вместо aufs можно также использовать unionfs.