---
title: Ceph创建bcache时提示sdx device busy的解决方法
description: "在配置了bcache的Ceph环境，重新安装操作搭建环境，有时会在配置bcache操作中提示“make-bcache --wipe-bcache -B /dev/sdx -C /dev/nvmexx”，具体信息截图如下："
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/troubleshooting/trouble/boostkit_sds_troublecase_006.html
sourcePath: /source/zh/kunpengsdss/troubleshooting/trouble/boostkit_sds_troublecase_006.html
indexId: c2ce838d70b448aa14136ba664676cbf0cf20d6aa54b40630ac9d7d06568c20980
---
# Ceph创建bcache时提示sdx device busy的解决方法

#### 问题现象描述

在配置了bcache的Ceph环境，重新安装操作搭建环境，有时会在配置bcache操作中提示“make-bcache --wipe-bcache -B /dev/sdx -C /dev/nvmexx”，具体信息截图如下：


#### 关键过程、根本原因分析

磁盘残留bcache分区信息被系统加载，可以通过lsblk命令进行查看。


#### 结论、解决方案及效果

通过以下步骤进行磁盘恢复。

1. 在sdb目录下bcache文件夹下进行detach和stop操作。

```
echo 1 >/sys/block/sdb/bcache/detach
echo 1 >/sys/block/sdb/bcache/stop
```


2. 对sdb磁盘进行dd写操作。

```
dd if=/dev/zero of=/dev/sdb count=2048 bs=1M
```


3. 在/sys/fs/bcache/目录下对残留bcache做unregister操作。

```
cd  /sys/fs/bcache/31040c7b-55f2-4170-bf77-d2e8b958e31a/
echo 1 >  unregister
```


  找到对应的bcache，执行unregister操作。

4. 重新启动服务器。

脚本操作参考如下：

- 对系统下sda..sdh硬盘进行detach,stop操作，dd写操作。

```
for i in {0..7}
do
temp=`expr $i % 8 + 97`
diskID=$(printf \\x`printf %x ${temp}`)
echo 1 >/sys/block/sd${diskID}/bcache/detach
echo 1 >/sys/block/sd${diskID}/bcache/stop
dd if=/dev/zero of=/dev/sd${diskID} count=2048 bs=1M
done
```


- 对ceph1-4节点/sys/fs/bcache/目录进行unregister操作。

```
#!/bin/bash
for n in {1..4}
do
echo "ceph$n"
f=$(ssh ceph$n "ls /sys/fs/bcache/")
for i in $f
do
ssh ceph$n "echo 1 > /sys/fs/bcache/$i/unregister"
done
done
```
