Linux下挂载磁盘报superblock错误
Linux下挂载磁盘报superblock错误
- 背景
- 问题现象
- 1、使用fdisk查询设备文件信息
- 2、挂载磁盘,报出fs type错误
- 解决办法
- 1、使用e2fsk命令检查整个磁盘
- 2、resize2fs 命令调整文件系统块大小和物理磁盘块大小
- 3、挂载磁盘,确认修复结果
- 问题思考
- 1、rclone命令做数据迁移
- 2、磁盘热插拔
背景
近期在做数据处理工作,经常需要从本地系统采集数据,磁盘插拔到数据中心服务器上,发现数据文件系统为ext4格式。数据盘出现fs type错误,无法识别磁盘文件系统,但磁盘本身也没有机械损坏。
问题现象
windows系统中,ext4文件系统磁盘无法识别,属于正常现象。在Ubtun系统中,无法mount,可以读取磁盘的基本信息及文件系统类型等。
1、使用fdisk查询设备文件信息
sudo fdisk -l
2、挂载磁盘,报出fs type错误
sudo mount -t ext4 /dev/sdb /mnt/data
解决办法
1、使用e2fsk命令检查整个磁盘
sudo e2fsck -f /dev/sdb
check过程选择no,获取磁盘blocks
输出信息显示,物理磁盘块的大小为:976754644,文件系统块大小为:976754646,分配超出2个块信息。
2、resize2fs 命令调整文件系统块大小和物理磁盘块大小
sudo resize2fs /dev/sdb 976754644
提示调整文件系统块大小成功,文件系统块和物理磁盘块大小保持相同。
3、挂载磁盘,确认修复结果
sudo mount -t ext4 /dev/sdb /mnt/data
磁盘显示挂载成功
问题思考
1、rclone命令做数据迁移
使用移动磁盘,在系统间进行数据迁移,由于系统默认文件系统块的大小不同,有可能导致磁盘被溢出超写
2、磁盘热插拔
在磁盘热插拔过程,有可能数据写入不完整导致数据块破坏,此时可以将坏的blocks给剔除掉。