ZPool을 생성하면 이 오류가 발생하는 이유는 무엇입니까?

ZPool을 생성하면 이 오류가 발생하는 이유는 무엇입니까?

ZPool을 생성하려고 하면 다음 오류가 발생합니다.

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

나는 명령을 연속적으로 여러 번 실행하고 ( udevadm trigger또한 중간에 실행) 드라이브를 지우려고 시도했습니다 sgdisk -Z /dev/sdX. 나도 parted /dev/sdX mklabel gpt그것을 시도했습니다 zpool labelclear /dev/sdX.

/dev/disk/by-id드라이브도 참조했지만 /dev/sdX드라이브 순서에 따라 레이블이 변경되면 동일한 오류가 발생합니다.

답변1

귀하의 오류를 검색하는 동안 다음과 같은 제목의 블로그 게시물을 발견했습니다.md raid 어레이에 속한 드라이브를 사용하여 zfs 풀을 생성하는 중 오류가 발생했습니다.이것은 동일한 오류를 보여줍니다.

$ zpool create -f TankMirror /dev/disk/by-id/xxx /dev/disk/by-id/yyy 커널이 파티션 테이블을 다시 검색하지 못했습니다. 16 'sdb'를 표시할 수 없습니다. parted(8)를 사용해 본 다음 제공하십시오. 특정 슬라이스

문서에는 사용되지 않은 MDADM 배열에 장치를 추가하면 문제가 발생한다고 나와 있습니다.

이전 mdadm 배열이 더 이상 마운트되지 않더라도(여러 디스크가 누락되고 raid5이기 때문에) 여전히 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:

이 특정 문제에 대한 수정 사항은 다음과 같습니다.

$ 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
[...]

답변2

/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

문제는 디스크가 여전히 마운트되어 있다는 것입니다. 달리고 난 후

$ sudo umount /dev/sdb

모두 괜찮습니다.

관련 정보