已安装的文件系统显示错误的详细信息

已安装的文件系统显示错误的详细信息

我使用的是 SLES 11 SP3。当我运行df -lh以查看已安装的文件系统时,我得到以下结果,这些结果是正确的:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb3       9.9G  2.9G  6.5G  31% /
udev             32G  240K   32G   1% /dev
/dev/sdb1       156M   12M  145M   8% /boot/efi
/dev/sdb4       100G   11G   90G  11% /home
/dev/sdb5       383G   33M  383G   1% /data1
/dev/sda1       2.2T  5.3G  2.2T   1% /data2
/dev/sda2       2.4T   34M  2.4T   1% /data3

当我重新启动服务器并再次运行相同的命令时,我得到以下结果:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb3       9.9G  2.9G  6.5G  31% /
udev             32G  240K   32G   1% /dev
/dev/sdb1       9.9G  2.9G  6.5G  31% /boot/efi
/dev/sdb4       9.9G  2.9G  6.5G  31% /home
/dev/sdb5       9.9G  2.9G  6.5G  31% /data1
/dev/sda1       9.9G  2.9G  6.5G  31% /data2
/dev/sda2       9.9G  2.9G  6.5G  31% /data3

显然, 的详细信息/被复制到其他坐骑。

为了解决这个问题,我创建了一个脚本并将其保存在/etc/rc.d/rc3.d.脚本如下:

#!/bin/ksh

PATH=/usr/sbin:/usr/bin:/bin

/bin/umount /home /data1 /data2 /data3 /boot/efi; sleep 2; /bin/mount -a

现在,将脚本保留在 中/etc/rc.d/rc3.d,我重新启动服务器并运行df -lh,它显示了正确的结果。

/etc/fstab 内容:

/dev/disk/by-id/scsi-3600508e0000000000f6ecbedd51a340e-part1    /boot/efi            vfat       umask=0002,utf8=true    0 0
/dev/disk/by-id/scsi-3600508e0000000000f6ecbedd51a340e-part2    swap                 swap       defaults                0 0
/dev/disk/by-id/scsi-3600508e0000000000f6ecbedd51a340e-part3    /                    ext3       acl,user_xattr          0 0
/dev/disk/by-id/scsi-3600508e0000000000f6ecbedd51a340e-part4    /home                xfs        defaults                0 0
/dev/disk/by-id/scsi-3600508e0000000000f6ecbedd51a340e-part5    /data1               xfs        defaults                0 0
/dev/disk/by-id/scsi-3600605b006a1b3a01cf0a6ee20e4a325-part1    /data2               xfs        defaults                0 0
/dev/disk/by-id/scsi-3600605b006a1b3a01cf0a6ee20e4a325-part2    /data3               xfs        defaults                0 0
proc                                                            /proc                proc       defaults                0 0
sysfs                                                           /sys                 sysfs      noauto                  0 0
debugfs                                                         /sys/kernel/debug    debugfs    noauto                  0 0
usbfs                                                           /proc/bus/usb        usbfs      noauto                  0 0
devpts                                                          /dev/pts             devpts     mode=0620,gid=5         0 0
  1. 为什么每次重新启动机器时我都会得到错误的统计数据?
  2. 有没有任何软件包/补丁可以解决这个问题?

答案1

我不太熟悉 SLES11 SP3,但文件系统是在/etc/fstab启动时自动安装的(取决于在那里找到的选项)。您所看到的看起来像是挂载被添加到挂载表中,但它们没有成功,因此正在使用父文件系统的状态(在您的示例中为“/”)。

当显示正确的输出和不显示正确的输出时,我都会mount单独运行该命令。df然后,我会通过选择一个条目(例如/boot/efi)并检查差异来比较两者。下一步将取决于我的发现。

啊,你用你的内容更新了你的 OP /etc/fstab,我看到所有分区都在 SCSI 驱动器上。mount发出命令时 SCSI 子系统可能尚未完全配置。将安装移动到启动顺序的稍后位置可能会解决该问题。

尝试安装时xfs和模块也可能不可用。vfat如果您在上次initrd生成 XFS 分区后添加了 XFS 分区(通过mkinitrddracut;我不确定 SLES11 SP3 使用哪一个),则这种情况很常见。这些程序扫描您正在运行的系统以查找内核模块,然后将其添加到启动脚本中,以便这些模块在启动过程的早期加载。我记得 RHEL 有一个配置文件,/etc/sysconfig/可以在其中强制加载某些模块(例如xfsvfat),但如果在正确安装文件系统时重建 initrd,则可能不需要它们。

相关内容