Por que uma partição pode aparecer em `mount` mas não em` df`?

6

Se eu comparar isso

$> sudo mount | grep sdb
/dev/sdb1 on /windows type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb2 on /store type ext4 (rw)

com isso

$> sudo df -h | grep sdb
/dev/sdb1               94G   59G   35G  63% /windows

Eu vejo / dev / sdb2 está faltando. Mas se eu executar isso:

$> df -h /dev/sdb2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb2       367G  342G  6.2G  99% /store

Está lá. Por que isso pode estar acontecendo?

Eu não tenho /etc/udev/rules.d/99-hide-disks.rules Arquivo. Observe também

$> grep store /etc/fstab
# /store was on /dev/sdb3 during installation
UUID=760630a7-223f-42e4-aecf-de92e32f12b9 /store          ext4    defaults        0       2

Produção completa de df:

Filesystem            1K-blocks      Used Available Use% Mounted on
/dev/sda5              14287344   7560960   5977584  56% /
none                          4         0         4   0% /sys/fs/cgroup
udev                    8140000   8140000         0 100% /dev
tmpfs                   1631016     68292   1562724   5% /run
none                       5120         4      5116   1% /run/lock
none                    8155080     23212   8131868   1% /run/shm
none                     102400        24    102376   1% /run/user
/dev/sda7              73385208   4711820  64922580   7% /home
/dev/sdb1              97650684  61264484  36386200  63% /windows
/dev/sda2                 97280     32492     64788  34% /boot/efi
/store/var/tmp        384466988 357170340   7743728  98% /var/tmp
/home/me/.Private      73385208   4711820  64922580   7% /home/me

Produção completa de mount:

/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,discard)
proc on /proc type proc (rw,nodev,noexec,nosuid)
sysfs on /sys type sysfs (rw,nodev,noexec,nosuid)
none on /sys/fs/cgroup type tmpfs (rw,uid=0,gid=0,mode=0755,size=1024)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,nodev,noexec,nosuid,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,nodev,noexec,nosuid,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
none on /dev/.bootchart/proc type proc (rw,relatime)
/dev/sda7 on /home type ext4 (rw,noatime,discard)
/dev/sdb1 on /windows type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sda2 on /boot/efi type vfat (rw)
/dev/sdb2 on /store type ext4 (rw)
/store/tmp on /tmp type none (rw,bind)
/store/var/tmp on /var/tmp type none (rw,bind)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nodev,noexec,nosuid)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,noexec,nodev,none,name=systemd)
/home/.ecryptfs/me/.Private on /home/me
spraff
fonte
A partição pode aparecer em df Como /dev/disk/by-uuid/something. Você deve grep para /store ao invés de sdb.
user49740
É mostrado se você acabou de executar df? Eu estou querendo saber se o grep está fazendo algo estranho, talvez seja algo parecido com algo. Você pode ver sdb2 na produção completa de df?
terdon
Não e não. Produção completa de df e montar .
spraff
O que você ganha se você apenas exec df -h | grep sdbsem sudo? Quase parece que o seu superusuário e usuário regular têm visões diferentes nos sistemas de arquivos como visto por df.
hBy2Py
Você poderia postar a saída de ls -l /etc/mtab e conteúdo completo de /proc/self/mounts?
grawity

Respostas:

5

A razão porque

sudo df -h | grep sdb

não produziu nenhuma linha relacionada a sdb2 no seu sistema é porque a saída de sudo df -h não continha qualquer referência a sdb2. Para verificar isso, observe a saída de df -h manualmente. Existe uma referência a sdb1 e para /store/var/tmp, mas nada sobre sdb2. (Só é listado quando /dev/sdb2 é fornecido explicitamente como um argumento para df, como no seu terceiro snippet de código.) Esta é tecnicamente a pergunta que você fez.

Implícito na questão também é por que df -h não produz uma linha relacionada a /dev/sdb2 quando está claramente montado. Descobrir isso exigiria mais informações sobre o seu sistema; por exemplo, veja este 2014 relatório de erro para a Red Hat, explicando que as mudanças /etc/mtab pode criar duplicatas que df tenta reduzir. Isso pode fazer com que partições montadas não apareçam.

Mike Chapman
fonte
2
A primeira parte parece excessiva para mim; Tenho certeza que o consulente está ciente de como grep trabalho. Ainda com +1 de mim para descobrir este relatório de bug.
Kamil Maciorowski
Não era dolorosamente óbvio por que o grep não retornou uma linha para o sdb2, eu tive que procurar várias vezes antes de perceber, então eu pensei em primeiro apontar isso. Obrigado por ajudar com o mini-Markdown, ainda estou aprendendo a formatação.
Mike Chapman