Como acesso corretamente o software RAID 0 do Windows?

12

Eu sou um novo usuário do Ubuntu com uma instalação nova e estou ansioso para começar. No entanto, todos os meus dados importantes estão no array RAID 0 do software Windows, e preciso que eles permaneçam lá, pois também estou inicializando o Windows com dupla inicialização. Preciso acessar esses dados no Ubuntu e não consigo realizar nada real até que eu tenha acesso.

Eu já pesquisei esse assunto da melhor maneira possível e consegui encontrar um post muito útil:

A publicação descreve como fazer com que o Ubuntu veja um array RAID 0 do Windows composto por duas unidades. O principal comando usado é sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. De acordo com esse usuário e os outros pôsteres no tópico, ele realmente funciona. Isso é ótimo.

Ainda não tentei seguir estas instruções. Por quê? A postagem inclui um aviso sobre como você não deve gravá-la se inserir o tamanho errado do pedaço; é compreensível como isso pode causar problemas. Minha preocupação é que minha instalação seja diferente do exemplo deles, e não tenho certeza de que os comandos sejam inseridos exatamente da mesma forma para a minha instalação. Eu tenho medo de quebrá-lo fazendo errado e, portanto, desejo obter o conselho de alguém mais experiente.

É assim que minha instalação difere do exemplo deles:

  1. Eu tenho três unidades de 1 TB, não duas (do tamanho que eles usaram).
  2. Eu tenho duas partições RAID 0 espalhadas por essas três unidades: uma de 500 GB e 2,3 TB. Isso significa que eu NÃO preciso usar os discos completos ao criar a matriz RAID, mas usar apenas parte deles.
  3. Usei um tamanho de bloco não padrão para pelo menos uma das minhas partições RAID 0 quando as configurei anos atrás. Não faço ideia se esse tamanho de bloco é igual ao tamanho do bloco que eles mencionam. Minha partição de 500 GB possui um tamanho de bloco de 4 kb (4096 bytes por cluster) e minha partição de 2,3 TB possui um tamanho de bloco de 64 kb (65536 bytes por cluster).

A saída relevante de sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(apenas para essas três unidades 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 

A saída relevante de cat /proc/partitions(apenas para essas três unidades 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

O programa "Disks" no Ubuntu exibe as seguintes partições para minhas 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 ter fornecido informações suficientes aqui. Então, agora, minha pergunta é a seguinte: qual é o comando adequado para eu entrar na minha instalação, para que eu possa acessar as duas partições do Windows RAID 0 no Ubuntu?

Muito obrigado antecipadamente.

Dan
fonte

Respostas:

16

Finalmente consegui isso graças a este post do Stack Overflow: Restauração do Windows Spanned Disks (LDM) com Linux?

Foi extremamente difícil descobrir essas informações ilusórias. Foram necessários dias de pesquisa e acho que não a encontrei porque a postagem não menciona o RAID, por isso não estava aparecendo nos meus resultados de pesquisa. Definitivamente funciona para o meu software Windows RAID 0.

A solução:

A solução é realmente bastante simples. Existe uma ferramenta maravilhosa criada especificamente para esse fim, chamada ldmtool. É capaz de ler e trabalhar com discos dinâmicos do Windows que usam LDM (Logical Disk Manager). Não está instalado por padrão, mas está incluído nos repositórios do Ubuntu. Tudo o que eu precisava fazer era executar dois comandos:

sudo apt-get install ldmtool
sudo ldmtool create all

O primeiro comando é instalado ldmtoole o segundo cria automaticamente mapeamentos de dispositivos para todos os discos dinâmicos do Windows conectados. Esses mapeamentos estão localizados /dev/mapper/e podem ser montados manualmente mount -t ntfs /dev/mapper/mapfilename, mas eu não precisava fazer isso - o Ubuntu os montou automaticamente para mim depois de executar os dois comandos acima. Era tudo o que tinha que fazer e podia acessá-los imediatamente a partir do navegador de arquivos!

A postagem vinculada inclui uma sugestão para fazer isso automaticamente a cada inicialização. Basta abrir o arquivo /etc/init/mountall.confe adicionar a linha [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || trueimediatamente antes da exec mountall ...linha próxima ao final do arquivo.

O crédito total dessa solução é dado a Christian Hudon, o cara que a postou como resposta no Stack Overflow. Obrigado!

Para adicionar mais informações, usei outros ldmtoolcomandos para consultar meus volumes em busca de informações:

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

Não é necessário executar os comandos acima, assim como ldmtool create alltodo o trabalho necessário para criar os mapeamentos. Acabei de incluí-los porque já incluí informações sobre minha configuração na pergunta. Portanto, essas informações podem ser úteis para quem se deparar com este post mais tarde. Em particular, podemos ver que, de acordo com ldmtool, ambos os meus volumes dinâmicos usam um tamanho de bloco de 128, apesar de terem sido criados com diferentes tamanhos de bloco no Windows. Acho que isso significa que o tamanho do bloco e o tamanho do bloco não são termos sinônimos. Os comandos ldmtool show diske ldmtool show partitionpodem ser usados ​​para exibir mais informações.

Dan
fonte
Solução de 5 anos ainda funcionando no Ubuntu 18. Obrigado.
Cris
2

Ubuntu 14.04 LTS mount raid 1 criado pelo windows 7 usando ldmtool por um newby. ** **

Eu tive o mesmo problema. Usando a resposta acima, tive sorte e montei-a com

gksu gedit /etc/init/mountall.conf 

mudando a linha

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

para

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

então adicionado

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

Meu mountall.conf se parece com isso agora

     **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 eu tinha um script para fazer o mesmo com as 2 linhas

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

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

e acrescentou

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

agora está montado quando o ubuntu inicia

Não sei se isso funcionará para você!

Ron Prickett
fonte
2

As demais respostas funcionaram apenas parcialmente na Casa da Moeda 18.3.

A montagem automática das unidades Raid0 foi um pouco mais desafiadora, pois a edição /etc/init/mountall.confnunca funcionou no meu sistema e eu queria poder montar o volume estendido usando uma definição /etc/fstabe não usar um script /etc/rc.local.

Então aqui está o que eu fiz:

sudo apt-get install ldmtool

Verifique se o volume foi reconhecido e pode ser montado corretamente com:

sudo ldmtool create all

Sabendo que meu sistema podia ver e gravar nas unidades. Criei um serviço (seguindo as instruções deste site :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

criou um arquivo etc/systemd/system/chamado ldmtool.servicecom a descrição do serviço:

[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 o serviço na inicialização:

sudo systemctl is-enabled ldmtool

Para encontrar o UUID do volume usado:

sudo blkid

O que me deu as seguintes informações: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Então eu criei uma linha na /etc/fstabqual se lê:

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

O volume está sempre que eu inicializo.

cegaton
fonte