Antes de nossas ações, deveríamos ter um cartão SD com ext2/3/4
partition. No Ubuntu Touch pode ser representado como /dev/mmcblk1p2
(no meu caso). Se quisermos uma montagem permanente, não podemos usar /etc/fstab/
, mas podemos usar /lib/init/fstab
como eu
Primeiramente, criei um novo contêiner com o nome sd-container
normalmente no espaço em disco interno: /home/phablet/.cache/libertine-container/sd-container
. Em seguida, montei a partição ext2 no SD com esse comando:
sudo mount /dev/mmcblk1p2 /home/phablet/mnt/sd -t ext2 -o defaults,noatime,nodiratime,errors=remount-ro
então eu fiz o diretório /home/phablet/mnt/sd/sd-container/
e fiz uma cópia do rootfs do sd-container para a partição ext2 no SD:
cd /home/phablet/.cache/libertine-container/sd-container
rsync -aAXvH ./ /home/phablet/mnt/sd/sd-container/
Após esta preparação, fiz o script para montar a partição ext2 no SD e para ligar o 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
e script para parar de jogar com isso ( sdstop.sh
):
#!/bin/sh
sudo umount /home/phablet/.cache/libertine-container/sd-container/rootfs
sudo umount /dev/mmcblk1p2
restart unity8-dash
Finalmente, depois de executar as reinicializações sdgo.sh
unity8-dash, posso ver o novo escopo do contêiner SD e seus aplicativos no âmbito do Desktop App Scope. Eu posso executar ou instalar novos aplicativos como de costume. Mas rootfs deste contêiner está situado no cartão SD! Quando eu quiser parar, eu corro sdstop.sh
e o escopo do contêiner SD desaparece. E o pequeno% originalrootfs
(oculto por essa ligação) permanece no espaço do disco interno sem alterações.
Conclusão: eu tenho rootfs de contêiner Libertine no cartão SD e possibilidade de ligar / desligar e seu escopo quando eu quiser.