我正在尝试使用 virt-install + preseed、带有 kvm 的 ubuntu12.04 vm 实现自动化。
我需要将虚拟机托管在为每个虚拟机创建的特定 lvm 卷上。
当我运行脚本时,出现错误:必须为不存在的磁盘指定大小。
这是我的 install.sh 文件。我的
#!/bin/bash
sudo virt-install \
--name=test \
--connect=qemu:///system \
--ram=1024 \
--vcpus=2 \
--os-variant=ubuntuprecise \
--hvm \
--virt-type=kvm \
--network=bridge:br0 \
--location=http://mirrors.usc.edu/pub/linux/distributions/ubuntu/dists/precise /main/installer-amd64/ \
--file=test.img \
--graphics vnc,port=5901,password=test,listen=0.0.0.0,keymap=ja \
--disk path=/dev/VG/testing,size=9.7 \
--extra-args="auto=true priority=critical initrd=/install/initrd.gz preseed/file=preseed.cfg" \
这是我的 preseed.cfg 文件(这个文件中很可能会有错误,尽管 debconf 说没问题,但我无法走到这一步):
d-i debian-installer/locale string en
d-i console-keymaps-at/keymap select en
d-i netcfg/get_nameservers string 8.8.8.8
d-i netcfg/get_ipaddress string 192.168.0.20
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 192.168.0.1
d-i netcfg/choose_interface select eth0
d-i netcfg/disable_dhcp boolean true
d-i netcfg/dhcp_options select Configure network manually
d-i netcfg/confirm_static boolean true
d-i netcfg/get_hostname string test
d-i netcfg/get_hostname seen false
d-i netcfg/get_domain string ymotongpoo.local
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Athens
d-i clock-setup/ntp boolean true
d-i partman-auto/disk string /dev/vda
d-i partman-lvm/devide_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/method string regular
d-i partman-lvm/confirm boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman/default_filesystem string ext4
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i passwd/root-login boolean false
d-i passwd/user-fullname string bob
d-i passwd/username string bob
d-i passwd/user-password-crypted password $1$R00dFhRl$7zb6nzVUMbrBT5pchDkJl.
d-i user-setup/allow-password-weak boolean true
tasksel tasksel/first multiselect standard
d-i pkgsel/include string openssh-server
d-i pkgsel/upgrade select safe-upgrade
d-i pkgsel/language-packs multiselect en, ja
d-i pkgsel/update-policy select none
d-i pkgsel/updatedb boolean false
popularity-contest popularity-contest/participate boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i finish-install/reboot_in_progress note
答案1
错误消息很明确:“错误:必须为不存在的磁盘指定大小” 看起来“--file=test.img”指定的文件不存在。您之前创建过映像文件吗?您是否尝试过输入完整路径?您可以使用 libvirt 包中的 virt-manager 轻松创建映像文件。