EC2 Ubuntu 인스턴스의 기본 MBR 파티셔닝 체계를 GPT로 변환하려면 어떻게 해야 합니까?

6분 분량
0

내 Amazon Elastic Compute Cloud(Amazon EC2) 16.04, 18.04 또는 20.04 Ubuntu 인스턴스의 MBR 파티션에 대한 최대 할당량은 2테비바이트(TiB)입니다. 할당량을 우회하기 위해 Amazon Elastic Block Store(Amazon EBS) 볼륨에서 GPT 파티셔닝 체계로 변환하고 싶습니다.

간략한 설명

Ubuntu 버전 22.04 이상은 기본적으로 GPT 파티셔닝을 사용합니다. 하지만 Ubuntu 버전 16.04, 18.04 및 20.04의 경우 GPT 파티셔닝을 수동으로 설정해야 합니다.

해결 방법

중요: 인스턴스를 중지하고 시작하기 전에 다음 작업을 수행하십시오.

참고: 인스턴스를 중지하고 시작할 때 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하여 외부 트래픽을 인스턴스로 라우팅하는 것이 가장 좋습니다. Amazon Route 53을 사용하는 경우 퍼블릭 IP 주소가 변경될 때 Route 53 DNS 레코드를 업데이트해야 할 수 있습니다.

Ubuntu 인스턴스의 기본 MBR 파티셔닝 체계를 GPT로 변환하려면 다음 단계를 완료하십시오.

  1. Amazon EC2 콘솔을 엽니다.

  2. Ubuntu를 실행하는 Amazon Machine Image(AMI)에서 인스턴스를 시작합니다.

  3. 동일한 가용 영역에 3TiB 루트 볼륨이 있는 동일한 Ubuntu AMI에서 두 번째 인스턴스를 시작합니다.

  4. 두 번째 인스턴스를 중지합니다.

  5. 두 번째 인스턴스에서 /dev/xvda 또는 /dev/sda1 루트 볼륨을 분리합니다. 그런 다음 첫 번째 인스턴스에 루트 볼륨을 /dev/sdf연결합니다.

  6. SSH를 사용하여 첫 번째 인스턴스에 연결합니다.

  7. /dev/sdf의 루트 파티션을 보려면 다음 lsblk 명령을 실행합니다.

    sudo lsblk

    출력 예시:

    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    (snip)
    xvdf    202:80    0   3T  0 disk
    └─xvdf1 202:81    0   2T  0 part
    (snip)

    참고: 위 예제에서/dev/sdf의 루트 파티션은 2테라바이트(TB)입니다. Nitro 인스턴스 유형에서 블록 디바이스 이름은 /dev/nvme1n1과 비슷합니다.

  8. 파티션 테이블을 MBR에서 GPT로 변환하려면 gdisk 도구를 사용하여 다음 명령을 실행합니다.

    sudo gdisk /dev/xvdf

    참고: gdisk에 잘못된 명령을 입력한 경우 q 또는 Ctrl-C를 눌러 gdisk를 종료하고 변경 내용을 저장하지 마십시오.
    출력 예시:

    GPT fdisk (gdisk) version 1.0.1
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: not present
    
    ***************************************************************
    Found invalid GPT and valid MBR; converting MBR to GPT format
    in memory. THIS OPERATION IS POTENTIALLY
        DESTRUCTIVE! Exit by
    typing 'q' if you don't want to convert your MBR partitions
    to GPT format!
  9. 전문가 모드로 전환하여 섹터 정렬 값을 설정하려면 프롬프트에 다음 값을 입력합니다.

    Command (? for help): x                                            
    Expert command (? for help): l                                     
    Enter the sector alignment value (1-65536, default = 2048): 1      
    Expert command (? for help): m

    참고: 각 프롬프트 후에 Enter 키를 누릅니다. 위 구성은 섹터 정렬 값을 기본값 8에서 1로 변경합니다. 8바이트(B) 정렬을 사용하는 경우 GPT 파티션을 생성할 때 문제가 발생할 수 있습니다.

  10. GPT 파티션을 생성하려면 프롬프트에 다음 값을 입력합니다.

Command (? for help): n                                                                                                        
Partition number (2-128, default 2): 128                                                                                
First sector (34-6291455966, default = 4294967296) or {+-}size{KMGTP}: 34                     
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:                                              
Hex code or GUID (L to show codes, Enter = 8300): ef02                                                     

참고: 각 프롬프트 후에 Enter 키를 누릅니다. 마지막 섹터 프롬프트에서 Enter 키를 누르면 현재 유형은 'Linux 파일 시스템' 출력이 나타납니다. 이전 예제에서 ef02는 BIOS 부트 파티션 번호입니다.
출력 예시:

