Por que posso (ou não) montar um dispositivo montado novamente? O que está acontecendo?

2

Por que eu posso (ou não) montar um dispositivo montado novamente? O que está acontecendo?
Por exemplo:

/tmp/test$ sudo mount /dev/sda5 ./1;echo ${?}
0
/tmp/test$ sudo mount /dev/sda5 ./2;echo ${?}
0
/tmp/test$ sudo mount | grep test
/dev/sda5 on /tmp/test/1 type ext4 (rw,relatime,data=ordered)
/dev/sda5 on /tmp/test/2 type ext4 (rw,relatime,data=ordered)
/tmp/test$ sudo umount ./1 ./2;echo ${?}
0
/tmp/test$ sudo losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE          DIO
/dev/loop0         0      0         0  0 /tmp/test/grub.iso   0
/tmp/test$ sudo mount /dev/loop0 ./1;echo ${?}
mount: /dev/loop0 is write-protected, mounting read-only
0
/tmp/test$ sudo mount /dev/loop0 ./2;echo ${?}
mount: /dev/loop0 is already mounted or /tmp/test/2 busy
       /dev/loop0 is already mounted on /tmp/test/1
32
/tmp/test$ sudo mount | grep test
/dev/loop0 on /tmp/test/1 type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/tmp/test$ 
    
por illiterate 03.09.2018 / 11:38

2 respostas

1

Parece que esse é o sinalizador -w e -r para vários locais que precisam ser montados.

Por exemplo ( /dev/sda5 já está montado com -o rw ):

$ sudo mount -r ./grub.iso ./1;echo $?
0
$ sudo mount -r ./grub.iso ./2;echo $?
0
$ sudo mount -r ./grub.iso ./3;echo $?
0
$ sudo umount ./1 ./2 ./3;echo $?
0
$ sudo mount -r /dev/sda5 /mnt;echo $?
mount: /dev/sda5 is already mounted or /mnt busy
       /dev/sda5 is already mounted on /home/xx/yy
32

Veja também montagem do homem para alongamento :

-w, --rw, --read-write
          Mount the filesystem read/write.  This is the default.  A synonym is -o rw.

Isso é (parece) porque você pode montar /dev/sda5 em vários locais com opções padrão, mas não pode montar grub.iso com opções padrão em vários locais

    
por 05.09.2018 / 11:17
0

A julgar pela evidência: o /dev/sda2 foi originalmente montado como / (raiz do sistema de arquivos). Mas o fstab foi completamente desativado e a montagem principal é feita no arquivo de script my_init . Lá, a primeira montagem adiciona o /dev/sda2 completo que contém o sistema de arquivos raiz original, a próxima linha é montada na mesma opção /home/ only /home/home/ by --bind para ocultar o restante do sistema de arquivos raiz original. Se você fizer umount /home/ uma vez, deverá ver (como escrevi) todo o sistema de arquivos raiz original na pasta /home/ , ou seja, ls / home /, em seguida, dá: bin boot dev etc home ...

Não me pergunte por que alguém fez isso.

    
por 03.09.2018 / 15:24