为什么一个分区会出现在 `mount` 中而不是 `df` 中?

spr*_*aff 12 linux mount df

如果我比较这个

$> 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)
Run Code Online (Sandbox Code Playgroud)

有了这个

$> sudo df -h | grep sdb
/dev/sdb1               94G   59G   35G  63% /windows
Run Code Online (Sandbox Code Playgroud)

我看到 /dev/sdb2 丢失了。但是如果我运行这个:

$> df -h /dev/sdb2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb2       367G  342G  6.2G  99% /store
Run Code Online (Sandbox Code Playgroud)

在那。为什么会发生这种情况?

我没有/etc/udev/rules.d/99-hide-disks.rules文件。还要注意

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

的完整输出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
Run Code Online (Sandbox Code Playgroud)

的完整输出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
Run Code Online (Sandbox Code Playgroud)

小智 7

之所以

sudo df -h | grep sdb
Run Code Online (Sandbox Code Playgroud)

没有sdb2在您的系统上输出任何与 相关的行是因为输出sudo df -h不包含对sdb2. 要验证这一点,请查看df -h手动输出。有对sdb1和的引用/store/var/tmp,但没有关于sdb2。(它仅在/dev/sdb2作为参数明确提供给时才会列出df,如在您的第三个代码片段中。)从技术上讲,这就是您提出的问题。

问题中还隐含着为什么df -h不输出与/dev/sdb2明确安装时相关的行。要找出答案,需要有关您系统的更多信息;例如,请参阅Red Hat 的2014 年错误报告,其中解释了更改/etc/mtab可以创建df试图减少的重复项。这可能会导致已安装的分区无法浮出水面。

  • 第一部分对我来说似乎太过分了;我很确定提问者知道 `grep` 是如何工作的。仍然从我那里得到 +1 来挖掘这个错误报告。 (5认同)