Собственный контейнер libertine в пользовательском каталоге или разделе

Есть ли способ установить собственный контейнер libertine в пользовательский каталог или раздел? Я думаю, что основной размер (объем) установки контейнера относится к такой директории:

/home/phablet/.cache/libertine-container/my-container/rootfs

Конечно, будет полезно узнать список других расположений файлов собственного контейнера, таких как:

~/.local/share/libertine/ContainersConfig.json
~/.cache/libertine-container/my-container
~/.cache/my-container
~/.local/share/libertine-container/user-data/my-container
~/.local/share/libertine-container/user-data/my-container/.cach/libertine-container/my-container

Теперь я вижу только способ использования mount --bind.., но при этом у нас есть несколько проблем с /etc/fstab редактирование или использование /etc/rc.local или upstart скрипт для автоматического монтирования при запуске устройства.

Итак, второй вопрос: если я использую mount --bind.. для привязки /home/phablet/.cache/libertine-container/my-container/rootfs время от времени вручную, тогда у меня будут проблемы с правильной работой либертинового прицела ( как описано здесь)?

1 ответ

Решение

Перед нашими действиями у нас должна быть SD-карта с ext2/3/4 раздел. В Ubuntu Touch это можно представить как /dev/mmcblk1p2 (в моем случае). Если мы хотим постоянный монтаж, мы не можем использовать /etc/fstab/ но мы можем использовать /lib/init/fstab как я указал в ответе там. Постоянный монтаж SD в Ubuntu Touch не удобен и не стабилен. Иногда из-за ошибки в файловой системе раздела ext2 у меня возникали проблемы с загрузкой Ubuntu Touch. Возможно, сбивание устройства не выполняет демонтаж правильно. Итак, я решил установить SD-карту и время от времени использовать на ней контейнер Libertine.

Сначала я создал новый контейнер с именем sd-container как обычно во внутреннем дисковом пространстве: /home/phablet/.cache/libertine-container/sd-container, Затем я смонтировал раздел ext2 на SD с помощью такой команды:

sudo mount /dev/mmcblk1p2 /home/phablet/mnt/sd -t ext2 -o defaults,noatime,nodiratime,errors=remount-ro

тогда я сделал каталог /home/phablet/mnt/sd/sd-container/ и сделал копию rootfs sd-контейнера в ext2 раздел на SD:

cd /home/phablet/.cache/libertine-container/sd-container
rsync -aAXvH ./ /home/phablet/mnt/sd/sd-container/

После этой подготовки я сделал скрипт для монтирования раздела ext2 на SD и для привязки rootfs (sdgo.sh):

#!/bin/sh
sudo mount /dev/mmcblk1p2 /home/phablet/mnt/sd -t ext2 -o defaults,noatime,nodiratime,errors=remount-ro
sudo mount --bind  /home/phablet/mnt/sd/sd-container/rootfs /home/phablet/.cache/libertine-container/sd-container/rootfs
restart unity8-dash

и скрипт, чтобы остановить игру с этим (sdstop.sh):

#!/bin/sh
sudo umount /home/phablet/.cache/libertine-container/sd-container/rootfs
sudo umount /dev/mmcblk1p2
restart unity8-dash

Наконец, после того, как я бегу sdgo.sh Unity8-тире перезагружается, и я вижу новую область видимости SD-контейнера и его приложения в области Desktop App Scope. Я могу запускать или устанавливать новые приложения, как обычно. Но rootfs этого контейнера находится на SD-карте! Когда я хочу остановиться, я бегу sdstop.sh и область SD-контейнера исчезает. И маленький оригинал rootfs (скрытый этой привязкой) остается на внутреннем дисковом пространстве без изменений.

Вывод: у меня есть rootfs контейнера Libertine на SD-карте и возможность включить / выключить его и его объем, когда я захочу.

Другие вопросы по тегам