Criando uma matriz RAID1, “O disco não contém uma tabela de partição válida”

Criando uma matriz RAID1, “O disco não contém uma tabela de partição válida”

Estou tentando criar (duas) matrizes RAID1 de software em duas unidades idênticas de 4 TB sem inicialização. Estou seguindo conselhos de vários posts do fórum, mas continuo tendo problemas. Aqui está o que fiz até agora:

  • para cada unidade nova (/dev/sdb e /dev/sdc):

    • sudo fdisk <drive>

    • "o" para criar uma nova tabela de partições (acho que isso é necessário?)

    • "n" para criar uma nova partição

    • "p" e "1" para criar a partição primária nº 1

    • Início da partição "2048" (padrão)

    • A partição "+3500M" termina em 3,5 GB.

    • Repita com "p", "2", , "+500M" para criar uma partição menor de 500 MB

    • Isso cria /dev/sdb1, /dev/sdb2, /dev/sdc1, /dev/sdc2

  • Crie matrizes de ataque:sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

    • Repita com /dev/md0, /dev/sdb2, /dev/sdc2
  • Criar sistema de arquivos:sudo mkfs -t ext4 /dev/md0

A criação do sistema de arquivos não resulta em erros, mas se eu executar, sudo fdisk -l /dev/md0obtenho:

Disk /dev/md0: 3667 MB, 3667853312 bytes
2 heads, 4 sectors/track, 895472 cylinders, total 7163776 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Não consigo consertar o problema "não contém uma tabela de partição válida". Isso é um problema ou deveria ser assim?

Pergunta bônus: supondo que esses dois arrays funcionem, qual é o local "padrão" para montá-los? Raiz?

Responder1

Como você não criou umtabela de partição, e apenas uma partição, sim, deveria ser assim.

Exemplo:

$ dd if=/dev/zero of=/tmp/file bs=4096 count=$((1024*1024 / 4096))
$ mkfs -t ext4 /tmp/file
mke2fs 1.42.9 (4-Feb-2014)
/tmp/file is not a block special device.
Proceed anyway? (y,n) y
$ fdisk -l !$
fdisk -l /tmp/file

Disk /tmp/file: 1 MB, 1048576 bytes
255 heads, 63 sectors/track, 0 cylinders, total 2048 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: 0x00000000

Disk /tmp/file doesn't contain a valid partition table

Para fazer uma tabela de partições, você usaalgo como:

parted /dev/md0 mklabel msdos

Com fdisk:

$ fdisk /tmp/file
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xb1f4c1d2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
You must set cylinders.
You can do this from the extra functions menu.

Command (m for help): w

Basta abri-lo para fdiskcriar uma tabela de partições. Use wpara salvá-lo. Você precisará criar uma nova partição dentro dela.

Você provavelmente não precisará disso se todo o dispositivo estiver indo para uma partição.

informação relacionada