EBS 지원 Amazon EC2 인스턴스가 있습니다. 이 인스턴스에서 루트 장치를 변경하고 싶습니다. 이에 대해 최선의 방법을 조언 해 주시겠습니까?
블록 장치의 몇 가지 속성 변경에 대한 문서 만 찾을 수 있지만 루트 장치로 설정하는 것은 포함되어 있지 않은 것 같습니다.
답변
네, 아주 쉽습니다.
- 인스턴스를 중지하십시오.
- 루트 EBS 볼륨을 분리합니다.
- 대체 EBS 볼륨을 루트로 연결합니다.
/dev/sda1
- 인스턴스를 시작하십시오.
이것은 물론 대체 EBS 볼륨이 부팅 가능하다는 것을 전제로합니다. 부팅 가능한 OS 이미지를 포함해야합니다.
답변
선택한 답변에 주석을 추가 할 충분한 담당자가 없지만 저를 위해 /dev/sda1
작동하지 않았고 (루트로 첨부하지 않았 음) working (루트로 첨부)을 사용 했음을 지적하고 싶습니다 /dev/xvda
. 인스턴스는 HVM을 사용하는 최신 t2.micro 인스턴스 중 하나입니다.
답변
수락 된 답변의 댓글 스레드에서 Diomidis Spinellis의 댓글에 대해 자세히 설명하려면 새 루트 기기로 전환하려는 기기의 파일 시스템 레이블을 확인하는 것이 중요합니다. 자체 서버 마이그레이션 문제를 해결하는 동안 인스턴스가 부팅되기 전에 다음을 수행해야했습니다.
e2label
명령을 사용 하여 새 루트 장치 용으로 만든 ext2 / ext3 / ext4 파일 시스템의 레이블을 변경합니다.
먼저 현재 루트 장치의 파일 시스템 레이블을 확인하십시오.
$ sudo e2label /dev/xvda1
cloudimg-rootfs
동일한 파일 시스템 레이블을 갖도록 새 장치를 설정하십시오.
$ sudo e2label /dev/xvdg 'cloudimg-rootfs'
제 경우 레이블은 cloudimg-rootfs
. 때로는 단순히 /
.
e2label의 작동 방식을 이해하는 것이 중요합니다. 자세한 내용 man e2label
은 컴퓨터를 확인 하거나 http://linux.die.net/man/8/e2label 을 방문 하십시오 .
답변
aws 권장 솔루션입니다. 중지 한 후 원래 인스턴스에서 루트 볼륨을 분리 할 수 있습니다. 루트 볼륨은 / dev / sda1에 연결됩니다. 분리되면 새 인스턴스에 연결하십시오. 볼륨이 연결된 후 OS에서 마운트해야 할 수 있습니다. 마운트되면 그 안에있는 데이터를 볼 수 있습니다.
새 키 추가를 완료 한 후 분리하고 / dev / sda1에서 원래 인스턴스에 연결할 수 있습니다.
변경하기 전에 루트 볼륨의 스냅 샷을 생성하는 것이 좋습니다.
솔루션을 시도하기 전에 중요하지 않은 인스턴스 또는 스팟 인스턴스를 시도하십시오.
답변
CloudFormation을 통해이 작업을 수행하려면 다음을 수행해야합니다.
- 기존 루트 볼륨에서 스냅 샷 생성 (콘솔 또는 CLI를 통해)
- 이 스냅 샷에서 새 AMI 생성-여기에서 루트 볼륨 크기를 늘리고 올바른 가상화 시간 (반 가상화 또는 HVM)을 선택했는지 확인합니다.
- AWS :: EC2 :: Instance 리소스에서 ImageId 파라미터를 방금 만든 새 AMI로 설정합니다.
스택을 배포하십시오. 그러면 인스턴스가 다시 생성되므로 탄력적 IP 주소를 사용하고 있는지 또는 DNS 액세스 권한이 있는지 확인하십시오.
이 해결 방법을 수행해야하는 이유는 CF가 EC2 BlockDeviceMappings에서 루트 볼륨 크기를 조정하거나 루트 볼륨의 SnapshotId를 조정하는 것을 허용하지 않기 때문입니다.
답변
볼륨이 마운트되면 번호가 붙은 후위가 붙습니다. 예를 들어 /dev/sda
마운트되면 /dev/sda1, /dev/sda2
만든 파티션에 따라 마운트됩니다 . 루트 디바이스 자체를 마운트 할 때 디바이스가 이미 마운트되었다고 가정하므로 /dev/sda1
볼륨 마운트를 루트 디바이스로 제공해야합니다 . 참고 : 연결된 루트 볼륨이 없어야합니다.
다음 단계를 따르십시오. 1) 볼륨으로 이동하여 작업에서 볼륨 연결을 선택합니다. 2) 인스턴스를 선택합니다. 3) 루트로 마운트하려면 디바이스 이름을 /dev/sda1
4) 인스턴스를 시작합니다.