分类:笔记 日期:2020-08-10 作者:caocaofff 浏览:1038
有一台centos主机,因为之前加过新硬盘,添加硬盘开机后无法直接使用,因为使用常规fdisk /dev/sdb无效
执行
dmsetup status
看到硬盘和分区被映射,直接dmsetup remove XXX
去删除,然后fdisk /dev/sdb
、mkfs /dev/sdb1
等等。。。
直到有一天停电了。
这台主机也就加硬盘时重启过,后面都没重启,今天重启后,发现硬盘又被加到dm里了,原/dev/sdb1已经不见,只有/dev/sdb。
到/dev/mapper能看到软链接,原/dev/sdb1变成了/dev/dm-6
本来想着干脆直接去挂载dm设备,执行mount /dev/dm-6 /xxx
有提示
mount: /dev/md-6: more filesystems detected. This should not happen, use -t to explicitly specify the filesystem type or use wipefs(8) to clean up the device.
提示的意思是说这个设备有多个文件系统,于是执行wipefs /dev/md-6
果然看到
offset type
----------------------------------------------------------------
0xe8e0c3fc00 zfs_member [filesystem]
0x438 ext4 [filesystem]
[…]
提示说明那里还有一个残留的ZFS文件系统
开始清除ZFS签名
wipefs -o 0xe8e0c3f800 /dev/dm-6
再用wipefs /dev/md-6
,居然还有,再删,还有,再删,还有。。。
感觉这样删下去要完,执行
hexdump -s 0xe8e0c00000 -C /dev/dm-6|grep "0c b1 ba"|wc -l
哇哦,两百多
干脆写个脚本吧
#!/bin/bash
zfsnum=`wipefs /dev/dm-6|grep zfs_mem|wc -l`
if [ $zfsnum -eq 0 ];then
echo bye
exit 0
else
wipefs -o `wipefs /dev/dm-6|grep zfs_mem|awk -F" " '{print$1}'` /dev/dm-6
echo $?
fi
然后循环执行这个脚本
for i in {1..200};do echo $i;sh wipefs.sh ;done
终于看到了只有一个文件系统了
再去挂载dm-6到目录,并没有挂载成功
此方法不妥!
开始修改dm配置文件
vi /etc/multipath.conf
找到blacklist
blacklist {
protocol "(scsi:adt|scsi:sbp)"
devnode "sdb"
}
加上了devnode "sdb",就禁止它自动被映射为dm设备了
重启服务或者重启服务器
systemctl restart multipathd
又可以愉快的挂载/dev/sdb1了
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接