磁盘占用 与 dmsetup
如果你在挂载磁盘的过程中遇到以下内容
1 | /dev/sdb is apparently in use by the system; will not make a filesystem here! |
dmsetup 命令 (在处理问题前,需要理解 dmsetup)
原文:https://blog.csdn.net/weixin_42425141/article/details/123517764
一、介绍
1 | 😊 Mapped Device 是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备,它通过 Mapping Table 描述的映射关系和 Target Device 建立映射。Target device 表示的是 Mapped Device 所映射的物理空间段,对 Mapped Device 所表示逻辑设备来收,就是该逻辑设备映射到的一个物理设备。 |
二、dmsetup介绍
😊 其实 lvm 所管理的逻辑卷,是 dm 设备的软链接,而直接操作 dm 设备,我们就可以用 dmsetup。
三、dmsetup 命令语法格式
1 | # command 常见的有 remove 、 ls 、status 等 |
常用命令
1 | 显示当前 devicemapper 的信息 |
五、案例
下面将演示一个 lv 程序无法处理的问题。必须使用 dmsetup 来处理
1 | 亲测有效处理办法 |
故障复现及恢复
1、创建 lv 逻辑卷
1 | [root@seed-84 ~]# vgcreate vg-test /dev/sdb |
查看逻辑卷
1 | LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert |
2、查看 lvm 路径
1 | [root@seed-84 ~]# ll /dev/mapper/vg--test-vg--lv |
3、rm 删除 dm-0(这里为非正常删除,为了演示现象)
1 | [root@seed-84 ~]# rm /dev/dm-0 |
4、删除/dev/mapper/下的 vg-test 目录。
1 | rm /dev/mapper/vg--test-vg--lv -rf |
5、使用 sgdisk 格式化磁盘信息
1 | [root@seed-84 ~]# sgdisk -z /dev/sdb |
6、执行 wipefs -a 尝试擦该设备,却一直提示磁盘正在使用
1 | [root@seed-84 ~]# wipefs -a /dev/sdb |
7、使用 dmsetup 查看 lv 卷,使用 dmsetup 移除该卷
1 | [root@seed-84 ~]# dmsetup ls |
8、再次执行
1 | wipefs -a /dev/sdb |
回到之前的硬盘被占用问题
如果要解决,那么就只需要执行下面的命令即可
1 | # 查看是否被 dmsetup 使用中 |