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給剔除掉。