내 프로젝트를 CentOS 6에서 CentOS 7로 마이그레이션하고 CentOS 7에서 도입된 부팅 요구 사항의 변경 사항, 특히 grub에서 grub2로의 업그레이드를 처리해야 합니다. 질문의 요지는 이렇습니다.
CentOS 6 기반 작업에서는 하드 드라이브를 별도의 파티션으로 분할했으며 각각은 virt-install을 통해 설치된 가상 머신을 호스팅했습니다. VM을 호스팅하는 파티션으로 직접 추출된 사전 생성된 CentOS 6 이미지를 사용하여 virt-install의 --import 옵션을 사용할 수 있었습니다. 각 가상 머신의 파티션은 부팅 파티션, 스왑 파티션 및 루트 파일 시스템 파티션으로 더 나뉩니다. device.map grub.conf 파일을 수동으로 생성하고 필요한 grub 설치 명령을 실행하여 VM을 부팅 가능하게 만들었습니다.
CentOS 7에서는 상황이 약간 변경되었습니다. grub2가 GPT 드라이브에 설치되면 추가 "bios_grub" 파티션이 필요합니다. 이제 내 VM 파티션은 CentOS 6.6에서 3개가 아닌 4개의 파티션으로 세분화됩니다. 예를 들어, /dev/sda4 아래에 VM을 설치하면 parted는 다음을 표시합니다:
# parted -s /dev/sda4 print
Model: Unknown (unknown)
Disk /dev/sda4: 75.2GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB primary bios_grub
2 2097kB 136MB 134MB ext3 primary boot
3 136MB 153MB 16.8MB linux-swap(v1) primary
4 153MB 75.2GB 75.0GB ext4 primary
문제는 내가 만든 가상 머신을 시작할 수 없다는 것입니다. 음, VM이 시작되었지만 즉시 중단되었습니다. 오류가 없으며 virsh는 실행 중임을 표시하지만 BIOS에서 grub으로의 전송이 발생하지 않습니다. grub을 설치하기 위해 실행한 명령은 다음과 같습니다(VM이 /dev/sda4에 설치되어 있다고 가정).
# chroot /mnt/rootfs/grub2-install --force /dev/sda4
Installing for i386-pc platform.
Installation finished. No error reported.
# chroot /mnt/rootfs grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
done
VM 생성 명령은 다음과 같습니다.
# virt-install --connect=qemu:///system --network bridge=br0,mac=RANDOM,model=virtio --name=vm1 --disk path=/dev/sda4,bus=virtio --force --vcpus=1 --ram=1024 --check-cpu --accelerate --hvm --nographics --noreboot --import
Starting install...
Creating domain...
Domain creation completed. You can restart your domain by running:
virsh --connect qemu:///system start vm1
불행하게도 제가 말했듯이 가상 머신은 시작되지만 즉시 중단됩니다. BIOS는 CentOS를 부팅하기 위해 grub으로 변환하지 않습니다. CentOS 6에서도 동일한 기본 방법이 작동하므로 여기서는 grub2 설치 방법과 관련된 몇 가지 핵심 단계가 누락된 것으로 가정합니다. 혹시 이런 경험이 있으신 분이나 조언을 주실 수 있는 분 계시면 감사하겠습니다.
베드로