Назад | Перейти на главную страницу

mdadm mdadm: невозможно открыть / dev / sda1: устройство или ресурс занят

У меня проблемы с переходом с одного диска на рейд 10

Выпущенная команда:

mdadm --create /dev/md0 --level=10 --raid-devices=8 /dev/sd[abcdefgh]1

Результат:

mdadm mdadm: cannot open /dev/sda1: Device or resource busy

Я подтвердил, что это не имеет ничего общего с DM:

]# dmsetup status

No devices found

Файловая система - GPT, я использовал sgdisk --backup = table / dev / sda, затем sgdisk --load-backup = table / dev / sdb через sdh для копирования таблицы разделов

таблица выглядит так:

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  525MB   524MB   ext3                  boot
 2      525MB   86.4GB  85.9GB  ext4
 3      86.4GB  90.7GB  4295MB  linux-swap(v1)
 4      90.7GB  1000GB  909GB

Я отлично создал другие массивы, но не могу создать рейд для 1-го и 2-го раздела.

Текущее состояние:

]# cat /proc/mdstat
Personalities : [raid10]
md3 : active raid10 sdh3[7] sdg3[6] sdf3[5] sde3[4] sdd3[3] sdc3[2] sdb3[1] sda3[0]
      16766976 blocks super 1.2 512K chunks 2 near-copies [8/8] [UUUUUUUU]
        resync=DELAYED

md4 : active raid10 sdh4[7] sdg4[6] sdf4[5] sde4[4] sdd4[3] sdc4[2] sdb4[1] sda4[0]
      3552147456 blocks super 1.2 512K chunks 2 near-copies [8/8] [UUUUUUUU]
      [========>............]  resync = 42.5% (1513033344/3552147456) finish=76.2min speed=445722K/sec

unused devices: <none>

Может ли кто-нибудь дать совет, нужно ли мне загружаться на аварийный диск и создавать массивы для / и / boot, пока они не смонтированы?

Просто попробуйте остановиться перед переназначением массива:

sudo mdadm -Esv
sudo mdadm  --stop /dev/md*
sudo mdadm --misc --scan --detail /dev/md0
sudo mdadm -v --assemble "$array" "$disk1$part" "$disk2$part"

Нужно ли мне...создать массивы для / и / boot пока они не установлены?

Точно.

Надеюсь, вы также поняли, что старое содержимое будет стерто в процессе, поэтому вы можете создать новый массив с отсутствующим одним устройством (используйте mdadm --level=10 --raid-devices=8 --missing /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1). Затем отформатируйте файловую систему на новом томе массива и скопируйте в него все данные из / dev / sda1. Затем перезагрузитесь из массива (таким образом, НЕ используя корень / dev / sda1) и фактически добавьте / dev / sda1.

Не забудьте соответствующим образом настроить загрузчик.

Сначала откройте этот файл / proc / mdstat и проверьте, является ли ваше блочное устройство / dev / sda1 частью какого-либо md *, если вы видите его там, попробуйте удалить его, используя: mdadm --stop md * (* означает номер после md, который / dev / sda принадлежат)

Я была такая же проблема. Заменил неисправный диск (после сбоя и удаления из RAID 1), но потом не смог добавить его обратно. Ресурс все время был занят.

РЕШЕНИЕ ПО СЛЕДУЮЩЕМУ ...

Проблема заключалась в том, что система сопоставила мой новый диск как md126 и md127 (не знаю почему). Итак, у меня были эти два дополнительных диска, которые не были подключены, но присутствовали в cat / proc / mdstat.

Когда я сделал mdadm --stop / dev / md *, он удалил записи md126 и md127. Затем ошибка используемого ресурса исчезла, и когда я сделал mdadmin --manage / dev / md0 --add / dev / sdb1, он заработал. Ура :-)

В моем случае устройство использовало многопутевый режим, я решил это, следуя инструкциям в этом видео: https://youtu.be/hEEgw8aPr50