重新启动后磁盘分区不会安装到文件系统

重新启动后磁盘分区不会安装到文件系统

我有一台虚拟机,昨晚重新启动,但我们无法通过 ssh 连接到它。我使用控制台并只看到它/swap使用命令安装lsblk

  NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  sr0     11:0    1 1024M  0 rom
  sdb      8:16   0    8G  0 disk
  ├─sdb1   8:17   0    2G  0 part 
  └─sdb2   8:18   0    6G  0 part [SWAP]
  sdc      8:32   0   20G  0 disk
  └─sdc1   8:33   0   20G  0 part 
  sde      8:64   0  400M  0 disk
  └─sde1   8:65   0  399M  0 part 
  sda      8:0    0   20G  0 disk
  └─sda1   8:1    0   20G  0 part /
 sdd      8:48   0   20G  0 disk
 └─sdd1   8:49   0   20G  0 part 
 sdf      8:80   0   10G  0 disk
 └─sdf1   8:81   0   10G  0 part   

但是当我跑的时候df -h

  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1        20G  1.2G   18G   7% /
  tmpfs           7.8G     0   7.8G   0% /dev/shm
  /dev/sde1        20G    1.2G  18G   7% /boot
  /dev/sdd1        20G    1.2G  18G   7% /data
  /dev/sdc1        20G    1.2G  18G   7% /opt
  /dev/sdb1        20G    1.2G  18G   7% /var
  /dev/sdf1        20G    1.2G  18G   7% /backup

当我运行ls -hal它们时,除了 .i 尝试卸载和安装分区外,它们都是空的,但/出现分区未安装的错误。我再次安装它们,例如:

mount /dev/sdf1 /backup

df -h

 Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  1.2G   18G   7% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
/dev/sde1       387M   40M  327M  11% /boot
/dev/sdd1        20G   14G  4.9G  75% /data
/dev/sdc1        20G  1.4G   18G   8% /opt
/dev/sdb1       2.0G  155M  1.8G   9% /var
/dev/sdf1       9.9G  2.4G  7.0G  26% /backup  

一切都很好。我重新启动来测试它。又发生了。仅/安装了和交换。blkid输出:

   /dev/sdb1: UUID="3a11afe1-52d5-4e31-96a0-66da2c8e70eb" TYPE="ext3"
   /dev/sdf1: UUID="0e1f69a7-36d9-4af1-a537-afaa211e87d7" TYPE="ext3"
   /dev/sdb2: UUID="416970f8-c21b-419b-90d5-eb8eabb685a6" TYPE="swap"
   /dev/sdc1: UUID="d380ddf8-3476-46b3-8e80-9dd3b394dd13" TYPE="ext3"
   /dev/sde1: UUID="b224fa8a-e909-432e-927e-4a98fe2d74d0" TYPE="ext3"
   /dev/sda1: UUID="9407e385-168c-4e37-9651-1de04406b620" SEC_TYPE="ext2" 
   TYPE="ext3"
   /dev/sdd1: UUID="e8439366-d29d-43c3-ad5e-635855f4e42e" TYPE="ext3"

部分cat /etc/fstab输出:

  UUID=9407e385-168c-4e37-9651-1de04406b620 /         ext3    defaults   0 0
  UUID=b224fa8a-e909-432e-927e-4a98fe2d74d0 /boot     ext3    defaults   0 0
  UUID=e8439366-d29d-43c3-ad5e-635855f4e42e /data     ext3    defaults   0 0
  UUID=d380ddf8-3476-46b3-8e80-9dd3b394dd13 /opt      ext3    defaults   0 0
  UUID=3a11afe1-52d5-4e31-96a0-66da2c8e70eb /var      ext3    defaults   0 0
  UUID=416970f8-c21b-419b-90d5-eb8eabb685a6 swap      swap    defaults   0 0
  UUID=0e1f69a7-36d9-4af1-a537-afaa211e87d7 /backup   ext3    defaults   0 0

为什么会发生这种情况?

答案1

也许某人或某事导致/etc/mtab变得不可写(不可变文件?文件系统错误使根文件系统保持只读?),并且它包含重新启动之前的旧数据。因此,mountdf命令认为文件系统已经安装,即使它们实际上没有安装。

检查文件系统是否处于只读状态:grep ro, /proc/mounts

检查不可变/etc/mtablsattr /etc/mtab

如有必要,请使用该chattr -i /etc/mtab命令删除i可变标志/etc/mtab

在现代系统中,越来越频繁地成为或 的/etc/mtab符号链接。如果您的系统/发行版具有旧版本的命令,则此类链接可能会导致挂载选项失败,因为它无法记录将特定文件系统挂载到的用户名。如果您不使用挂载选项,您也可以在旧系统上创建此符号链接。/proc/mounts/proc/self/mountsmountuser/etc/mtabuser

这种链接的优点是不会发生像您遇到的错误,因为/proc/mounts(或/proc/self/mounts在具有命名空间支持的系统上)始终具有直接来自内核本身的有关已安装文件系统的最新信息。

该命令的较新版本mount将用于/run/mount此目的,而不是/etc/mtab链接到/proc/self/mounts.

如果您发现/etc/mtab已设置为不可变,并且没有找到其他原因,那么您可能已被黑客攻击,因为设置/etc/mtab不可变可能是入侵者隐藏其工具以防止偶然观察的一种方式......

答案2

您的根文件系统可能在系统关闭之前设置为只读,并且umount用于卸载所有磁盘的命令无法从/etc/mtab.启动时,mount -a命令(“安装尚未安装的所有内容”)查看/etc/mtab并确定所有内容都已安装,因此无需执行任何操作。

这可以解释您的所有症状: - 启动时无法应用安装 -df -h命令显示多个安装点基本上相同的磁盘 - 当您尝试卸载明显安装的文件系统时出现“未安装”错误 - 尝试卸载后安装工作正常。

一如既往建议经过电信公司最好将该文件替换/etc/mtab/proc/mounts.但请谨慎接受此建议:如果系统未设置为预期会出现这种情况,则可能会破坏您的系统。

答案3

我读过了罗埃马电信公司答案并发现所有文件系统包括/都是只读的。我检查了内核消息dmesg,发现 SELinux 阻止了 VM 分区的安装。一切都是只读的,我无法禁用 SELinux,/etc/selinux/config所以我使用了 UBUNTUlive,禁用了 SELinux,重新启动了我的系统,一切都很好并恢复正常。

相关内容