LINUX.ORG.RU
ФорумTalks

mount + overlay + squashfs (?)

 ,


0

1

В общем @andytux тут постоянно напоминает про squashfs. Сейчас попробовал монтировать squashfs и присоединить слоем, не получилось.

mount -t overlay overlay -o lowerdir=/media/mint/disk,upperdir=/,workdir=/mnt/overlay_work /mnt/overlay_merged

Загрузился в Mint (LiveCD). Кликнул на файл squashfs, он смонтировался в /media/mint/disk. Нагуглил команду, где lowerdir - нижний слой нередактируемой фс; upperdir - редактируемый слой LiveCD, хотя там ведь тоже squashfs-файл. Другие два не понял, может там логи какие нужны. Но кроме того хотелось бы смонтировать на этапе загрузки, потому что некоторым утилитам надо стартануть автоматически и подхватить конфиги DE, и если их примонтировать позже то DE не подхватит конфиги, а утилиты стартовать вручную.

И ещё, зависит ли squashfs от того на какой фс создавался? Гугл говорит что нет. Но как тогда на счёт прав, если файлы были на ntfs. гугл пишет: «Метаданные (права доступа, владельцы) сохраняются внутри самого образа», то есть по факту необходим линуксовый раздел.

Есть идеи.

Гугл пишет: «Если в обоих слоях есть одинаковый файл, система покажет тот, что лежит в upperdir», что говорит что доподсоединяемый слой как раз должен быть дополнительным, то есть lowerdir=/ должен быть корнем, иначе upperdir= его не перекрывает.

Задал вопрос: может ли ключ место назначения /merged в команде mount overlay overlay lowerdir быть корневым каталогом «/»
Ответ: Технический запрет на «живой» системе: Вы не можете просто выполнить команду mount -t overlay с точкой монтирования / в работающей системе. Корневой каталог уже занят процессами и дисками.

Теперь мне точно понятно что такое /mnt/overlay_merged, это путь после объединения слоёв и мне он нужен корневой «/». Гугл пишет что это можно только на этапе загрузки с помощью initramfs



Последнее исправление: AZJIO (всего исправлений: 2)

Загрузился в Mint (LiveCD). Кликнул на файл squashfs, он смонтировался в /media/mint/disk. Нагуглил команду, где lowerdir - нижний слой нередактируемой фс; upperdir - редактируемый слой LiveCD, хотя там ведь тоже squashfs-файл.

В upperdir монтируй любой пустой каталог, в который есть права на запись (в процессе изменений файлов в объединённой ФС он перестанет быть пустым). Корень, естественно, таковым не является. В workdir — тоже пустой каталог, в который можешь писать.

зависит ли squashfs от того на какой фс создавался?

Нет.

Но как тогда на счёт прав, если файлы были на ntfs.

Зависит от того, как смонтирован ntfs. Короче, всё ровно так же, как и при копировании файлов с ntfs на любую другую нормальную FS.

Ещё можно аргументами командной строки при создании образа задать это (например -all-root или -force-uid + -force-gid + -force-file-mode + -force-dir-mode, подробнее см. man mksquashfs).

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

Есть идеи.

вместо переписки с гуглом опиши, что нужно получить в итоге. А то сложно из текста понять.

Теперь мне точно понятно что такое /mnt/overlay_merged, это путь после объединения слоёв и мне он нужен корневой «/». Гугл пишет что это можно только на этапе загрузки с помощью initramfs

Да initrd. Я такое делал через dracut (модуль fstab-sys). Только у меня на lowerdir не весь /, а только /etc, но принцип одинаковый. И это был не live cd mint, а обычная ОС (gentoo) на usb flash.

P.S. squashfs тут по-моему не имеет значения. К нижележащей (lowerdir) ФС вроде никаких требований в отличие от той, что в upperdir/workdir

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

вместо переписки с гуглом опиши

Я перепишу пост зайдёт другой и скажет: «а ты хоть гуглил». К сожалению я не могу угодить каждому одновременно с противоречивыми запросами.

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

у меня на lowerdir не весь /, а только /etc…

На «только /etc» можно монтировать в любой момент, никаких проблем.

andytux ★★★★★
()

upperdir - редактируемый слой LiveCD, хотя там ведь тоже squashfs-файл…

Нет. Там «персистент». По умолчанию - оперативная память. Если задан параметр ядра ‘persistent’ - раздел или файл.

если их примонтировать позже то DE не подхватит конфиги…

Не совсем так. Ведь приводил пример, когда DE конфигурируется после полной загрузки. Даже специально делаю небольшую задержку, чтобы сначала система полностью загрузила DE и не переправляла мои настройки, а после, автозапуском применяются мои настройки. Впрочем, сильно зависит от конкретного DE.

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

Вчера водой назвал, а надо было посмотреть, там всё отражается (дозированно):

$ cat /proc/mounts
...
/dev/sde2 /cdrom ext4 rw,noatime 0 0
/cow / overlay rw,relatime,lowerdir=/cdrom//opt/casper/ub18.dir,upperdir=/cow/upper,workdir=/cow/work 0 0
andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от andytux

Нет, в любой момент мне не подходит, т.к. сервисы использующие настройки из /etc должны стартовать уже после того, как наложен overlay.

MirandaUser2 ★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)