как выпустить устройство, заблокированное bcache

Сегодня я купил 128 МБ диск SSD, установил его, затем установленный 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# 
0
задан 26 April 2018 в 17:05

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
0
ответ дан 30 October 2019 в 01:02

Другие вопросы по тегам:

Похожие вопросы: