mount não imprime partições montadas

3

Quando digito mount , devo obter uma lista de sistemas de arquivos montados. Mas eu não entendo nada.

Eu tenho os arquivos necessários:

/proc/mounts 
/etc/mtab -> /proc/mounts

Além disso, cat /etc/mtab funciona bem. Eu recebo a saída correta, como:

/dev/root / ext4 ro,relatime,data=ordered 0 0
....

Quais arquivos mount precisam imprimir a saída correta? Eu sempre pensei, que /etc/mtab é suficiente. De onde mount obtém suas informações, senão de /etc/mtab ?

    
por Martin Vegter 01.01.2014 / 19:32

1 resposta

1

Se você estiver tentando determinar qual arquivo o comando mount utiliza, eu o executarei por meio de strace e ver quais chamadas de sistema são feitas e quais arquivos são acessados como resultado.

Exemplo

Ao olhar para a saída no meu sistema Fedora 19, notei o seguinte arquivo sendo aberto quando eu corro mount .

$ strace -o mount_strace.log mount

Agora, grep'ing para open chamadas.

$ grep open strace_mount.log 
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
open("/run/mount/utab", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
open("/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 3
open("/sys/block/dm-1/dm/name", O_RDONLY|O_CLOEXEC) = 3
open("/sys/block/dm-2/dm/name", O_RDONLY|O_CLOEXEC) = 3

O que parece ser responsável é esse arquivo /proc , /proc/self/mountinfo .

Amostra

$ tail /proc/self/mountinfo
36 16 0:7 / /sys/kernel/debug rw,relatime shared:22 - debugfs debugfs rw
37 17 0:12 / /dev/mqueue rw,relatime shared:23 - mqueue mqueue rw,seclabel
38 34 0:30 / /tmp rw shared:24 - tmpfs tmpfs rw,seclabel
39 17 0:31 / /dev/hugepages rw,relatime shared:25 - hugetlbfs hugetlbfs rw,seclabel
40 16 0:32 / /sys/kernel/config rw,relatime shared:26 - configfs configfs rw
41 35 0:33 / /proc/sys/fs/binfmt_misc rw,relatime shared:27 - binfmt_misc binfmt_misc rw
44 34 8:1 / /boot rw,relatime shared:28 - ext4 /dev/sda1 rw,seclabel,data=ordered
45 34 253:2 / /home rw,relatime shared:29 - ext4 /dev/mapper/fedora_greeneggs-home rw,seclabel,data=ordered
110 22 0:34 / /run/user/1000/gvfs rw,nosuid,nodev,relatime shared:92 - fuse.gvfsd-fuse gvfsd-fuse rw,user_id=1000,group_id=1000
113 16 0:35 / /sys/fs/fuse/connections rw,relatime shared:95 - fusectl fusectl rw

Você pode ver as montagens lá. Como com a maioria dos arquivos /proc , existem campos adicionais neste arquivo, mas a quinta coluna parece ser as montagens.

    
por 02.01.2014 / 01:22

Tags