/dev/dm-n设备添加黑名单,禁止硬盘分区自动被映射

分类:笔记 日期:2020-08-10 作者:caocaofff 浏览:71

有一台centos主机,因为之前加过新硬盘,添加硬盘开机后无法直接使用,因为使用常规fdisk /dev/sdb无效
执行

dmsetup status

看到硬盘和分区被映射,直接dmsetup remove XXX去删除,然后fdisk /dev/sdbmkfs /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了

评论 (暂无评论)

发表评论

昵称:  
邮箱:  
网址: