가상 머신에서 Linux 이미지 준비

가상 머신에서 Linux 이미지 준비

가상 머신에 리눅스 시스템을 준비한 후 SD 카드에 배포하는 시스템을 설정하려고 합니다. 대상 시스템에는 Atom 프로세서가 있으므로 아키텍처 호환성 문제가 없습니다.

제대로 작동하려면 특별한 물리적 위치에 있어야 하는 마운트 지점이 있습니까? 아니면 GRUB이 파일 시스템을 이해할 수 있습니까?

GRUB를 사용하여 이 시스템을 부팅하려면 SD 카드를 어떻게 설정해야 합니까?

파일 시스템을 재동기화하거나 파일 시스템 이미지를 추가하는 것이 더 나을까요? 나는 다른 카드 크기 사이를 전환할 때 VM을 너무 많이 변경할 필요가 없기 때문에 전자를 선호합니다.

편집하다:

나는 parted와 같은 것을 사용하여 미리 카드를 준비한 다음 GRUB를 설치해야 한다고 가정합니다. 별 문제는 아닙니다.

주요 문제는,커널이 파티션의 보장된 물리적 위치에 없으면 GRUB가 이를 찾을 수 있습니까?즉, GRUB은 ext2, ext3 또는 ext4 파티션을 읽고 적절한 마운트 지점을 찾을 만큼 똑똑합니까?

내 디스크는 다음과 같습니다(파티션 2개).

[GRUB] [grub 로더] [GRUB 파티션] [OS 파티션]

답변1

Grub이 시작되면 BIOS에서 제공하는 정보를 사용하여 자체적으로 로드됩니다. 모든 부품이 동일한 디스크에 있으면 원활하게 작동합니다.

Grub이 Linux를 로드하면 Grub과 동일한 디스크에서 또는 사용 가능한 디스크를 검색하여 커널을 찾을 수 있습니다. 다시 말하지만, Grub과 동일한 디스크에 커널을 넣으면 원활하게 작동합니다.

Linux 커널은 루트 파일 시스템을 마운트할 때 자체 디스크 번호를 사용합니다. Grub은 루트 파일 시스템을 찾을 수 있는 위치를 알 수 있도록 커널에 명령줄 인수를 전달합니다. 인수는 커널이 이해할 수 있는 방식으로 이루어져야 합니다. 한 시스템에서 다른 시스템으로 이동하는 경우 디스크 번호(예 sda: sdb, , hda등)를 예측할 수 없습니다. 이 기능이 작동하는지 확인하는 가장 쉬운 방법은 루트 파일 시스템(및 기타 파일 시스템 또는 스왑 공간)을 LVM에 배치하는 것입니다. 시작 시(특히 initrd/initramfs 실행 단계 중) 시스템은 사용 가능한 모든 LVM 물리 볼륨을 살펴보고 그룹을 조합하며 포함된 모든 논리 볼륨에 대한 액세스를 제공합니다. LVM 볼륨에는 디스크 번호가 아닌 이름이 있으므로 디스크 번호가 무엇인지는 중요하지 않습니다.

Grub은 디스크에 있는 다양한 부분의 정확한 물리적 위치를 알아야 합니다. 파일을 복사하는 것만으로는 부팅 가능한 SD 카드를 만들 수 없으며, 부트로더 설치를 해야 합니다. 다양한 크기의 장치에 쉽게 대처하려면 디스크 시작 부분에 운영 체제용 고정 크기 파티션을 만들고 나머지 공간을 추가 데이터 파티션으로 사용하는 것이 좋습니다. 이 주제에 대해서는 다음을 참조하십시오.부팅 가능한 USB 스틱을 다른 크기의 스틱에 복제.

관련 정보