¿Cómo accedo correctamente al software RAID 0 de Windows?

12

Soy un nuevo usuario de Ubuntu con una instalación nueva y estoy ansioso por comenzar. Sin embargo, todos mis datos importantes están en la matriz RAID 0 del software de Windows, y necesito que permanezca allí, ya que también estoy iniciando dualmente Windows. Necesito acceso a estos datos en Ubuntu, y realmente no puedo hacer nada real hasta que tenga acceso.

Ya he investigado este tema lo mejor que pude, y logré encontrar una publicación muy útil:

La publicación describe cómo hacer que Ubuntu vea una matriz RAID 0 de Windows que se compone de dos unidades. El comando principal utilizado es sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. Según ese usuario, y los otros carteles en el hilo, realmente funciona. Eso es genial.

Todavía no he intentado seguir estas instrucciones. ¿Por qué? La publicación incluye una advertencia sobre cómo no debe escribirle si ingresa el tamaño de fragmento incorrecto; Es comprensible cómo eso podría causar problemas. Mi preocupación es que mi configuración es diferente a su ejemplo, y no estoy seguro de que los comandos se deben ingresar exactamente igual para mi configuración. Tengo miedo de romperlo haciéndolo mal, y por lo tanto deseo obtener el consejo de alguien más experimentado.

Así es como mi configuración difiere de su ejemplo:

  1. Tengo tres unidades de 1 TB, no dos unidades (del tamaño que sea).
  2. Tengo dos particiones RAID 0 distribuidas en esas tres unidades: una de 500 GB y 2,3 TB. Esto significa que NO necesito usar los discos completos al crear la matriz RAID, sino usar solo una parte de ellos.
  3. Utilicé un tamaño de bloque no predeterminado para al menos una de mis particiones RAID 0 cuando las configuré hace años. No tengo idea si este tamaño de bloque es el mismo que el tamaño del fragmento que mencionan. Mi partición de 500 GB tiene un tamaño de bloque de 4 kb (4096 bytes por cluster), y mi partición de 2.3 TB tiene un tamaño de bloque de 64 kb (65536 bytes por cluster).

La salida relevante de sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(solo para esas tres unidades RAID0) es:

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 

La salida relevante de cat /proc/partitions(solo para esas tres unidades RAID0) es:

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

El programa "Discos" en Ubuntu muestra las siguientes particiones para mis unidades:

/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.

Espero haber proporcionado suficiente información aquí. Entonces, mi pregunta es esta: ¿cuál es el comando adecuado para ingresar con mi configuración, de modo que pueda acceder a mis dos particiones RAID 0 de Windows desde Ubuntu?

Muchas gracias por adelantado.

Dan
fuente

Respuestas:

16

Finalmente conseguí que esto funcionara gracias a esta publicación de Stack Overflow: ¿ Restauración de discos distribuidos de Windows (LDM) con Linux?

Fue extremadamente difícil descubrir esta información evasiva. Tomó días de búsqueda, y supongo que no lo encontré porque la publicación no menciona RAID, por lo que no apareció en mis resultados de búsqueda. Sin embargo, definitivamente funciona para mi software RAID 0 de Windows.

La solución:

La solución es realmente bastante simple. Hay una herramienta maravillosa construida específicamente para este propósito, llamada ldmtool. Es capaz de leer y trabajar con discos dinámicos de Windows que usan LDM (Logical Disk Manager). No está instalado por defecto, pero está incluido en los repositorios de Ubuntu. Todo lo que tenía que hacer era ejecutar dos comandos:

sudo apt-get install ldmtool
sudo ldmtool create all

El primer comando se instala ldmtool, y el segundo hace que cree automáticamente asignaciones de dispositivos para todos los discos dinámicos de Windows conectados. Estas asignaciones se encuentran en /dev/mapper/y se pueden montar manualmente mount -t ntfs /dev/mapper/mapfilename, pero no tuve que hacer eso: Ubuntu las montó automáticamente después de ejecutar los dos comandos anteriores. ¡Eso es todo lo que tenía que hacer, y podía acceder a ellos inmediatamente desde el navegador de archivos!

La publicación vinculada incluye una sugerencia para hacer esto automáticamente cada arranque. Simplemente abra el archivo /etc/init/mountall.confy agregue la línea [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || trueinmediatamente antes de la exec mountall ...línea cerca del final del archivo.

El crédito total de esta solución es para Christian Hudon, el tipo que lo publicó como respuesta en Stack Overflow. ¡Gracias!

Para agregar más información a esto, utilicé algunos otros ldmtoolcomandos para consultar mis volúmenes de información:

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"
  ]
}

No es necesario ejecutar los comandos anteriores, ya ldmtool create allque todo el trabajo necesario para crear las asignaciones. Simplemente los incluí porque ya incluí información sobre mi configuración en la pregunta, por lo que esta información podría ser útil para cualquiera que se encuentre con esta publicación más adelante. En particular, podemos ver que según ldmtoolmis dos volúmenes dinámicos usan un tamaño de fragmento de 128, a pesar de haber sido creados con diferentes tamaños de bloque en Windows. Supongo que esto significa que tamaño de bloque y tamaño de fragmento no son términos sinónimos. Los comandos ldmtool show disky ldmtool show partitionse pueden utilizar para mostrar más información.

Dan
fuente
La solución de 5 años todavía funciona en Ubuntu 18. Gracias.
Cris
2

Ubuntu 14.04 LTS mount raid 1 creado por windows 7 usando ldmtool un newby. ** **

Yo tuve el mismo problema. Usando la respuesta anterior tuve suerte y lo monté con

gksu gedit /etc/init/mountall.conf 

cambiando la línea

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

a

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

luego agregado

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

Mi mountall.conf se ve así ahora

     **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**

anteriormente tenía un script para hacer lo mismo con las 2 líneas

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

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

y agregado

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

ahora está montado cuando se inicia ubuntu

¡No sé si esto funcionará para ti!

Ron Prickett
fuente
2

Las otras respuestas funcionaron solo parcialmente en Mint 18.3.

El montaje automático de las unidades Raid0 fue un poco más difícil ya que la edición /etc/init/mountall.confnunca funcionó en mi sistema y quería poder montar el volumen distribuido usando una definición /etc/fstaby no usar un script /etc/rc.local.

Entonces esto es lo que hice:

sudo apt-get install ldmtool

Comprueba que el volumen se reconoce y se puede montar correctamente con:

sudo ldmtool create all

Sabiendo que mi sistema podía ver y escribir en las unidades. Creé un servicio (siguiendo las instrucciones de este sitio :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

creó un archivo en etc/systemd/system/llamado ldmtool.servicecon la descripción del servicio:

[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

Para habilitar el servicio al inicio:

sudo systemctl is-enabled ldmtool

Para encontrar el UUID del volumen utilizado:

sudo blkid

Lo que me dio la siguiente información: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Entonces creé una línea /etc/fstabque dice:

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

El volumen está ahí cada vez que inicio.

cegaton
fuente