我在用着virt-安装使用官方 Ubuntu 服务器实时 ISO 创建 Ubuntu 机器。此命令过去一直有效,但在某个时候停止工作(可能是在将主机操作系统从 Ubuntu 18.04 升级到 20.04 之后,但我不确定)。
$ mkdir image-builder-68692987-installer
$ mount ubuntu-21.10-live-server-amd64.iso image-builder-68692987-installer
$ virt-install --name image-builder-68692987 \
--noreboot --os-variant ubuntu20.04 \
--disk gitlab-runner-ubuntu-base.qcow2 \
--disk image-builder-68692987-seed.iso \
--cdrom ubuntu-21.10-live-server-amd64.iso \
--boot 'kernel=/var/lib/libvirt/images/gitlab-runner/image-builder-68692987-installer/casper/vmlinuz,initrd=/var/lib/libvirt/images/gitlab-runner/image-builder-68692987-installer/casper/initrd,kernel_args=autoinstall console=ttyS0' \
--vcpus=4 \
--ram=4096 \
--network default \
--graphics none
输出:
WARNING CDROM media does not print to the text console by default, so you likely will not see text install output. You might want to use --location. See the man page for examples of using --location with CDROM media
Starting install...
ERROR internal error: child reported (status=125): unable to open
/var/lib/libvirt/images/gitlab-runner/image-builder-68692987-installer/casper/initrd:
Read-only file system
Domain installation does not appear to have been successful.
因此,出于某种原因,它会抱怨它initrd
位于只读文件系统上。这显然是正确的,因为它指向通过回送设备安装的 Ubuntu ISO — 但为什么它会认为它需要写访问权限呢?
答案1
要安装某些东西,您必须将其写出来,如果您正在实时启动,请确保您正在安装到 ramdisk。但是,如果您将 ISO 安装为文件夹(如您的情况),则 ISO 是只读的。如果要添加到 ISO 映像,则必须重建映像以添加新文件。