我已经在启用了 KVM 的 qemu 中使用以下命令创建了一个 VM。
qemu-kvm -m 1024 -enable-kvm -hda /var/lib/libvirt/images/fedora.img
我想知道为此虚拟机模拟的确切设备,包括存储和网络(我可以看到使用 ifconfig 在虚拟机内部启用的网络接口)。
答案1
info qtree
这个很棒的 QEMU 监控命令以漂亮的树状视图显示了所有 QEMU 设备的放置方式。
您可以通过以下方式获取 QEMU 监视器提示:
- Ctrl + AC 开启
-nographic
- Ctrl + Alt + ?,其中
?
1、2、3 等在图形 QEMU 窗口中 -monitor telnet::45454,server,nowait
然后连接到它telnet 45454
然后例如我可以看到我的网络设备为:
dev: rtl8139, id ""
mac = "52:54:00:12:34:56"
vlan = <null>
netdev = "net0"
addr = 03.0
romfile = "efi-rtl8139.rom"
rombar = 1 (0x1)
multifunction = false
command_serr_enable = true
x-pcie-lnksta-dllla = true
x-pcie-extcap-init = true
class Ethernet controller, addr 00:03.0, pci id 10ec:8139 (sub 1af4:1100)
bar 0: i/o at 0xc000 [0xc0ff]
bar 1: mem at 0xfeb51000 [0xfeb510ff]
bar 6: mem at 0xffffffffffffffff [0x3fffe]
和我的存储设备为:
bus: virtio-bus
type virtio-pci-bus
dev: virtio-blk-device, id ""
drive = "virtio0"
logical_block_size = 512 (0x200)
physical_block_size = 512 (0x200)
min_io_size = 0 (0x0)
opt_io_size = 0 (0x0)
discard_granularity = 4294967295 (0xffffffff)
write-cache = "auto"
share-rw = false
rerror = "auto"
werror = "auto"
cyls = 1040 (0x410)
heads = 16 (0x10)
secs = 63 (0x3f)
serial = ""
config-wce = true
scsi = false
request-merging = true
num-queues = 1 (0x1)
queue-size = 128 (0x80)
iothread = ""
indirect_desc = true
event_idx = true
notify_on_empty = true
any_layout = true
iommu_platform = false
以及其他 PCI 设备:
dev: edu, id ""
addr = 06.0
romfile = ""
rombar = 1 (0x1)
multifunction = false
command_serr_enable = true
x-pcie-lnksta-dllla = true
x-pcie-extcap-init = true
class Class 00ff, addr 00:06.0, pci id 1234:11e8 (sub 1af4:1100)
bar 0: mem at 0xfea00000 [0xfeafffff]
在 QEMU v2.12 中测试。
答案2
如果您有权访问客户机,为什么不使用“lspci”之类的东西呢?如果您尝试从主机获取此信息,则需要弄清楚 qemu 使用的默认值。这将根据您使用的版本而有所不同。
我建议您使用 libvirt,而不是手动启动 qemu。这将为您提供更好的客户机 API,并以合理的方式为您提供这些信息(您可以简单地使用它virsh dumpxml
来转储客户机的配置,包括所有连接的硬件设备)。