问题描述
当数据盘superblock损坏重启后,系统fsck检查盘符有问题此时会进入emergency模式 如果没有设置root密码,处为锁定root账号,需要进入单用户模式去设置root密码
问题分析
通常情况下,硬盘在启动时使用fsck -p
来进行检查,它将检查/etc/fstab
中列出的所有本地文件系统。大多数系统设置为启动时自动运行fsck
,希望任何错误在系统使用前被检测到,并得到修正。因为使用错误的文件系统可能使得问题变得更加糟糕,如果fsck
检查不通过则系统进入了emergency模式,具原因需要进入操作系统输入命令journalctl -xe
显示如下报错信息:
在日志报错中显示bad superblock on /dev/vdb
,文件系统超级块损坏。
解决方案
方法一
- 在emergency模式下使用root密码登录操作系统
- 通过命令修改
vi /etc/fstab
文件,将vdb配置文件进行注释,示例如下:
- 执行命令
reboot
重启实例 - 执行命令
e2fsck -f -y /dev/vdb
,执行结果如下:
[root@superblock ~]# e2fsck
-f -y /dev/vdb
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Inode bitmap differences: -262145 -393217 -524289 -786433 -917505
Fix? yes
/dev/vdb: ***** FILE SYSTEM WAS MODIFIED *****
/dev/vdb: 11/1310720 files (0.0% non-contiguous), 126322/5242880 blocks
执行修复工作,注意修复过程有可能导致数据丢失,需要客户在修复前备份好相关数据。
方法二
- 在emergency模式下使用root密码登录操作系统
- 执行命令
e2fsck -f -y /dev/vdb
,执行结果如下:
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #16 (24544, counted=24543).
Fix? yes
Free blocks count wrong for group #32 (24544, counted=24543).
Fix? yes
......
/dev/vdb: ***** FILE SYSTEM WAS MODIFIED *****
/dev/vdb: 24/1310720 files (0.0% non-contiguous), 126335/5242880 blocks
- 执行命令
reboot
重启实例
如果您有其他问题,欢迎您联系火山引擎技术支持服务