Não consigo obter um iso do CentOS 7 (em um disco rígido) para inicializar a partir do GRUB2

3

Não consigo obter um ISO do CentOS 7 (em um disco rígido) para inicializar a partir do GRUB2 instalado no disco rígido.

Eu tentei as etapas a seguir com base em este artigo

Meu requisito é inicializar um ISO CentOS a partir de uma unidade de disco rígido virtual dentro de uma VM VMWare (por exemplo, um .vmdk inicializável). Estes são os requisitos e alternativas não são o que estou procurando no momento.

Eu tentei instalar o grub2 em um disco rígido virtual e modificar a configuração do grub para inicializar este ISO

Realizo essas duas atividades em uma VM que inicializei com a última ISO do CentOS Gnome Live (aqui está o processo, usei)

Crie uma nova VM (chame-a VMDK_Stager) com um disco rígido virtual de 4 GB (vmdk)

Montar e inicializar para CentOS-Live-GNOME.iso

Abra o Terminal para executar os comandos

Obter raiz

su

Execute estes comandos para preparar a unidade e instale o grub e o Create Partition

fdisk /dev/sda
n (for new partition, then select all defaults for blocks/sizing/etc.)
a (to activate)
w (to write changes and quit fdisk)

Formatar partição

mkfs.ext4  /dev/sda1

montar partição

mount /dev/sda1

atualizar pacotes de instalação envolvidos

yum install livecd-tools
yum upgrade grub2
yum upgrade dracut

instale o Grub no disco / partiion (isso criará /mnt/boot/grub2 )

   grub2-install /dev/sda --boot-directory=/mnt/boot

crie /mnt/boot/iso para abrigar o arquivo ISO

mkdir /mnt/boot/iso
cd /mnt/boot/iso

Copie CentOS-7-x86_64-GNOME-1603-02.iso (baixado do espelho do CentOS) para /mnt/boot/iso (eu fiz isso para testar uma ISO "boa")

crie um grub.cfg

personalizado
#Begin /boot/grub2/grub.cfg
set default=0
set timeout=10
set root=(hd0,1)

menuentry 'CentOS-Live-GNOME' {
    set isolabel=CentOS-7-x86_64-GNOME-1603-02
    set isofile='/boot/iso/CentOS-7-x86_64-GNOME-1603-02.iso'
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=$isofile root=live:CDLABEL=$isolabel ro rd.live.image quiet rhgb
    initrd (loop)/isolinux/initrd0.img
}

Copie este vmdk preparado para outro diretório no host a ser usado por outra VM (chame-o VMDK_ISO_Booter) Crie uma VM e use este vmdk como o único disco rígido

Ele termina em um prompt dracut e diz que o /dev/disk/by-label não pode ser encontrado

    
por user1431174 27.04.2016 / 07:47

3 respostas

2

O problema é quase certamente alguma combinação de usar um CDLABEL ligeiramente incorreto, o grub não sendo capaz de montar o iso, os argumentos do kernel não correspondem àqueles pretendidos para uso com a imagem, ou há alguma irregularidade com o ISO-I não vi aquela específica nos espelhos.

Você precisa pegar o rótulo exato do arquivo isolinux.cfg que está na iso

Se você tiver o CentOS-7-x86_64-LiveGNOME-1603-02.iso, a linha no arquivo é:

 append initrd=initrd0.img root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0 

Aqui está um grub.cfg modificado para tentar (baseado em um ISO que eu tenho; o seu pode ser um pouco diferente; eles aparentemente abandonaram a parte 'Live' do nome, ou você fez isso.

menuentry "CentOS-Live-GNOME" {
    set isolabel="CentOS-7-x86_64-GNOME-1603-02"
    set isofile="/boot/iso/CentOS-7-x86_64-LiveGNOME-1603-02.iso"
    insmod iso9660
    loopback loop ${isofile}
    linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-x86_64-GNOME-1603-02 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile} 
    initrd (loop)/isolinux/initrd0.img
}

Isso pode funcionar como está, mas verifique o rótulo e o restante dos argumentos do kernel em relação à entrada isolinux.cfg.

Quando / Se você chegar a um prompt dracut, digite o arquivo sosreport.txt para a palavra "loop" - ele deve dar o nome real sendo apresentado pelo iso; e você pode então fazer a correção. Também dê uma olhada nos dispositivos em / dev; você pode encontrar o iso 'device' em qualquer lugar no / dev / disk / ... by-id .. por-label .. by-uuid etc. Qualquer uma dessas referências funcionará. Tem que ser um par perfeito; aqui está o que está sendo avaliado e onde o erro que você está recebendo vem de.

Eu fiz quase exatamente o que você está fazendo, mas com o Fedora há pouco tempo (fedora 19?), e precisou de alguns ajustes antes de funcionar.

O próximo link mostra que você deve fazer isso manualmente (um pouco), para que você possa percorrer ao invés de passar pelo doloroso ciclo de regeneração, reinicialização e repetição.

link

    
por 06.05.2016 / 08:18
0

Não consigo entender por que isso está causando muitos problemas. Seu aspecto é outro exemplo de um problema XY . Uma solução muito mais simples é:

  1. Faça o download de um iso do CentOS em aqui ;

  2. Instale o CentOS da iso em uma nova VM, em praticamente qualquer Hypervisor: por exemplo, acabei de usar o VirtualBox (certifique-se de escolher vdmk para o formato de disco ao criar a nova VM); Além disso, certifique-se de reinicializar a VM pelo menos duas vezes, para passar por todo o processo de instalação. Desligue a VM do CentOS.

Você terminou: o disco vmdk no qual você instalou o CentOS, se você tiver feito tudo corretamente, já contém uma partição com o sinalizador de inicialização definido. Agora você pode montar o disco vmdk recém-criado como um disco rígido com um controlador SATA em uma segunda VM e possivelmente em outro hipervisor (VMWare, Xen, o nome dele). Se você quiser inicializar a partir do disco do CentOS na segunda VM, apenas certifique-se de que a ordem de inicialização permita que você inicialize primeiro a partir do novo disco, ie aquele criado sob o CentOS.

    
por 27.04.2016 / 10:37
0

Eu geralmente escrevo meu próprio XML para VMs qemu / virsh, mas a idéia é dizer ao BIOS virtual para inicializar a partir do ISO, certo? Então, quando você configurar sua VM, diga que o ISO é um CD-ROM, dê a ele um arquivo vazio no host para agir como um disco rígido para instalar, e defina a ordem de inicialização para testar o disco rígido, então o CD-ROM. Em seguida, inicialize a VM e siga as instruções na tela para uma instalação normal.

A instalação colocará o grub no disco rígido virtual para você.

IMHO, a VMware torna as coisas mais misteriosas do que precisam.

    
por 06.05.2016 / 11:56