Como instalar manualmente uma imagem do CentOS?

1

Estou movendo meu projeto do CentOS 6 para o CentOS 7 e preciso lidar com as mudanças nos requisitos de inicialização introduzidos pelo CentOS 7, particularmente a atualização do grub para o grub2. A essência do problema é esta:

No meu trabalho baseado no CentOS 6, eu tinha meu disco rígido dividido em várias partições e cada uma hospedava uma VM, instalada com o virt-install. Eu usei uma imagem do CentOS 6 pré-criada que eu untar'ed diretamente em uma partição que estava hospedando uma VM, permitindo-me usar a opção --import de virt-install. Cada partição da VM foi particionada em partições de boot, swap e root-fs. Eu criei manualmente arquivos device.map grub.conf e executei os comandos requeridos do grub install para tornar a VM inicializável.

No CentOS 7, as coisas mudaram um pouco. Quando o grub2 é instalado em uma unidade GPT, ele requer uma partição "bios_grub" adicional. Portanto, agora minhas partições de VM são subdivididas em quatro partições, em vez das três que eu tinha no CentOS 6.6. Se, por exemplo, eu estivesse instalando uma VM em / dev / sda4, o parted mostraria algo assim:

    # 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

O problema é que não consigo obter as VMs que eu crio para inicializar. Bem, as VMs começam, mas elas são interrompidas imediatamente. Não há nenhum erro e virsh mostra que eles estão rodando, mas a transferência da BIOS para o grub não ocorre. Os comandos que executo para instalar o grub são os seguintes (novamente, supondo que a VM esteja sendo instalada em / 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

e o comando de criação de VMs se parece com isto:

    # 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

Infelizmente, como eu disse, a VM é iniciada, mas é interrompida imediatamente. O BIOS não faz a transição para o arranque do CentOS. A mesma abordagem básica funciona para o CentOS 6, então presumo que esteja faltando alguma etapa importante aqui, provavelmente relacionada ao modo como estou instalando o grub2. Se alguém tiver experiência nesta área e tiver algum conselho, agradeceria algumas sugestões.

Peter

    
por user3280383 21.06.2015 / 02:14

0 respostas

Tags