Как освободить устройство заблокированное bcache
Сегодня я купил SSD диск 128 МБ, установил его, затем установил bcache-tools
, После попытки доступа к устройству я получил эти ошибки:
root@dev:/sys/block/sda/bcache# make-bcache -B /dev/sdb1 /dev/sdb1 -C /dev/sda
Can't open dev /dev/sda: Device or resource busy
root@dev:/sys/block/sda/bcache# fdisk /dev/sda
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
/dev/sda: device contains a valid 'bcache' signature; it is strongly recommended to wipe the device with wipefs(8) if this is unexpected, in order to avoid possible collisions
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xfef282bc.
Command (m for help): q
root@dev:/sys/block/sda/bcache# wipefs -a /dev/sda
wipefs: error: /dev/sda: probing initialization failed: Device or resource busy
root@dev:/sys/block/sda/bcache#
Итак, у меня есть следующие вопросы:
- Почему сделал
bcache
начал использовать мой SSD диск (/dev/sda), даже не спросив у меня разрешения? Это большое неуважение к власти. - Как отключить
bcache
поэтому я могу правильно отформатировать устройства, они еще не отформатированы.
Это вывод ls -l в bcache
устройства:
root@dev:/sys/block/sda/bcache# ls -l
total 0
-r--r--r-- 1 root root 4096 Apr 26 18:47 block_size
-r--r--r-- 1 root root 4096 Apr 26 18:47 btree_written
-r--r--r-- 1 root root 4096 Apr 26 18:47 bucket_size
-rw-r--r-- 1 root root 4096 Apr 26 18:47 cache_replacement_policy
--w------- 1 root root 4096 Apr 26 18:47 clear_stats
-rw-r--r-- 1 root root 4096 Apr 26 18:47 discard
-r--r--r-- 1 root root 4096 Apr 26 18:47 io_errors
-r--r--r-- 1 root root 4096 Apr 26 18:47 metadata_written
-r--r--r-- 1 root root 4096 Apr 26 18:47 nbuckets
-r--r--r-- 1 root root 4096 Apr 26 18:47 priority_stats
lrwxrwxrwx 1 root root 0 Apr 26 18:47 set -> ../../../../../../../../../../fs/bcache/b9d9517a-a606-4ac2-86dc-3399e9678381
-r--r--r-- 1 root root 4096 Apr 26 18:47 written
root@dev:/sys/block/sda/bcache# pwd
/sys/block/sda/bcache
root@dev:/sys/block/sda/bcache#
,
root@dev:/sys/fs/bcache# ls -l
total 0
drwxr-xr-x 7 root root 0 Apr 26 19:00 b9d9517a-a606-4ac2-86dc-3399e9678381
--w------- 1 root root 4096 Apr 26 19:00 register
--w------- 1 root root 4096 Apr 26 19:00 register_quiet
root@dev:/sys/fs/bcache#
1 ответ
bcache
не делает этого Либо приобретенный вами диск не был чистым и уже содержал суперблок bcache при распаковке (это может быть возвращенный диск, который не был очищен должным образом), либо первая команда, которую вы запустили, была подозрительной: /dev/sdb1
дважды в командной строке, которая могла запутать команду, и она уже создала суперблок и прикрепила /dev/sdb1
,
Чтобы избавиться от него, отсоедините поддерживающее устройство:
# echo 1 >/sys/block/sdb/sdb1/bcache/detach
Затем отмените регистрацию кеша:
# echo 1 >/sys/fs/bcache/b9d9517a-a606-4ac2-86dc-3399e9678381/unregister
Теперь немедленно вытрите его, прежде чем udev перерегистрирует его:
# wipe -a /dev/sda
Не смущайся, что /dev/sdb1
по-прежнему отображается как под контролем bcache. Это не больно, и вы можете получить к нему доступ через /dev/bcache0
, Он не подключен к кешу и, следовательно, не получает никакого преимущества от кеширования, он работает в сквозном режиме, пока вы не подключите его к кешу вручную:
# echo CACHE_SET_ID >/sys/block/sdb/sdb1/bcache/attach
В этом случае вы создаете только кеш-устройство, затем подключаете к нему любой диск (с помощью приведенной выше команды):
# make-bcache -C CACHE_DEV