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
    • 最新
    • 标签
主页 / server / 问题 / 47004
Accepted
Nakedible
Nakedible
Asked: 2009-07-29 06:38:10 +0800 CST2009-07-29 06:38:10 +0800 CST 2009-07-29 06:38:10 +0800 CST

KVM 并将根驱动器作为 sda

  • 772

KVM 基于 qemu,通过 IDE 适配器将硬盘模拟为 /dev/hda。但是,我的图像(取自真机)假定引导驱动器为 /dev/sda。这当然可以更改,但是由于该信息已深入嵌入用于内核的 initramfs 中,而且我仍然希望能够在真实硬件上启动映像,因此我宁愿不碰它。

有什么办法让我的驱动器显示为 /dev/sda 而不是 /dev/hda?

(另外,Xen 对我来说是一种可能性,但 Xen + HVM 也有同样的问题,因为它也使用 qemu 硬件仿真。)

virtualization kvm-virtualization
  • 2 2 个回答
  • 9312 Views

2 个回答

  • Voted
  1. Nakedible
    2009-07-30T05:45:43+08:002009-07-30T05:45:43+08:00

    实际上,我自己找到了适合我的答案。

    kvm -驱动文件=x,总线=scsi,boot=on

    驱动选项允许指定总线。但是由于某种原因,默认情况下,scsi 是不可引导的。但是,KVM 支持boot=on使 scsi 驱动器可引导的标志。

    但是,此解决方案仍然存在问题-出于某种原因,内核正确检测到 scsi 驱动器需要几秒钟(我猜它是一些 USB 设备解决等待或类似的)。因此,我不得不在合适的位置手动中断我的 initramfs 引导,以等待驱动器出现,然后继续引导。我通过提供break=mount内核命令行来做到这一点。

    因此,有了这个 KVM 配置和break=mount选项,我终于可以在不修改的情况下启动我的磁盘映像。


    快速说明:bus=scsi 现在是 if=scsi。

    • 3
  2. Best Answer
    sybreon
    2009-07-29T07:20:48+08:002009-07-29T07:20:48+08:00

    虽然 QEMU 能够模拟 USB 存储设备 AFAIK,但它不能直接从它启动。KVM 应该类似。我会为您推荐的另一个选择是这个。我不确定它是否会起作用,因为我自己没有尝试过它可能会。

    将您的驱动器映像用作 USB 存储设备。但是,通过直接在命令行上指定内核和 initrd 来引导。所以,像这样:

    kvm -kernel <kernel image> -initrd <initrd image> -usb <usb options> ...
    

    为了使仿真更准确,您应该使用从驱动器映像中提取的内核和 initrd 映像。这将启动你的内核,它应该有内置的 USB 驱动程序来检测/dev/sda然后加载你的 initrd,这会很神奇。然后,应该/root像往常一样使用您的驱动器映像继续启动。

    • 0

相关问题

  • 将 VMDK 转换为 VHD 后启动虚拟机时出现问题

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve