Можем ли мы предсказать следующее зарегистрированное имя устройства массовой памяти SCSI

В моем случае я открыл CentOS 7 и попытался следовать всем инструкциям на этой странице. Я все время получал сообщение о занятости устройства. На мой взгляд, причина, по которой вы получаете сообщение об ошибке

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

, заключается в том, что устройство уже смонтировано как что-то еще.

Я также вообще не хотел вносить какие-либо изменения на диск, поскольку моим вариантом использования было извлечение очень большого файла из моего массива RAID1, который не удавалось извлечь всеми возможными способами, и самым быстрым способом было вытащить один из диски, я действительно хочу вставить диск обратно, и моя конфигурация все еще на месте.

Вот что я сделал после онлайн-исследования на других сайтах: ПРИМЕЧАНИЕ : NAS: 0 - это имя моего устройства NAS, поэтому замените его соответствующим образом.

Он был смонтирован автоматически, хотя если бы вы запустили команду монтирования, было бы сказано, что он не смонтирован, вы можете проверить, что он был смонтирован, выполнив:

[root@localhost Desktop]# cat /proc/mdstat 
Personalities : [raid1] 
md127 : active (auto-read-only) raid1 sdb2[0]
      1952996792 blocks super 1.2 [2/1] [U_]

unused devices: <none>

Обратите внимание, что он был автоматически смонтирован в / dev / md127 для меня.

Хорошо:

[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2 
mdadm: /dev/sdb2 is busy - skipping

[root@localhost Desktop]# mdadm --manage --stop /dev/md/NAS\:0 
mdadm: stopped /dev/md/NAS:0

[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2
mdadm: /dev/md9 has been started with 1 drive (out of 2).

[root@localhost Desktop]# mount /dev/md9 /mnt/

Это помогло мне.

Если сомневаетесь, DD-диск, чтобы сделать полную копию и использовать CentOS или другой Linux Live CD.

0
23.04.2015, 11:34
3 ответа

Я думаю, вам нужно посмотреть на обработку правил udev и создание узла устройства. Правила udev по умолчанию находятся в /lib/udev/rules.d, но вы можете перезаписать их в /etc/udev/rules.d

0
29.04.2021, 00:29

Я думаю, что Linux использует первую доступную букву. Однако это может зависеть от версий ядра и типов устройств.

Крайне маловероятно, что вам нужно предсказать следующую букву. В любом случае вы не сможете сделать с этим ничего полезного: что, если два устройства будут добавлены до того, как ваша программа успеет среагировать? В Linux есть механизм управления именами устройств: udev . Вы можете написать правила udev для распознавания устройств определенного типа, марки или модели или с файловыми системами, имеющими определенную метку или UUID, и запускать скрипт при вставке подходящего устройства. См. Сопоставьте диск IDE с / dev / hda и , например, выполните действие, когда подключена беспроводная клавиатура .

По умолчанию правила udev автоматически создают ссылки для распознавания блочных устройств по их модели и серийному номеру (в / dev / disk / by-id ) и файловых систем по их метке и серийному номеру (в / dev / disk / by-label и / dev / disk / by-serial ). Скорее всего, этого достаточно для того, чем вы хотите заниматься.

0
29.04.2021, 00:29

Если я удалю одно устройство и подключу другое, я заметил, что новое подключенное устройство не будет принимать имя удаленного устройства, , но будет использовать имя устройства, расположенное в алфавитном порядке.

Нет, это зависит от времени и от того, открыто ли ЧТО-ТО старое устройство. В моей системе, если я вставлю USB-ключ, извлечу его и снова вставлю через несколько секунд, он, вероятно, получит то же устройство. Если я монтирую его после вставки и НЕ размонтирую, то при повторной установке он получит следующее устройство.

Сама буква не так важна, как фактическое устройство major / minor. Если старый все еще используется ВООБЩЕ, ядро ​​будет использовать другую запись.

Это очень наглядно видно на ленте SCSI / SAS, где ядро ​​ожидает, что некоторые операции займут 30+ секунд. Если ссылка немного нестабильна, ядро ​​по-прежнему будет иметь / dev / st0 открытым, и оборудование будет по-прежнему занято, когда оно появится снова (и журнал ядра покажет, что инициализация устройства занимает много времени, прежде чем появится в качестве следующего устройство).

Из комментариев, ПОЧЕМУ нужно предсказывать следующее устройство? Во многих случаях, вероятно, лучше прослушать udev ( udevadm monitor или многими другими способами) для появления следующего устройства и использовать его по идентификатору, а не по какой-либо конкретной букве.

0
29.04.2021, 00:29

Теги

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