Как правильно получить доступ к программному обеспечению Windows RAID 0?

12

Я новый пользователь Ubuntu с новой установкой, и я хочу начать с ним. Тем не менее, все мои важные данные хранятся в программном RAID-массиве Windows 0, и мне нужно, чтобы они там оставались, так как я также загружаю Windows. Мне нужен доступ к этим данным в Ubuntu, и я не могу ничего реально сделать, пока у меня нет доступа.

Я уже исследовал эту тему как можно лучше, и мне удалось найти очень полезный пост:

В этом посте описывается, как заставить Ubuntu увидеть массив RAID RAID 0, состоящий из двух дисков. Основная команда используется sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. Согласно этому пользователю и другим постерам в ветке, он действительно работает. Замечательно.

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

Вот чем моя установка отличается от их примера:

  1. У меня есть три диска по 1 ТБ, а не два диска (любого размера, который они использовали).
  2. У меня есть два раздела RAID 0 на этих трех дисках: один 500 ГБ и 2,3 ТБ. Это означает, что мне НЕ нужно использовать полные диски при создании RAID-массива, а использовать только их часть.
  3. Я использовал размер блока не по умолчанию для хотя бы одного из моих разделов RAID 0, когда настраивал их много лет назад. Я понятия не имею, совпадает ли этот размер блока с размером чанка, который они упоминают. Мой раздел на 500 ГБ имеет размер блока 4 КБ (4096 байт на кластер), а мой раздел на 2,3 ТБ имеет размер блока 64 КБ (65536 байт на кластер).

Соответствующий вывод sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(только для этих трех дисков RAID0):

NAME   FSTYPE   SIZE MOUNTPOINT            LABEL
sdb           931.5G            
├─sdb1            1M            
├─sdb2          127M            
└─sdb3        931.4G            
sdc           931.5G            
├─sdc1            1M            
├─sdc2          127M            
└─sdc3        931.4G            
sdd           931.5G            
├─sdd1        166.7G            
└─sdd2        764.7G 

Соответствующий вывод cat /proc/partitions(только для этих трех дисков RAID0):

8       16  976762584 sdb
8       17       1024 sdb1
8       18     130048 sdb2
8       19  976631478 sdb3
8       32  976762584 sdc
8       33       1024 sdc1
8       34     130048 sdc2
8       35  976631478 sdc3
8       48  976762584 sdd
8       49  174763008 sdd1
8       50  801865728 sdd2

Программа «Диски» в Ubuntu отображает следующие разделы для моих дисков:

/dev/sdb:   GUID Partition Table .
/dev/sdb1:  1.0 MB, Microsoft LDM metadata.
/dev/sdb2:  133 MB, Microsoft Reserved.
/dev/sdb3:  1.0 TB, Microsoft LDM data.
/dev/sdc:   GUID Partition Table partitioning.
/dev/sdc1:  1.0 MB, Microsoft LDM metadata.
/dev/sdc2:  133 MB, Microsoft Reserved.
/dev/sdc3:  1.0 TB, Microsoft LDM data.
/dev/sdd:   Master Boot Record partitioning.
/dev/sdd1:  179 GB, Unknown.
/dev/sdd2:  821 GB, Unknown.
/dev/sdd:   136 MB, Unallocated space.

Я надеюсь, что предоставил достаточно информации здесь. Итак, теперь мой вопрос заключается в следующем: какую команду мне нужно ввести при моей настройке, чтобы я мог получить доступ к обоим моим разделам Windows RAID 0 из Ubuntu?

Заранее большое спасибо.

Дэн
источник

Ответы:

16

Я наконец-то получил эту работу благодаря этой статье: Восстановление Windows Spanned Disks (LDM) в Linux?

Было очень трудно раскрыть эту неуловимую информацию. Поиск занял несколько дней, и я полагаю, что не нашел его, потому что в этом посте ничего не говорится о RAID, поэтому он не появлялся в моих результатах поиска. Это определенно работает для моего программного обеспечения Windows RAID 0, хотя.

Решение:

Решение на самом деле довольно простое. Специально для этой цели создан замечательный инструмент под названием ldmtool. Он способен читать и работать с динамическими дисками Windows, которые используют LDM (Logical Disk Manager). По умолчанию он не установлен, но включен в репозитории Ubuntu. Все, что мне нужно было сделать, это выполнить две команды:

sudo apt-get install ldmtool
sudo ldmtool create all

Первая команда устанавливает ldmtool, а вторая позволяет автоматически создавать сопоставления устройств для всех подключенных динамических дисков Windows. Эти сопоставления расположены /dev/mapper/и могут быть смонтированы вручную mount -t ntfs /dev/mapper/mapfilename, но мне не нужно было этого делать - Ubuntu смонтировал их для меня автоматически после того, как я выполнил две вышеупомянутые команды. Это все, что мне нужно было сделать, и я сразу же получил к ним доступ из файлового браузера!

