pvcreate: /dev/sda를 사용할 수 없습니다: 장치가 분할되었습니다.

pvcreate: /dev/sda를 사용할 수 없습니다: 장치가 분할되었습니다.

현재 아치 리눅스를 설치하고 있는데 물리 볼륨을 만들려고 하면 이런 오류가 발생합니다.

Can not use /dev/sda: device is partitioned

이 오류는 무엇입니까? 어떻게 제거할 수 있나요?

추신: 디스크를 포맷했습니다.mkfs.ext4 /dev/sda

답변1

첫 번째 시도에서는 pvcreate -ff /dev/vdh디스크에 파티션이 포함되어 있는지 여부에 관계없이 작동하지 않았습니다.

pvcreate -ff /dev/vdh
Cannot use /dev/vdh: device is partitioned

wipefs먼저 모든 메타데이터를 제거하려면 이를 사용해야 합니다 .

root@nextcloud:~ # wipefs --all --backup /dev/vdh
/dev/vdh : 8 bytes were erased at index 0x00000200 (gpt) : 45 46 49 20 50 41 52 54
/dev/vdh : 8 bytes were erased at index 0x9c3fffffe00 (gpt) : 45 46 49 20 50 41 52 54
/dev/vdh : bytes were erased at index 0x000001fe (PMBR) : 55 aa
/dev/vdh : ioctl call to reread partition table: Success

그러면 볼륨 생성이 올바르게 수행될 수 있습니다.

pvcreate -ff /dev/vdh
Physical volume "/dev/vdh" successfully created.

어쩌면 내가 너무 빨리 진행해서 옵션 없이 테스트하지 않았을 수도 있습니다 -ff.

답변2

나중에 참고할 수 있도록 다음과 같은 두 가지 상황이 있습니다.

1. 파티션이 없는 경우

이는 GPT(GUID 파티션 테이블)가 있는 경우 발생할 수 있습니다. 불행하게도 이것은 작동하지 않습니다 -f(참조 버그 보고서)

fdisk -l /dev/sda예를 들어 보유하고 있는 파티션 테이블을 확인할 수 있습니다.

해결책은 GPT를 이전 BIOS 테이블로 교체하는 것입니다.갈라진:

  • Device/Create Partition Table...
  • 새 파티션 테이블을 선택합니다.msdos

또는헤어졌다:

  • parted /dev/sda
  • mktable msdos
  • quit

그런 다음 물리 볼륨을 생성할 수 있어야 합니다.

  • pvcreate /dev/sda

pvcreate는 파티션 테이블에서 발견된 dos 서명을 지우도록 제안할 수 있습니다. 그렇게 하는 것이 안전합니다.

2. 디스크에 이미 파티션이 있는 경우

이는 안전 조치이므로 -f재정의할 수 없습니다.

새 테이블을 생성하면 모든 것이 삭제되므로 위와 동일한 솔루션을 사용하여 파티션을 삭제할 수 있습니다. 을 사용하는 등 이를 수행하는 다른 방법이 있지만 fdisk위의 솔루션을 사용하면 GPT 문제를 동시에 해결할 수 있습니다.

답변3

/dev/sda전체 디스크입니다. 일반적으로(항상 그런 것은 아님) 디스크를 분할하고 /dev/sda1및 같은 장치 이름을 지정 /dev/sda2하고 파일 시스템, 스왑 공간, LVM 할당 등에 사용합니다.

파일 시스템을 그 안에 배치했으므로 /dev/sda더 이상 논리 볼륨 관리( )에 할당할 수 없습니다 pvcreate. LVM 도구는 디스크가 이미 파일 시스템과 함께 사용 중임을 올바르게 경고합니다.

정말로 파일 시스템을 파괴하고 LVM으로 교체하려면 설명서( man pvcreate)를 읽고 다음을 참조하세요.

필수 옵션 [ -f]은 확인 없이 PV를 생성합니다. 강제 옵션( -ff)을 반복하면 PV가 강제로 생성되어 PV가 이미 VG에 있는지 여부와 같이 일반적으로 PV를 방지하는 검사가 무시됩니다.

답변4

목표가 파티션 테이블 없이 전체 디스크에서 물리적 볼륨을 생성하는 것이라고 가정하면 먼저 기존 파티션 테이블을 0으로 만들어야 합니다.

dd if=/dev/zero of=/dev/sda bs=512 count=1

분할된 테이블을 사용하지 않는 것이 모범 사례가 아닐 수도 있습니다. 순진한 사용자나 운영 체제에 의해 사용되지 않은 손상된 디스크로 잘못 식별될 수 있습니다.

자세한 내용은 다음을 참조하세요.이것답변.

관련 정보