openstack中把volume detach掉后,重新attach回来会有一定概率导致分区无法挂载,手动mount一下后会发现报错filesystem无法识别。
表象可能是lsblk和df显示的磁盘大小不一致。主动指明成ext4后再次mount后,仍然会是失败,这个时候就需要手动恢复一下filesystem了。
先把磁盘去掉挂载, 以下均以/dev/vdb为例
1
# unmount /dev/vdb
如果失败,则修改/etc/fstab里的记录,注释掉挂载,然后重启OS。
用fsck检查磁盘
1
2
3
4
5
6
7
8# e2fsck /dev/vdb
e2fsck 1.41.12 (17-May-2010)
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 sumary information
ext4-1:11/131072 files (0.0% non-contiguous),27050/524128 blocks用resize2fs重新恢复一次磁盘filesystem
1
2
3
4# resize2fs /dev/vdb
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vdb to 524128 (1k) blocks.
The filesystem on /dev/vdb is now 524128 blocks long.再次mount回来,检查文件。
1
# mount /dev/vdb /data0