Связанный пост включает в себя предложение делать это автоматически при каждой загрузке. Просто откройте файл /etc/init/mountall.confи добавьте строку [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || trueнепосредственно перед exec mountall ...строкой в ​​конце файла.

Полная заслуга в этом решении принадлежит Кристиану Худону, парню, который разместил его в качестве ответа на Stack Overflow. Благодарность!

Чтобы добавить к этому дополнительную информацию, я использовал несколько других ldmtoolкоманд для запроса информации в моих томах:

sudo ldmtool scan /dev/sdd
[
  "e856a65f-e558-11e1-ae19-bc5ff435f790"
]

sudo ldmtool show diskgroup e856a65f-e558-11e1-ae19-bc5ff435f790
{
  "name" : "Dan-PC-Dg0",
  "guid" : "e856a65f-e558-11e1-ae19-bc5ff435f790",
  "volumes" : [
    "Volume1",
    "Volume2"
  ],
  "disks" : [
    "Disk1",
    "Disk2",
    "Disk3"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume1
{
  "name" : "Volume1",
  "type" : "striped",
  "size" : 1048578048,
  "chunk-size" : 128,
  "hint" : "D:",
  "partitions" : [
    "Disk1-01",
    "Disk2-01",
    "Disk3-01"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume2
{
  "name" : "Volume2",
  "type" : "striped",
  "size" : 4811194368,
  "chunk-size" : 128,
  "hint" : "E:",
  "partitions" : [
    "Disk1-02",
    "Disk2-02",
    "Disk3-02"
  ]
}

Нет необходимости запускать вышеупомянутые команды, как ldmtool create allи всю необходимую работу для создания отображений. Я просто включил их, потому что я уже включил в вопрос информацию о своей настройке, поэтому эта информация может быть полезна всем, кто сталкивается с этим постом позже. В частности, мы можем видеть, что в соответствии с этим ldmtoolоба моих динамических тома используют размер порции 128, несмотря на то, что они созданы с разными размерами блоков в Windows. Я предполагаю, что это означает, что размер блока и размер чанка не являются синонимами. Команды ldmtool show diskи ldmtool show partitionмогут быть использованы для отображения дополнительной информации.

Дэн
источник
Решение 5 лет все еще работает в Ubuntu 18. Спасибо.
Крис
2

Ubuntu 14.04 LTS монтирует raid 1, созданный Windows 7, используя ldmtool newby. ** **

У меня такая же проблема. Используя приведенный выше ответ, мне повезло, и я установил его

gksu gedit /etc/init/mountall.conf 

изменив линию

 [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || true

в

/bin/ldmtool create all >/dev/null || true

затем добавил

/bin/mount /dev/mapper/ldm_vol_NAME-Dg0_volume1 /media/WHEREVER

Мой mountall.conf теперь выглядит так

     **fi
/usr/bin/ldmtool create all >/dev/null || true
/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m
    exec mountall --daemon $force_fsck $fsck_fix $debug_arg
end script**

ранее у меня был скрипт, чтобы сделать то же самое с 2 линиями

/usr/bin/ldmtool create all >/dev/null || true

/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m

и добавил

sh /home/ron/mirror to the end of /etc/rc.local 

теперь он монтируется при запуске Ubuntu

Я не знаю, что это будет работать для вас!

Рон Прикетт
источник
2

Остальные ответы работали только частично в Монетном дворе 18.3.

Автоматическая установка дисков Raid0 была немного более сложной, так как редактирование /etc/init/mountall.confникогда не работало в моей системе, и я хотел иметь возможность монтировать объединенный том, используя определение /etc/fstab, а не использовать скрипт в /etc/rc.local.

Итак, вот что я сделал:

sudo apt-get install ldmtool

Проверено, что том был распознан и может быть правильно установлен с помощью:

sudo ldmtool create all

Зная, что моя система могла видеть и записывать на диски. Я создал сервис (следуя инструкциям с этого сайта :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

Создан файл в etc/systemd/system/Android ldmtool.serviceс описанием сервиса:

[Unit]
Description=Windows Dynamic Disk Mount
Before=local-fs-pre.target
DefaultDependencies=no
[Service]
Type=simple
User=root
ExecStart=/usr/bin/ldmtool create all
[Install]
WantedBy=local-fs-pre.target

Чтобы включить службу при запуске:

sudo systemctl is-enabled ldmtool

Чтобы найти UUID используемого тома:

sudo blkid

Который дал мне следующую информацию: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Итак, я создал строку, /etc/fstabкоторая гласит:

UUID=0A281FC6281FAFA5 /media/6TB_Raid ntfs-3g  auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8  0  0

Громкость есть каждый раз при загрузке.

cegaton
источник