5

Я переключаю свой сервер Windows на Ubuntu и пытаюсь заставить мой программный RAID1 (зеркало), созданный в Windows, отображаться в Ubuntu. Я читал, что это возможно здесь, используя mdadm, но у меня проблемы.

Вот что я пытаюсь:

Script started on Thu 12 Jan 2012 12:22:33 GMT
graeme@MediaCentre:~/Desktop$ cat /proc/partitions

major minor  #blocks  name

   8        0  120060864 sda
   8        1  117974016 sda1
   8        2          1 sda2
   8        5    2083840 sda5
   8       16 1465138584 sdb
   8       17 1465136128 sdb1
   8       32 1465138584 sdc
   8       33 1465136128 sdc1
graeme@MediaCentre:~/Desktop$ sudo mdadm --build /dev/md0 --chunk=128 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
[sudo] password for graeme:
mdadm: array /dev/md0 built and started.
graeme@MediaCentre:~/Desktop$ sudo mkdir /media/WinMirror/
mkdir: cannot create directory `/media/WinMirror/': File exists
graeme@MediaCentre:~/Desktop$ sudo mount -t ntfs /dev/md0 /media/WinMirror
Failed to read last sector (5860544511): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/md0': Invalid argument
The device '/dev/md0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
graeme@MediaCentre:~/Desktop$ exit
exit

Script done on Thu 12 Jan 2012 12:23:23 GMT

Я получаю то же самое, когда пытаюсь использовать 64 блока, и если я перечисляю диски в другом порядке.

Кто-нибудь знает, что я здесь делаю не так?

Редактировать: я добавляю результаты fdisk -l по запросу Пола:

graeme@MediaCentre:~$ sudo fdisk -l /dev/sdb
[sudo] password for graeme:

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x181bfef8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63  2930275119  1465137528+  42  SFS
graeme@MediaCentre:~$ sudo fdisk -l /dev/sdc

Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x181bfef8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              63  2930275119  1465137528+  42  SFS
graeme@MediaCentre:~$ sudo mdadm --build /dev/md0 --level=1 --raid-devices=2 /dev/sdb     /dev/sdc
mdadm: array /dev/md0 built and started.
graeme@MediaCentre:~$ sudo fdisk -l /dev/md0

Disk /dev/md0: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x181bfef8

    Device Boot      Start         End      Blocks   Id  System
/dev/md0p1              63  2930275119  1465137528+  42  SFS

5 ответов5

1

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

1

Я могу полностью подтвердить, что вы можете сделать это с помощью mdadm и нескольких простых команд:

mdadm --build /dev/md0 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdb1
mount /dev/md0 /mount/raid

Больше деталей:

  • Конечно, сначала нужно установить mdadm (команда терминала: sudo apt-get install mdadm).
  • "md0" - это просто имя, которое я дал рейду для использования в Linux; Вы можете назвать это как угодно.
  • часть "--level = 0", скорее всего, относится к типу RAID, в моем случае RAID 0.
  • часть "--raid-devices = 2", скорее всего, это количество жестких дисков в RAID.
  • Вы должны сначала создать папку "/mount/raid" (или где вы хотите смонтировать или вызвать ее)
  • В моем случае у меня был программный RAID 0, сделанный в Windows 7/8, на двух жестких дисках по 2 ТБ (здесь sdc1 и sdb1). Здесь sdc1 ставится первым в команде, потому что он содержит информацию о RAID; Если вы получаете сообщение об ошибке, в котором говорится, что информация RAID отсутствует, вы можете попробовать переключиться между ними, и все будет в порядке.

ПРЕДУПРЕЖДЕНИЕ: не используйте команду mdadm --create если у вас уже есть программный RAID, созданный в Windows, так как я думаю, что он может перезаписать информацию RAID, и вы в конечном итоге получите свой рейд и данные на нем.

0

Это:

sudo mount -t ntfs /dev/md0 /media/WinMirror

пытается смонтировать массив raid в целом, тогда как fdisk показывает, что он разделен:

    Device Boot      Start         End      Blocks   Id  System
/dev/md0p1              63  2930275119  1465137528+  42  SFS

Чтобы смонтировать раздел, вы должны использовать:

sudo mount -t ntfs /dev/md0p1 /media/WinMirror
0

Я думаю, я только что обнаружил, что невозможно "собрать" RAID1, и "сборка" - это единственный способ просмотреть программный RAID-массив Windows. Кто-нибудь может подтвердить это для меня?

Вот что мне удалось вывести из mdadm:

graeme@MediaCentre:~$ sudo mdadm --build --help
Usage:  mdadm --build device -chunk=X --level=Y --raid-devices=Z devices

 This usage is similar to --create.  The difference is that it creates
 a legacy array without a superblock.  With these arrays there is no
 difference between initially creating the array and subsequently
 assembling the array, except that hopefully there is useful data
 there in the second case.

 The level may only be 0, raid0, or linear.
 All devices must be listed and the array will be started once complete.
 Options that are valid with --build (-B) are:
  --bitmap=          : file to store/find bitmap information in.
  --chunk=      -c   : chunk size of kibibytes
  --rounding=        : rounding factor for linear array (==chunk size)
  --level=      -l   : 0, raid0, or linear
  --raid-devices= -n : number of active devices in array
  --bitmap-chunk=    : bitmap chunksize in Kilobytes.
  --delay=      -d   : bitmap update delay in seconds.
-1

Я знаю, что это старый вопрос. Тем не менее, я хотел бы подчеркнуть, что предлагаемое решение hello guy все еще работает сегодня.

Я знаю, что ОП специально просит решение с использованием mdadm . Но в настоящее время существует ldmtool специально для того, чтобы справляться с рейдами, созданными в Windows (или « Динамические диски»). Как обычно, арка вики охватывает все технические детали.

Возможно, эта дополнительная информация сэкономит будущим читателям время.

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