Собственный контейнер 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-карте и возможность включить / выключить его и его объем, когда я захочу.