Por que criar um ZPool resulta nesse erro?

6

Quando tento criar um ZPool, ocorre o seguinte erro:

user@arch ~ % sudo zpool create -f -o ashift=12 -m /data media raidz /dev/disk/by-id/ata-ST2000DM001-1CH164_Z2F0TL8V /dev/disk/by-id/ata-ST2000DM001-1ER164_Z4Z030LK /dev/disk/by-id/ata-ST2000DM001-1ER164_Z4Z06PR
the kernel failed to rescan the partition table: 16  
cannot label 'sda': try using parted(8) and then provide a specific slice: -1

Eu tentei executar o comando várias vezes de volta para trás (executando udevadm trigger entre eles também), limpando as unidades usando sgdisk -Z /dev/sdX . Eu tentei parted /dev/sdX mklabel gpt , bem como zpool labelclear /dev/sdX .

Eu me referi às unidades por /dev/disk/by-id bem como /dev/sdX , mas o mesmo erro ocorre quando o rótulo muda dependendo da ordem das unidades.

    
por Ruben 28.07.2014 / 11:30

2 respostas

5

Procurando por seu erro Me deparei com este post intitulado: Erro ao criar pools zfs usando unidades que pertenciam a uma matriz md raid que mostrava o mesmo erro.

$ zpool create -f tank mirror /dev/disk/by-id/xxx /dev/disk/by-id/yyy the kernel failed to rescan the partition table: 16 cannot label 'sdb': try using parted(8) and then provide a specific slic

O artigo afirma que o problema surgiu do dispositivo que está sendo adicionado a um array MDADM não utilizado.

Even if the old mdadm array was no longer being mounted (as more than one disk > was missing and it was a raid5) they were still being added to md0:

  $ cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] > [raid5] [raid4] [multipath]
  md0 : inactive sdd1[4](S) sdb1[1](S)
  3907025072 blocks super 1.2

  unused devices:

A correção para esse problema específico é a seguinte:

$ mdadm --stop /dev/md0
mdadm: stopped /dev/md0

$ zpool create -f tank mirror /dev/disk/by-id/xxx /dev/disk/by-id/yyy
$ zpool status
pool: tank
state: ONLINE
scan: none requested
[...]
    
por 28.07.2014 / 15:53
2

Tive o mesmo problema ao tentar executar um disco externo em / dev / sdb

$ sudo zpool create pool sdb -f
the kernel failed to rescan the partition table: 16
cannot label 'sdb': try using parted(8) and then provide a specific slice: -1

O problema era que o disco ainda estava montado. Depois de correr

$ sudo umount /dev/sdb

tudo funcionou bem.

    
por 14.10.2014 / 17:13

Tags