AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 789358
Accepted
Programster
Programster
Asked: 2016-06-21 06:55:59 +0800 CST2016-06-21 06:55:59 +0800 CST 2016-06-21 06:55:59 +0800 CST

virt-install 使用带有 iso 映像的位置不再工作

  • 772

我已将我的操作系统升级到 Ubuntu 16.04,并尝试使用我在 Ubuntu 14.04 上成功使用一段时间的KVM 管理工具从头安装 ubuntu 14.04 来宾。不幸的是,看起来 virt-install 已更改并且不再接受--location带有 ISO 映像的参数,因为它将输出以下错误:

Starting install...
ERROR    Could not find an installable distribution at '/home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso'

The location must be the root directory of an install tree.

但是,如果我使用该--cdrom参数代替--location它,我将不再喜欢我有一个--extra-args参数指定 kickstart/preseed 文件的位置并且控制台将使用 ttyS0 的事实。

--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z"

此时,我尝试只删除 --extra-args 参数以从 CD 进行安装,但如果这样做,则在 CLI 中看不到安装的任何输出。我猜它希望你通过 VNC 或不理想的东西进行连接。

作为参考,原来的安装命令是:

qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system  \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--location /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--extra-args "console=ttyS0 ks=http://pastebin.com/raw.php?i=SrTvbt6Z" \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2

新命令是:

qemu-img create -f qcow2 -o preallocation=metadata,lazy_refcounts=on /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img 20G
virt-install --connect qemu:///system  \
--nographics \
--os-type linux \
--accelerate \
--hvm \
--network network=default,model=virtio \
--name ubuntu14.04 \
--os-variant=ubuntu14.04 \
--cdrom /home/programster/apps/KVM-Command-Generator/installation_media/Ubuntu_14.04.iso \
--disk /home/programster/apps/KVM-Command-Generator/vms/ubuntu14.04.img,bus=virtio,format=qcow2 \
--ram 512 \
--vcpus 2

问题

如何使用额外的参数从本地 ISO 映像安装 virt-install 以指定 kickstart/preseed 文件的位置,并允许我查看进度并可能通过 CLI 而不是使用 VNC 选择选项?

也许我必须指定一个 web url 而不是 ISO 映像--location,但如果我可以传递一个本地位置,以防互联网不是那么好,我会更喜欢它。

额外信息

  • 虚拟安装版本:1.3.2
  • Ubuntu 16.04 4.4.0-24-通用
  • 链接到我下载使用的 ISO 映像(ubuntu mini iso)
virtualization
  • 4 4 个回答
  • 16900 Views

4 个回答

  • Voted
  1. Best Answer
    Dave Hein
    2016-08-22T11:26:04+08:002016-08-22T11:26:04+08:00

    @Programster - 我在他们的邮件列表中向 virt-manager 维护者报告了这个问题。请参阅http://www.redhat.com/archives/virt-tools-list/2016-August/msg00009.html。您可以关注该线程以获取更多详细信息。知道这在 Ubuntu 14.04 而不是在 Ubuntu 16.04 中有效是解决问题的关键。

    最重要的是,这已在https://github.com/virt-manager/virt-manager的 master 分支中得到修复。

    修复它的提交是:https ://github.com/virt-manager/virt-manager/commit/3f15a489cda87f8028828d567848193dd2640a43

    我不确定它何时会进入各种 virt-manager 软件包。但是您可以获取源代码并从那里运行 virt-install。(注意:您需要添加一些包,并且可能应该创建一个 Python 虚拟环境,因此您可能希望在虚拟机上进行试验,然后再在需要保持稳定和清洁的系统上使用额外的包。)

    • 6
  2. Programster
    2016-06-21T10:24:23+08:002016-06-21T10:24:23+08:00

    在阅读了--locationvirt-install 手册页中的部分之后,看起来应该仍然可以location用来指定 ISO 映像的路径,但它对我不起作用。幸运的是,它提供了一些示例,其中列出了针对 Ubuntu 的示例:

    http://us.archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/
    

    使用它对我有用,所以让它安装 Ubuntu 14.04 我所做的就是改变wilytotrusty并且 Bob 是你的叔叔!我希望我可以从本地 mini.iso 安装,但同时这应该对我和其他人有用。

    • 1
  3. Telesforo X
    2020-08-24T23:51:30+08:002020-08-24T23:51:30+08:00

    我今天遇到了同样的问题,以前的一些答案帮助我找到了解决方法。我的解决方案是在关于 iso 安装的 virt-install 手册中找到的,因为我使用的是 net install iso,它需要指定额外的内核和 initrd 参数来指示 iso 中的路径才能找到它们。多亏了这个--debug选项,我找到了安装程序的代码,以便更好地了解正在发生的事情。所以最后配置行结束是这样的:

    virt-install --name centos7 \
                 --virt-type kvm \
                 --memory 2048 \
                 --vcpus 2 \
                 --disk path='/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso',device=cdrom \
                 --disk path=centos7.qcow2,device=disk \
                 --location '/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso',initrd=isolinux/initrd.img,kernel=isolinux/vmlinuz \
                 --graphics none \
                 --os-type Linux \
                 --os-variant centos7.0 \
                 --network type=direct,source=enp3s0,source_mode=bridge,model=virtio \ 
                 --extra-args 'console=ttyS0,115200n8 serial' \
                 --console pty,target_type=serial \
                 --debug
    

    这里的关键是指定vmlinuz为 kernel 和initrd.img. 要在 iso 中查找路径,我使用了isoinfo如下命令:

    $ isoinfo -J -i '/path_to_isos/CentOS-7-x86_64-NetInstall-2003.iso' -l
    

    所以在这种情况下,我在 isolinux 文件夹中找到了它们。此外,我已经为 cdrom 设备定义了磁盘,因此我可以在安装时访问它,但在这种情况下,我使用的是网络存储库,我通过基于文本的安装菜单将源定义为 CentOS 7 的镜像之一. 我猜如果需要,来源可能是完整的 CD/DVD iso。使用位置可以启用额外参数,因此我可以在整个安装过程中使用文本控制台访问它。希望这有助于完成原始问题的答案。

    • 1
  4. Neil Stockbridge
    2019-07-25T20:29:19+08:002019-07-25T20:29:19+08:00

    以下内容对我从 Ubuntu 16.04 主机系统安装 Debian 10 有用:

    cd /usr/share/virt-manager/virtinst/
    patch <<.
    --- urlfetcher.py.orig 2019-07-25 13:54:37.496567791 +1200
    +++ urlfetcher.py      2019-07-25 13:54:43.180373257 +1200
    @@ -663,6 +663,8 @@
                     ]
         _hvm_paths = [("pxeboot/vmlinuz",
                         "images/pxeboot/initrd.img"),       # Fedora
    +                  ("install.amd/vmlinuz",
    +                    "install.amd/initrd.gz"),   # Debian
                     ]
         _iso_paths = ["images/boot.iso",                   # RH/Fedora
                        "boot/boot.iso",                     # Suse
    .
    
    virt-install --debug ... --location=/srv/software/Debian/debian-10.0.0-amd64-netinst.iso --extra-args='console=tty0 console=ttyS0,115200n8'
    
    • 0

相关问题

  • 运行虚拟机和 Ubuntu EC2 云有什么区别?

  • 什么原因会阻止“virsh -c qemu:///system console guest1”的控制台输出?

  • 如何在 Windows 7 中运行 Ubuntu?

  • 哪个更好:Win7 主机运行 VMware 和 Ubuntu 来宾,反之亦然?

  • 如何在 Ubuntu 中运行 Windows XP

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve