Eu tenho acesso a um sistema Ubuntu que é assim:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
[...]
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 650M 0 part /boot/efi
└─nvme0n1p2 259:2 0 372.5G 0 part /
Eu configurei um Debian/sid schroot assim:
$ cat /etc/schroot/chroot.d/sid64
[sid64]
description=Contains the SPICE program
aliases=sid
type=directory
directory=/home/malat/schroots/sid-root
users=malat
root-groups=root
profile=desktop
personality=linux
preserve-environment=true
Eu não mudei nada para /etc/schroot/default/fstab
, e ao entrar no meu schroot sid64
aqui está o que vejo:
$ schroot -c sid
(sid64)$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
[...]
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 650M 0 part
└─nvme0n1p2 259:2 0 372.5G 0 part /var/lib/dbus
Se eu fizer manualmente:
$ sudo mount /dev/sda1 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part /mnt/bdc64c37-340a-49e5-8184-a69e01e5e231
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 650M 0 part
└─nvme0n1p2 259:2 0 372.5G 0 part /var/lib/dbus
Como posso montar automaticamente /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
no meu schroot (este é meu disco principal onde meus dados estão localizados)?
Até agora eu tentei um ingênuo:
$ sudo mkdir /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ tail -1 /etc/schroot/default/fstab
/dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0 0
$ schroot -c sid
(sid64)$ ls -al /dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231
lrwxrwxrwx 1 root root 10 Jan 8 01:00 /dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 -> ../../sda1
assim como:
$ tail -1 /etc/schroot/default/fstab
/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0 0
Ambos não funcionaram para mim.
Eu também tentei um ingênuo:
$ sudo mount --rbind /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ mount | grep dbc64c37
/dev/sda1 on /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 type ext4 (rw,nosuid,nodev,relatime,x-gvfs-show)
/dev/sda1 on /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 type ext4 (rw,nosuid,nodev,relatime)
$ schroot -c sid
(sid64)$ ls -al /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
-> empty !
Seu primeiro erro na primeira tentativa:
Você tentou montar automaticamente a partição
sda1
, em vez de fornecer o ponto de montagem do sistema de arquivos já montado:Em vez disso, deve ficar assim:
As partições nunca são montadas via bind, diretórios já montados ou até mesmo arquivos são. A configuração correta para
/etc/fstab
dentro do seu chroot ficaria assim:Você NÃO faz isso - a menos que você tenha desmontado
sda1
fora do chroot! Você efetivamente montaria duas vezes duassda1
vezes e corromperia o fs, portanto, se possível.Sua segunda tentativa fora do chroot deve ter funcionado:
Mas a saída de
mount
não se encaixa:A primeira saída de
lsblk
nos disse que não há partição para ahome
árvore! Então, por que mount indica obind
ponto de montagem a ser ativado/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
? O caminho correto deve estar/home/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
emnvme0n1p2
!Tentar:
Se for um sucesso, você pode automatizar isso sem
schroot
sair do seu chroot nofstab
com:Como um chroot impede o acesso à hierarquia de arquivos "host" e você mencionou não ter alterado
/etc/schroot/default/fstab
, obind mount
dentro do schroot deve falhar. Isso ocorre porque/mnt
não está incluído no fstab schroot. E se fosse, já teria sido "montado em ligação".Essa pergunta me provocou e levei 2 horas para responder. Eu espero que dê certo. Btw, eu fui lembrado sobre schroot e me deu um entendimento básico sobre a montagem, agora. ;)
PS A saída de
lsblk
dentro do chroot não pode estar correta! Ele afirma quesda1
montado fora do chroot under/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
seria a raiz (/) dentro do chroot. Isto é falso! A raiz do chroot está/home/malat/debian/sid-root/
na partiçãonvme0n1p2
!Portanto, a solução foi simplesmente ler corretamente meu arquivo de configuração schroot. Declarou:
Então eu preciso editar o arquivo:
/etc/schroot/desktop/fstab
e não/etc/schroot/default/fstab
( desktop != default ).Eu usei :
E agora tenho: