fdisk로 생성된 파티션의 PTTYPE 및 UUID를 변경합니다.

fdisk로 생성된 파티션의 PTTYPE 및 UUID를 변경합니다.

두 가지 시스템이 있습니다. 한편으로는 가상 디스크 /dev/sda를 늘려보기로 결정했습니다. 그래서 fdisk를 사용하여 파티션을 삭제하고 끝 크기는 더 크지만 시작 위치는 동일하게 다시 생성했습니다. (처음에는 파티션을 확장으로 생성한 후 기본으로 되돌리는 실수를 저질렀습니다.) 또한 유형(id)이 8e(Linux LVM)로 설정되어 있는지 확인했습니다.

새 파티션을 디스크에 쓰고 재부팅했는데 부팅 문제가 발생했습니다.

지금은 디스크를 마운트할 수 없습니다. 그래서 다음을 사용하여 initramfs를 다시 만들려고 했습니다.

Recovery Option 3 (shell):

vgscan -v --mknodes
vgchange -a y

mkdir /mnt/root
mount /dev/mapper/centos-root /mnt/root

mount -o bind /dev /mnt/root/dev
mount -o bind /sys /mnt/root/sys
mount -o bind /proc /mnt/root/proc
mount /dev/sda1 /mnt/root/boot

chroot /mnt/root

cd /boot
dracut -f
grub2-mkconfig -o /boot/grub2/grub.cfg

그러나 이것은 효과가 없습니다. 그런 다음 동일한 VM 복구 콘솔에서 다음을 발견했습니다.

sh-4.2# blkid /dev/sda2
/dev/sda2: PTTYPE="dos"
sh-4.2#

정상적으로 부팅되는 첫 번째 VM(둘 다 동일한 템플릿의 복제본)에는 다음이 표시됩니다.

# blkid /dev/sda2
/dev/sda2: UUID="owcjYz-ohz3-3obA-KaL0-wcyn-ayc5-EG1Fgc" TYPE="LVM2_member"

따라서 부팅 시 centos-root notfound 오류를 기반으로 /dev/sda2가 TYPE="LVM2_member" 대신 PTTYPE="dos"로 설정되었기 때문이라고 의심하기 시작했습니다.

하지만 /dev/sda2에서 이 설정을 어떻게 변경합니까? 나는 시도했다:

tune2fs /dev/sda2 -U random

"/dev/sda2를 열려고 할 때 슈퍼블록의 잘못된 매직 넘버" 및 "유효한 파일 시스템 슈퍼블록을 찾을 수 없습니다"를 반환합니다.

Google 검색은 아직 성과가 입증되지 않았습니다. 검색 문자열 "파티션 유형 LVM2_member 변경"을 사용하면 위에서 수행한 fdisk에서 파티션 유형을 변경하는 방법을 보여주는 fdisk 페이지가 생성됩니다.

"change UUID"를 검색하면 tune2fs 명령이 fdisk 파티션에서 실행되지 않고 위의 오류가 발생합니다. "PTTYPE"을 검색하면 blkid 출력이 있는 페이지만 생성됩니다.

fdisk가 생성된 후 /dev/sda2 파티션의 TYPE 및 UUID를 변경하는 방법을 공유할 수 있는 사람이 있습니까?

다른 명령을 사용해야 할까요? 이 모든 작업은 복구 콘솔에서 수행되어야 합니다.

양호한 디스크의 자세한 blkid 출력:

[root@sys01 ~]# blkid -po udev /dev/sda2
ID_FS_UUID=owcjYz-ohz3-3obA-KaL0-wcyn-ayc5-EG1Fgc
ID_FS_UUID_ENC=owcjYz-ohz3-3obA-KaL0-wcyn-ayc5-EG1Fgc
ID_FS_VERSION=LVM2\x20001
ID_FS_TYPE=LVM2_member
ID_FS_USAGE=raid
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_TYPE=0x8e
ID_PART_ENTRY_NUMBER=2
ID_PART_ENTRY_OFFSET=1026048
ID_PART_ENTRY_SIZE=133191680
ID_PART_ENTRY_DISK=8:0
[root@sys01 ~]#

불량 디스크(호스트 sys02)의 blkid:

sh-4.2# blkid -po udev /dev/sda2
ID_PART_TABLE_TYPE=dos
ID_PART_TABLE_SCHEME=dos
ID_PART_ENTRY_TYPE=0x8e
ID_PART_ENTRY_NUMBER=2
ID_PART_ENTRY_OFFSET=1026048
ID_PART_ENTRY_SIZE=133191680
ID_PART_ENTRY_DISK=8:0
sh-4.2#

답변1

명확성을 위해 사용 가능한 태그를 사용하여 여기에 내 답변을 다시 게시하십시오.

pvcreate는 위에서 본 UUID 및 TYPE 플래그 설정을 담당합니다. 그러나 fdisk /dev/sda를 통해 다시 생성된 파티션에서 이 작업을 수행하면 해당 파티션의 데이터에 액세스할 수 없게 됩니다. 이는 분명히 다른 메타데이터를 덮어쓰게 되기 때문입니다.

그래서 내가 실제로 해야 할 일은 다음과 같습니다.

  1. fdisk를 사용하여 다른 디스크에 새 파티션을 만듭니다.
  2. 새 디스크에서 pvcreate를 실행합니다.
  3. 위 명령을 사용하여 마운트할 수 없는 VG 및 LV를 호출합니다.
  4. 새 디스크에 vgend합니다.
  5. pvmove는 새 디스크로 확장됩니다.
  6. vgreduce가 이전 디스크에서 제거됩니다.
  7. 그런 다음 fdisk를 사용하여 이전 파티션을 삭제하고 올바른 레이블로 다시 만듭니다.
  8. 이 프로세스를 다시 반복하여 범위를 원래 파티션으로 다시 이동합니다.

관련 정보