Um host do CentOS 7 precisa instalar um convidado do CentOS 7 usando virt-install
e kickstart
, mas a abordagem documentada abaixo não está reconhecendo nem o disco rígido designado nem as dependências.
Quais alterações específicas precisam ser feitas nas etapas abaixo para que o processo de instalação reconheça o disco rígido e as dependências?
Os sintomas de erro:
A seguir, o que o Putty imprime durante o processo de instalação do sistema operacional convidado:
[ OK ] Started Anaconda NetworkManager configuration.
Starting Anaconda NetworkManager configuration...
Starting Wait for Plymouth Boot Screen to Quit...
Starting Terminate Plymouth Boot Screen...
Starting pre-anaconda logging service...
Starting firewalld - dynamic firewall daemon...
Starting Dump dmesg to /var/log/dmesg...
Starting Service enabling compressing RAM with zRam...
Starting installer, one moment...
anaconda 21.48.22.93-1 for CentOS Linux 7 started.
* installation log files are stored in /tmp during the installation
* shell is available on TTY2
* when reporting a bug add logs from /tmp as separate text/plain attachments
18:17:26 Not asking for VNC because of an automated install
18:17:26 Not asking for VNC because we don't have a network
Starting automated install.
Checking software selection
================================================================================
================================================================================
Question
You have specified that the group 'base' should be installed. This group does
not exist. Would you like to ignore this group and continue with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'compat-libraries' should be installed. This
group does not exist. Would you like to ignore this group and continue with
installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'debugging' should be installed. This group
does not exist. Would you like to ignore this group and continue with
installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'development' should be installed. This group
does not exist. Would you like to ignore this group and continue with
installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'network-file-system-client' should be
installed. This group does not exist. Would you like to ignore this group and
continue with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'remote-system-management' should be
installed. This group does not exist. Would you like to ignore this group and
continue with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'security-tools' should be installed. This
group does not exist. Would you like to ignore this group and continue with
installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'smart-card' should be installed. This group
does not exist. Would you like to ignore this group and continue with
installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'virtualization-hypervisor' should be
installed. This group does not exist. Would you like to ignore this group and
continue with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'virtualization-platform' should be installed.
This group does not exist. Would you like to ignore this group and continue
with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'virtualization-tools' should be installed.
with installation?
Please respond 'yes' or 'no': yes
================================================================================
================================================================================
Question
You have specified that the group 'virtualization-client' should be installed.
This group does not exist. Would you like to ignore this group and continue
with installation?
Please respond 'yes' or 'no': yes
Generating updated storage configuration
storage configuration failed: The following problem occurred on line 19 of the kickstart file:
Requested boot drive "sda" doesn't exist or cannot be used.
================================================================================
================================================================================
================================================================================
Installation
1) [x] Language settings 2) [x] Time settings
(English (United States)) (America/Los_Angeles timezone)
3) [x] Installation source 4) [x] Software selection
(Local media) (Custom software selected)
5) [!] Installation Destination 6) [x] Kdump
(No disks selected) (Kdump is enabled)
7) [ ] Network configuration
(Not connected)
Not enough space in file systems for the current software selection. An additional 1069.52 MiB is needed.
Enter 'b' to ignore the warning and attempt to install anyway.
Please make your choice from above ['q' to quit | 'b' to begin installation |
'r' to refresh]: b
Please complete all spokes before continuing
Please make your choice from above ['q' to quit | 'b' to begin installation |
'r' to refresh]: q
================================================================================
================================================================================
Question
Do you really want to quit?
Please respond 'yes' or 'no': yes
[anaconda] 1:main* 2:shell 3:log 4:storage-lo> Switch tab: Alt+Tab | Help: F1
[terminated]
Como o disco foi criado:
A imagem do disco foi criada no host com os dois comandos a seguir:
cd /home
qemu-img create -f qcow2 disk_test.img 100G
O arquivo de kickstart:
O arquivo de kickstart em questão tem o seguinte conteúdo:
[root@remote-host ~]# vi /tmp/vm.ks
# System authorization information
auth --enableshadow --passalgo=sha512
# Run the Setup Agent on first boot
firstboot --enable
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy --device=eno1 --hostname=localhost.localdomain --onboot=on --activate
# Root password
rootpw --iscrypted $someLongHashForEncryptedPassword
# System timezone
timezone Valid_Time_Zone_Given_Here --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information. Erases all partitions from the sda drive.
clearpart --all --initlabel
# Disk partitioning information
part pv.204 --fstype="lvmpv" --ondisk=sda --size=1902212
part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=winnt"
part /boot --fstype="xfs" --ondisk=sda --size=500
volgroup centos --pesize=4096 pv.204
logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol /home --fstype="xfs" --size=230400 --name=home --vgname=centos
logvol swap --fstype="swap" --size=7808 --name=swap --vgname=centos
repo --name="CentOS" --baseurl="http://mirror.centos.org/centos/7/os/x86_64/"
repo --name="EPEL" --baseurl="http://dl.fedoraproject.org/pub/epel/7/x86_64/"
%packages
@base
@compat-libraries
@core
@debugging
@development
@network-file-system-client
@remote-system-management
@security-tools
@smart-card
@virtualization-hypervisor
@virtualization-platform
@virtualization-tools
@virtualization-client
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
~
"/tmp/vm.ks" 51L, 1872C
O comando
virt-install
:
O comando virt-install
que acionou o processo de instalação que gerou a saída mostrada acima é o seguinte:
[root@remote-host ~]# virt-install --name=public-centos7 --disk path=/home/disk_test.img,size=99 --graphics none --vcpus=1 --memory=2048 --location /tmp/CentOS-7-x86_64-Minimal-1611.iso --network bridge=virbr0 --os-type=linux --os-variant=rhel7.0 --initrd-inject=/tmp/vm.ks --extra-args "ks=file:/vm.ks console=ttyS0"
Tentativa de visualizar registros:
Eu tentei montar a imagem do disco do convidado para ver os logs, mas recebi a seguinte mensagem indicando que o sistema de arquivos do disco parece ser nulo:
[root@remote-host ~]# virsh destroy public-centos7
Domain public-centos7 destroyed
[root@remote-host ~]# virsh list --all
Id Name State
----------------------------------------------------
- public-centos7 shut off
[root@remote-host ~]# guestmount -a /home/disk_test.img -m /dev/sda1 /mnt
libguestfs: error: vfs_type: vfs_type_stub: /dev/sda1: No such file or directory
libguestfs: error: mount_options: mount_options_stub: /dev/sda1: No such file or directory
guestmount: '/dev/sda1' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount: /dev/sda (unknown)
[root@remote-host ~]# guestmount -a /home/disk_test.img -m /dev/sda /mnt
libguestfs: error: mount_options: /dev/sda on / (options: ''): mount: /dev/sda is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
guestmount: '/dev/sda' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount: /dev/sda (unknown)
[root@remote-host ~]#
Validando a imagem do disco:
Por sugestão de @ garethTheRed, digitei o seguinte:
[root@remote-host ~]# virt-filesystems -a /home/disk_test.img
[root@remote-host ~]#
Quais alterações específicas devem ser feitas em resposta à falta de resultados desse comando? As partições precisam ser adicionadas a disk_test.img
? Se sim, como?
Para referência, aqui está o conteúdo da unidade física:
[root@remote-host ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes, 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt
# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 1435647 500M Microsoft basic
3 1435648 3897165823 1.8T Linux LVM
Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-swap: 8187 MB, 8187281408 bytes, 15990784 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-home: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-second: 241.6 GB, 241587716096 bytes, 471851008 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-third: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-fourth: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-fifth: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-seventh: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-eighth: 241.6 GB, 241587716096 bytes, 471851008 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-sixth: 241.6 GB, 241591910400 bytes, 471859200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
[root@remote-host ~]#
Por favor, note que /home/disk_test.img
está localizado na partição /dev/mapper/centos-home
, que é a partição do host. Eu estava apenas colocando-o lá para iniciantes para simplesmente conseguir algo para trabalhar antes de melhorar.
Também para referência, os pools de armazenamento disponíveis são os seguintes:
[root@remote-host ~]# virsh pool-list
Name State Autostart
-------------------------------------------
home active yes
root active yes
anotherUserName active yes
tmp active yes
[root@remote-host ~]#
Devo criar um pool de armazenamento para uma das outras partições e, em seguida, um volume de armazenamento dentro dele, e passar um ou outro deles para o comando virt-install
?