CentOS 7 主机需要使用virt-install
和安装 CentOS 7 来宾kickstart
,但下面记录的方法无法识别指定的硬盘驱动器或依赖项。
为了让安装过程能够识别硬盘和依赖项,需要对以下内容进行哪些具体更改?
错误症状:
以下是 Putty 在来宾操作系统安装过程中打印出的内容:
[ 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]
磁盘是如何创建的:
使用以下两个命令在主机上创建磁盘映像:
cd /home
qemu-img create -f qcow2 disk_test.img 100G
启动文件:
相关的 kickstart 文件包含以下内容:
[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
命令
virt-install
:触发生成上述输出的安装过程的命令virt-install
如下:
[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"
尝试查看日志:
我尝试挂载来宾的磁盘映像以查看日志,但收到以下消息,表明磁盘文件系统似乎为空:
[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 ~]#
验证磁盘映像:
根据 @garethTheRed 的建议,我输入了以下内容:
[root@remote-host ~]# virt-filesystems -a /home/disk_test.img
[root@remote-host ~]#
针对该命令没有结果,具体应该做哪些改变? 是否需要添加分区disk_test.img
?如果是这样,怎么办?
作为参考,以下是物理驱动器的内容:
[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 ~]#
请注意位于/home/disk_test.img
分区中/dev/mapper/centos-home
,即主机的分区。我只是把它放在那里,让初学者在改进之前简单地得到一些东西。
另外供参考,可用的存储池如下:
[root@remote-host ~]# virsh pool-list
Name State Autostart
-------------------------------------------
home active yes
root active yes
anotherUserName active yes
tmp active yes
[root@remote-host ~]#
我是否应该为其他分区之一创建一个存储池,然后在其中创建一个存储卷,并将其中一个或另一个传递到命令中virt-install
?