1

У меня RAID5 btrfs с 8 дисками и жесткий диск умер и просто исчез из списка.

Теперь я попытался удалить его, но получил ошибку:

ERROR: error removing the device '/dev/sdb' - Inappropriate ioctl for device

После отключения автоматического монтирования в /etc/fstab я выключил систему, заменил неисправный диск и перезагрузил систему для сброса контроллера на тот случай, если он сработал из-за какой-то другой ошибки, а неисправный диск теперь отсутствовал, вызывая все остальные диски для повторного перечисления, поэтому заменяющий диск стал /dev/sdd а не sdb .

Запуск btrfs fi show -d дал следующее:

Label: 'store'  uuid: ...
        Total devices 8 FS bytes used 5.27TiB
        devid    2 size 1.36TiB used 784.63GiB path /dev/sdb
        devid    3 size 1.36TiB used 784.63GiB path /dev/sdc
        devid    4 size 1.36TiB used 784.63GiB path /dev/sde
        devid    5 size 1.36TiB used 784.63GiB path /dev/sdf
        devid    6 size 1.36TiB used 784.63GiB path /dev/sdg
        devid    7 size 1.36TiB used 784.63GiB path /dev/sdh
        devid    8 size 1.36TiB used 784.63GiB path /dev/sdi
        *** Some devices missing

Btrfs v3.12

Теперь я попробовал btrfs device add /dev/sdd /mnt/x , но получил

ERROR: error adding the device '/dev/sdd' - Inappropriate ioctl for device

Что теперь? Как я могу восстановить или смонтировать RAID?

Я даже не могу его смонтировать. Пробное mount [-t btrfs] -o degraded /dev/sdb /mnt/x и mount [-t btrfs] -o degraded,device=/dev/sdb,[...] /dev/sdb /mnt/x ([...] характеристики устройства, конечно):

mount: wrong fs type, bad option, bad superblock on /dev/sdb,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Это Ubuntu 14.04 с ядром 3.13.0-36-x64.

1 ответ1

0

Это не полный ответ, но у меня была та же проблема с BTRFS RAID 10. Вы должны подключить массив к сети в ухудшенном режиме, прежде чем сможете удалить полностью неисправное устройство.

Удаление устройства btrfs используется для удаления устройств в сети. Он перераспределяет любые используемые экстенты на удаляемом устройстве на другие устройства в файловой системе.

В противном случае вы продолжите получать сообщение:

ОШИБКА: ошибка при добавлении устройства '/dev/sdd' - неподходящий ioctl для устройства

Все, на что я могу надеяться, это то, что ваша команда монтирования неверна. Вам просто нужно указать одно из устройств в вашем массиве и путь, по которому вы хотите его смонтировать. Например:

sudo mount -o degraded /dev/sda /raid10

... где /dev/sda для меня было одним из работающих устройств в массиве. Когда я попытался перечислить все устройства примерно так:

sudo mount -o degraded -t btrfs\
/dev/sda \
/dev/sdb \
/dev/sdc1 \
/dev/sdd \
/dev/sde \
/dev/sdf \
/raid10

... команда потерпит неудачу.

После того, как вы смонтировали массив, просто выполните команду sudo btrfs device delete missing /raid10 и подождите долгое время, пока сам массив не уладится . Если вы не можете смонтировать массив, я не уверен, что вы можете что-то сделать. Возможно, два диска на самом деле вышли из строя вместо одного, или (что более вероятно) возникает больше проблем с BTRFS RAID 5, поскольку он существовал не так давно, как BTRFS RAID 1/10?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .