我有一台虚拟机,昨晚重新启动,但我们无法通过 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
变得不可写(不可变文件?文件系统错误使根文件系统保持只读?),并且它包含重新启动之前的旧数据。因此,mount
和df
命令认为文件系统已经安装,即使它们实际上没有安装。
检查文件系统是否处于只读状态:grep ro, /proc/mounts
检查不可变/etc/mtab
:lsattr /etc/mtab
如有必要,请使用该chattr -i /etc/mtab
命令删除i
可变标志/etc/mtab
。
在现代系统中,越来越频繁地成为或 的/etc/mtab
符号链接。如果您的系统/发行版具有旧版本的命令,则此类链接可能会导致挂载选项失败,因为它无法记录将特定文件系统挂载到的用户名。如果您不使用挂载选项,您也可以在旧系统上创建此符号链接。/proc/mounts
/proc/self/mounts
mount
user
/etc/mtab
user
这种链接的优点是不会发生像您遇到的错误,因为/proc/mounts
(或/proc/self/mounts
在具有命名空间支持的系统上)始终具有直接来自内核本身的有关已安装文件系统的最新信息。
该命令的较新版本mount
将用于/run/mount
此目的,而不是/etc/mtab
链接到/proc/self/mounts
.
如果您发现/etc/mtab
已设置为不可变,并且没有找到其他原因,那么您可能已被黑客攻击,因为设置/etc/mtab
不可变可能是入侵者隐藏其工具以防止偶然观察的一种方式......