
У меня есть старое оборудование, которое вышло из строя много лет назад, и у меня там все еще есть два жестких диска, оба настроены как JBOD.
Есть ли способ выгрузить эти диски на один жесткий диск и удалить/пересобрать JBOD, когда фактическое оборудование больше недоступно?
JBOD был построен на чипе Promise 20579 – MSI Mainboard K8T Neo для AMD 64.
решение1
Есть вероятность, что ваши диски простообъединенныйв один большой том. Это самое простое решение, когда дело касается JBOD.Если бы только ребята из аппаратного обеспечения последовали за намипринцип KISS, у вас не возникнет проблем с доступом к данным/сбросом данных с помощью программного обеспечения, а не оборудования.
В Linux подходящим инструментом является dmsetup
, но если вы хотите только скопировать диски в образ (или на другой диск), то cat
может подойти и простой способ.
Расследование
Сначала вам нужно узнать исходный порядок дисков в JBOD. Должно быть легко определить самый первый диск; сложная часть заключается в том, чтобы упорядочить остальные. В вашем случае, когда есть два HDD, у вас не должно возникнуть проблем. Первый диск имеет действительную таблицу разделов MBR или действительную GPT (первичную, но не вторичную), которая описывает разделы навесьJBOD. Если вы не использовали JBOD без таблицы разделов, этот метод сработает. Проверьте диски gdisk -l
и определите первый.
Подготовка
В моем примере правильный порядок — /dev/sdb
, /dev/sdc
. Измените приведенные ниже определения переменных в соответствии с вашими потребностями.
device1=/dev/sdb
device2=/dev/sdc
Таким образом, вы сможете использовать приведенные ниже команды Bash без каких-либо изменений.
Для создания образа дисков этого должно быть достаточно (примечание: с этого момента вам может потребоваться sudo
):
cat "$device1" "$device2" > image.raw
Требуется больше подготовки, если вы хотите работать с JBOD. Вам нужно сохранить размеры ваших устройств в секторах по 512 байт. Команда для получения размера выглядит так: blockdev --getsz /dev/sdX
, поэтому
size1="$(blockdev --getsz "$device1")"
size2="$(blockdev --getsz "$device2")"
Подтвердите echo "$size1" "$size2"
, что у вас есть два числа. (Проверка правильности: если вы умножите их на 512, вы должны получить размеры ваших дисков.)
Создание сопоставленного устройства
Пришло время создать виртуальное конкатенированное устройство. Следующий фрагмент кода используетздесь документсинтаксис для удобства чтения. Возможно, вам придется его подкорректировать, если вы не используете Bash. С другой стороны, с Bash это должно работать просто при вставке в терминал.
dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF
Примечание mydevice
— произвольное имя. Вторая и третья строки создают карту устройств для . Подробнее dmsetup
см . в .man dmsetup
Теперь у вас должен быть /dev/mapper/mydevice
доступный и готовый к использованию; это ваш JBOD. (Я не уверен на 100%, что каждая реализация dmsetup
создает узлы в /dev/mapper/
; тем не менее, mydevice
где-то он должен появиться.) Работайте с ним, как с любым другим устройством.
Монтаж
Читатьмой другой ответ. ЦеликомМонтажнастоящий раздел применим к вашему случаю.
Уборка
Разрушать /dev/mapper/mydevice
:
dmsetup remove /dev/mapper/mydevice
Конечно, umount
сначала вам следует его разбить на разделы.