Changed type of partition to 'BIOS boot partition'
  1. 루트 파티션을 삭제하려면 프롬프트에 다음 값을 입력합니다.
Command (? for help): d                                                                                                         
Partition number (1-128): 1

참고: 각 프롬프트 후에 Enter 키를 누릅니다. 루트 파티션을 3TiB로 재생성하려면 프롬프트에 다음 값을 입력합니다.

Command (? for help): n                                                                                                         
Partition number (1-128, default 1): 1                                                                                     
First sector (2048-6291455966, default = 2048) or {+-}size{KMGTP}:                                  
Last sector (2048-6291455966, default = 6291455966) or {+-}size{KMGTP}:                       
Hex code or GUID (L to show codes, Enter = 8300):

참고: 각 프롬프트 후에 Enter 키를 누릅니다. 마지막 섹터 프롬프트에서 Enter 키를 누르면 현재 유형은 'Linux 파일 시스템' 출력이 나타납니다. 기본 설정을 사용하려면 첫 번째 섹터, 마지막 섹터, 16진수 코드 또는 GUID 프롬프트에 Enter를 입력합니다.
출력 예시:

Changed type of partition to 'Linux filesystem'
  1. GPT 파티션 테이블을 저장하려면 프롬프트에 다음 값을 입력합니다.
Command (? for help): w                                                                                                        
Do you want to proceed? (Y/N): y

중요: 이 작업은 기존 파티션을 덮어씁니다.
출력 예시:

OK; writing new GUID partition table (GPT) to /dev/xvdf.
The operation has completed successfully.
  1. 새 볼륨 정보를 보려면 다음 lsblk 명령을 실행합니다.
sudo lsblk

출력 예시:

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf    202:80   0   3T  0 disk
└─xvdf1 202:81   0   3T  0 part
  1. /dev/xvdf1 디바이스의 파일 시스템이 올바른지 확인하려면 fsck 도구를 사용하여 다음 명령을 실행합니다.
sudo e2fsck -f /dev/xvdf1

참고: 모든 질문에 라고 응답하려면 e2fsck 명령에 -y 스위치를 추가하십시오. fsck 도구에 대한 자세한 내용은 Ubuntu 웹사이트의 fsck.8.gz를 참조하십시오.
출력 예시:

e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
cloudimg-rootfs: 57524/262144000 files (0.0% non-contiguous), 16648272/536870655 blocks
  1. 파일 시스템의 크기를 3TiB로 조정하려면 다음 크기 조정 명령을 실행합니다.
sudo resize2fs /dev/xvdf1

참고: 파일 시스템 크기를 조정하는 데는 10~20초가 걸릴 수 있습니다.
출력 예시:

resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/xvdf1 to 786431739 (4k) blocks.
The filesystem on /dev/xvdf1 is now 786431739 (4k) blocks long.
  1. /dev/xvdf1 디바이스에 Grub을 설치한 후 다음 명령을 사용하여 Ubuntu 버전을 기반으로 Grub을 구성합니다.
    Ubuntu 16.04 또는 18.04:
sudo mount /dev/xvdf1 /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt /bin/bash
grub-install /dev/xvdf
grub-mkdevicemap
update-grub
exit
sudo umount -l /mnt/dev
sudo umount -l /mnt/sys
sudo umount -l /mnt/proc
sudo umount -l /mnt

Ubuntu 20.04:

sudo mount /dev/xvdf1 /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt /bin/bash
grub-install /dev/xvdf
grub-mkdevicemap
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "GRUB_FORCE_PARTUUID=" >> /etc/default/grub.d/40-force-partuuid.cfg
update-grub
exit
sudo umount -l /mnt/dev
sudo umount -l /mnt/sys
sudo umount -l /mnt/proc
sudo umount -l /mnt-l /mnt/dev sudo umount -l /mnt/sys sudo umount -l /mnt/proc sudo umount -l /mnt`
  1. 실행 중인 인스턴스에서 /dev/xvdf 볼륨을 분리합니다.
  2. /dev/xvdf 볼륨을 첫 번째 인스턴스에 /dev/xvda 또는 /dev/sda1로 다시 연결합니다.
  3. SSH를 사용하여 첫 번째 인스턴스에 연결한 다음 인스턴스를 시작합니다.
  4. 원본 인스턴스의 루트 볼륨에 3TiB의 공간이 있는지 확인하려면 lsblk 명령을 실행합니다.
sudo lsblk

관련 정보

Amazon EBS 볼륨 제약

AWS 공식
AWS 공식업데이트됨 2달 전
댓글 없음

관련 콘텐츠