libvirt: Criando uma VM Centos 7: Falha ao iniciar a opção Raiz do Comutador

1

Estou tentando criar uma VM do Centos 7 (1611) na mesma distribuição usando virt-install . Estou usando um script de exemplo de uma lista de Remy van Elst , que exigiu algumas alterações :

virt-install \
  --name centos7 \
  --ram 1024 \
  --disk path=./centos7.qcow2,size=8 \
  --vcpus 1 \
  --os-type linux \
  --os-variant centos7.0 \
  --network default \
  --graphics none \
  --console pty,target_type=serial \
  --location /media/CentOS \
  --extra-args 'console=ttyS0,115200n8 serial'

O diretório /media/CentOS contém um CentOS-7-x86_64-Everything-1611.iso montado.

O processo de inicialização falha com:

[FAILED] Failed to start Switch Root.
See 'systemctl status initrd-switch-root.service' for details.

Em seguida, ele entra em um shell de "modo de emergência". O log do serviço acima é:

:/# systemctl status initrd-switch-root.service -l
● initrd-switch-root.service - Switch Root
   Loaded: loaded (/usr/lib/systemd/system/initrd-switch-root.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2017-04-14 08:17:31 UTC; 19min ago
  Process: 3981 ExecStart=/usr/bin/systemctl --no-block --force switch-root /sysroot (code=exited, status=1/FAILURE)
 Main PID: 3981 (code=exited, status=1/FAILURE)

systemd[1]: Starting Switch Root...
systemctl[3981]: Failed to switch root: Specified switch root path /sysroot does not seem to be an OS tree. os-release file is missing.
systemd[1]: initrd-switch-root.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Switch Root.
systemd[1]: Unit initrd-switch-root.service entered failed state.
systemd[1]: Triggering OnFailure= dependencies of initrd-switch-root.service.
systemd[1]: initrd-switch-root.service failed.

Olhando para /sysroot , é evidente que não tem os-release em qualquer lugar:

:/# find /sysroot
/sysroot
/sysroot/var
/sysroot/var/lib
/sysroot/var/lib/nfs
/sysroot/var/lib/nfs/rpc_pipefs
/sysroot/var/lib/nfs/rpc_pipefs/gssd
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX/gssd
/sysroot/var/lib/nfs/rpc_pipefs/gssd/clntXX/info
/sysroot/var/lib/nfs/rpc_pipefs/nfsd
/sysroot/var/lib/nfs/rpc_pipefs/cache
/sysroot/var/lib/nfs/rpc_pipefs/nfsd4_cb
/sysroot/var/lib/nfs/rpc_pipefs/statd
/sysroot/var/lib/nfs/rpc_pipefs/portmap
/sysroot/var/lib/nfs/rpc_pipefs/nfs
/sysroot/var/lib/nfs/rpc_pipefs/mount
/sysroot/var/lib/nfs/rpc_pipefs/lockd
/sysroot/boot
/sysroot/boot/initramfs-3.10.0-514.el7.x86_64.img

Não sei como proceder daqui. Já vi várias postagens na Internet descrevendo algo semelhante, mas nenhuma delas parece descrever meu problema particular ou qualquer solução para isso.

    
por Sean Leather 18.04.2017 / 17:37

1 resposta

1

Eu também queria saber por que o / sysroot parecia incompleto como causa da falha na inicialização do Root Root. Acabou que, no final das contas, uma vez que o convidado assumiu a instalação, ele não pôde realmente ler a partir da fonte de instalação. No meu caso, a causa foi a configuração de rede para virt-install (veja abaixo), para você o problema é o mesmo, mas a causa é diferente quando você está instalando a partir de uma fonte local. Eu acho que este é o problema (a partir da página man virt-install):

DIRECTORY  
    Path to a local directory containing an installable distribution image. Note that the directory will not be accessible by the guest after  initial boot, so the OS installer will need another way to access the rest of the install media.

Você pode tentar incluir o caminho para o diretório install image / dvd / usando outro parâmetro --disk para virt-install.

--disk=path=/path/to/rhel7-dvd.iso,device=cdrom

Para qualquer outra pessoa por aqui com o mesmo problema, mas tentando instalar a partir da rede - o problema é o mesmo. Uma solução exigia que um endereço IP fosse atribuído (no meu caso, estático) ao convidado. No entanto, isso não corrigiu o problema imediatamente devido à minha configuração --location usando o nome de domínio da instalação. Eu também tive que incluir um parâmetro dns para --extra-args para finalmente conseguir esse trabalho.

sudo virt-install --name test-c7 --ram 2048 --vcpus=1 --os-type=linux --os-variant=centos7.0 --network bridge=br0 --disk size=4 --location http://linux.mirrors.es.net/centos/7/os/x86_64 --graphics none --extra-args="ip=128.97.60.95::128.97.60.1:255.255.255.0:scylla.idre.ucla.edu:eth0:none dns=128.97.62.3 console=tty0 console=ttyS0,115200n8"

Espero que ajude alguém - seja gentil, esta é minha primeira resposta:)

    
por 11.05.2017 / 04:27