LINUX.ORG.RU

Дистрибутив для tmpfs с поддержкой обновления

 , , ,


1

1

Собственно сабж. Допустим, файловая система упакована в squashfs. Нужен простой способ обновлять этот образ.
Если взять например обычный debian или убунту, сделать apt-get ..., то изменения естественно будут в оверлее.
Может есть инструменты для автоматизации обновления внутри образа (для какого-нибудь дистрибутива, или специальный дистрибутив)?

обычный debian или убунту, сделать apt-get …, то изменения естественно будут в оверлее.

Но overlayfs может быть сохранена. Смотри persistent.

Может есть инструменты для автоматизации обновления внутри образа

MX-linux и его инструменты.

…или специальный дистрибутив

Например, Porteus.

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

Но overlayfs может быть сохранена. Смотри persistent

Вот только если сохранять оверлей с обновлёнными пакетами, он быстро разжиреет, и даже превысит размер оригинального образа, что делает всю затею со squashfs бессмысленной

MX-linux
Porteus

Спасибо, посмотрю

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

Нужен простой способ обновлять этот образ.

самый простой способ обновить этот образ — с использованием утилиты debootstrap установить все необходимые пакеты debian в отдельную chroot-директорию, а затем упаковать эту директорию в новый mksquashfs и загружаться в свежую систему.

для CRUX писал такую тоже cruxstrap, для debian это debootstrap, для рача это pacstrap.

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

сохранять оверлей с обновлёнными пакетами, он быстро разжиреет…

Ничто не мешает перенести это в squashfs.

Взять обычную установленную систему, установить все что нужно, настроить, упаковать squashfs. Здесь на форуме писал в теме, как это сделать.

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

я именно так и делаю, пишу сценарии сборки с различными конфигурациями для различных типов систем.

mkdir "chroot/"

# устанавливаем последнее ядро в chroot
booty linux --install-path "chroot/"

# устанавливаем все пакеты из core
cruxstrap --root "chroot/" --ports "/mnt/cruxmedia/crux/core"

# копируем изменения поверх
# либо отдельным слоем: booty build "chroot/" "rootfs-changes/"
cp -a "rootfs-changes/"* "chroot/"

# собираем
booty build "chroot/"

# запускаем
qemu-system-x86_64 -cdrom BOOT-x86_64.ISO

вместо cruxstrap — debootstrap

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

Взять обычную установленную систему, установить все что нужно, настроить, упаковать squashfs

Это как раз понятно, если надо один раз сделать образ. А если обновлять?

TheAnonymous ★★★★★
() автор топика

Puppy Linux,

но вопрос зачем в squashfs то держать. Современные флешки и внешние ssd позволяют большие объемы а btrfs и zfs ещё и сжатие

anonymous
()
Ответ на: комментарий от UVV

Вообще план такой - чтобы более-менее комфортно использовать компьютер (ноутбук) без SSD.
Суть такова: squashfs-образ с системой быстро загружается в оперативную память (последовательная скорость у HDD нормальная), и дальше оно работает в tmpfs. Диск после этого можно даже остановить (в целях экономии ресурса и чтоб не шумел).
Данные из /home, вроде профиля браузера, хранить в оверлее тоже в tmpfs, и при включении/выключении синхронизировать на диск.
Но остаётся проблема с обновлением собственно образа squashfs с ОС.

Ну и да, наверное, решением будет скриптом собирать новый образ с обновлёнными пакетами и перезагружаться. Заодно в случае, если что-то пойдёт не так, можно загрузиться со старым образом, а если всё в порядке - старый удалить.
Отмечу «решено», но если есть другие варианты, пишите.

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

Ничем, пока всё так же.
Кстати SMART так же в порядке, но если сравнивать относительно данных месячной давности, поменялся Disk_Shift (тоже большое число, но другое), а VALUE так же 100.

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

Сколько оперативы на ноуте если меньше 16 гиг забудь об этом

anonymous
()
Ответ на: комментарий от TheAnonymous

Есть ещё TinyCore Linux. Он как раз для Ваших use-cases и предназначен. /home по умолчанию в памяти, вопросы его backup и restore отработаны и там с рождения. Я в принципе его поэтому и использую. Зачем таскать с собой ноут если можно в кошелёк флешку положить.

Удачи!

anonymous
()
Ответ на: комментарий от TheAnonymous

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

с чего бы это вдруг? Старые пакеты ведь удаляются из образа.

У меня portage tree реализован в AUFS. Монтируется в tmpfs, при синхронизации в дерево постоянно добавляются новые файлы, старые удаляются. После внесения изменений в tmpfs образ пересобирается, чтобы отразить изменения. Именно изменения, а не добавления.

В результате уже 4 года образ существует, при этом его размер колеблется в районе 60-70 Мб. Ничего не разжирело.

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

на дешёвой флешке ФС быстро сдохнет, даже с отключенными журналами
дорогая флешка будеть стоит почти как винчестер
это не проблема tiny core, это проблема любой ОС на флешке

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

При перезаписывании образа на нее часто она также сдохнет, кинстон за 10 баксов живет с btrfs уже два года в качестве переносной системы ( логи кеш и профиль браузера в tmpfs). У ТС же вообще hdd ему пофиг, файловую систему со сжатием, все что можно в tmpfs и будет крутиться нормально система. При squashfs недостаток озу сьеденный образом системы скажется куда хуже на работу системы чем медленный диск

anonymous
()
Ответ на: комментарий от Chord

образ пересобирается, чтобы отразить изменения

Ну так в этом действии вся суть.
Без этого для примера можешь взять live iso убунты (только не сразу после релиза), записать на флешку с persistent разделом, запуститься и обновить систему. Там может получиться, что содержимое этого persistent раздела сразу будет больше всего исошника.

PS. debootstrap оказывается собирает образ из репозитория без обновлений (без updates и даже security!)
Так что надо брать multistrap или mmdebstrap

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

Да и на дешёвой всё может быть ок. В данном контексте использования вполне допустимо монтировать с noatime и nodiratime.

anonymous
()
Ответ на: комментарий от TheAnonymous

Кстати, у TinyCore есть flavour под названием dCore. То есть TinyCore машинерия крутит Debian или Ubuntu репозитории. По-моему в Puppy тоже есть такая возможность.

anonymous
()
Ответ на: комментарий от TheAnonymous

дык собираешь squasрfs с корня оверлея, исключая конечно же пути из которых собирается squashfs и те что не нужны…
получаешь squash-образ со свежим состоянием системы.
заменяешь старый образ на только что созданный.
удаляешь файлы в изменяемом пути оверлея.
перезагружаешься.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.