qemu 启动虚拟机 常用命令(2)---drive 的使用

本文详细介绍了QEMU中使用的各种驱动参数,包括如何定义新的驱动器及其有效选项,如文件路径、接口类型、总线和单元ID等。此外,还提供了使用这些参数的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-hda (-hdb –hdc -hdd)是硬盘。

-cdrom 是光盘。

-fda(-fdb)是软盘。

这些可以使用 –drive 命令待代替。

-driveoption[,option[,option[,...]]]:定义一个新的驱动器,有效选项如下:
 file=file:定义镜像文件
 if=interface:该选项定义驱动被连接的类型,ide,scsi, sd, mtd, floppy, pflash, virtio.
 bus=bus,unit=unit:这些选项定义连接的驱动器定义总线数字和单位ID。
 index=index:此选项定义驱动器连接在一个给定的接口类型列表中可用的连接器使用索引。(可能为盘符)
 media=media:cdrom还是disk
 cyls=c,heads=h,secs=s[,trans=t]:选项同‘-hdachs’
 snapshot=snapshot:值为"on"or "off",允许被给的驱动器使能snapshot
 cache=cache:值为"none","writeback", or "writethrough" ,控制主机缓存用于访问数据块
 aio=aio:值为"threads",or "native" ,选择线程基于磁盘IO还是本地linuxIO
 format=format:指定磁盘格式,建议使用raw
 serial=serial:给设备指定序列号(可能是串口,也可能和串口无关)
 addr=addr:指定PCI地址(仅仅:if=virtio)
    默认情况下,连续写入缓存被用于所有的块设备,这意味着主机页缓存将被用于读和写数据,但是仅仅当数据被报知被写入存储子系统,写通

知将被发送到客户机。
    Instead of ‘-cdrom’ you can use:qemu -drivefile=file,index=2,media=cdrom
    Instead of ‘-hda’, ‘-hdb’, ‘-hdc’, ‘-hdd’, you can use:
 qemu -drive file=file,index=0,media=disk
 qemu -drive file=file,index=1,media=disk
 qemu -drive file=file,index=2,media=disk
 qemu -drive file=file,index=3,media=disk

注意:其中 drive的 mdia 默认为disk  index 会按照顺序产生,如果有2块盘,则在命令中写在前面的默认为index=0,如果要改变盘的顺序,需要明显的定义index变量。

qemu-kvm –drive file= win7.qcow2,index=1 –drive file=linux.qcow2,index=0

则默认会先启动linux.qcow2

<think>嗯,用户在使用qemu-system-aarch64命令创建虚拟机时遇到没有反应的问题。首先,我得考虑可能的原因。常见的问题可能有架构不匹配,比如用户可能没有启用KVM加速,或者镜像文件有问题,比如路径错误或格式不支持。还有可能是缺少必要的固件文件,比如EFI固件。此外,用户权限不足,没有访问/dev/kvm设备,或者CPU不支持虚拟化,这些也是潜在的原因。 接下来,我需要一步步引导用户检查这些问题。第一步应该检查KVM是否启用,因为如果没有KVM加速,QEMU会非常慢,甚至看起来没有反应。建议用户运行kvm-ok命令,并检查/dev/kvm是否存在,以及是否有权限访问。如果权限不足,可能需要将用户加入kvm组,或者用sudo运行。 然后,确认镜像和固件是否正确。用户需要检查-aarch64的镜像是否存在,路径是否正确,特别是UEFI固件如edk2-aarch64-code.fd是否安装。不同发行版的包名可能不同,比如在Ubuntu上是qemu-efi,而在Arch可能是edk2-armvirt。 接下来,检查命令行参数是否正确。用户可能漏掉了关键参数,比如-machine和-cpu的设置。需要确认使用的是支持的类型,比如-machine virt,gic-version=3和-cpu cortex-a57。同时,确保内存设置合理,比如-m 4096分配足够的内存。 用户权限也是一个重要点,特别是访问/dev/kvm设备。需要确认用户是否有权限,或者是否在使用sudo。此外,检查CPU是否支持虚拟化,可以通过查看/proc/cpuinfo中的flags是否有vmx或svm(虽然AArch64可能不同,但检查虚拟化支持仍然重要)。 如果以上步骤都没问题,可以尝试增加调试参数,比如-D日志文件,或者-monitor stdio来进入QEMU监视器,查看是否有报错信息。另外,建议用户尝试最小化启动命令,排除其他参数的影响,逐步添加选项定位问题。 最后,可能需要考虑其他因素,比如终端输出是否被重定向导致看起来没反应,或者是否需要添加显示设备参数如-vga virtio。如果用户使用的是旧版本QEMU,升级到最新版本也可能解决问题。如果所有步骤都失败,建议提供具体的命令行和日志以便进一步分析。</think>检查QEMU虚拟机卡住问题可按照以下步骤排查: 一、基础环境检查 1. 确认CPU架构匹配 - 执行 `uname -m` 验证宿主机架构 - 若宿主机是x86_64架构,必须添加`-enable-kvm`参数: ```bash qemu-system-aarch64 -enable-kvm -machine virt -cpu host ... ``` 2. KVM加速检测 - 运行检测命令: ```bash sudo kvm-ok | grep 'KVM acceleration' ``` - 检查/dev/kvm权限: ```bash ls -l /dev/kvm && groups | grep kvm ``` 二、固件与镜像验证 1. UEFI固件检查 - Ubuntu/Debian: ```bash dpkg -L qemu-efi | grep aarch64 ``` - RHEL/CentOS: ```bash rpm -ql edk2-aarch64 ``` 2. 镜像有效性验证 - 执行QEMU镜像检测: ```bash qemu-img check your-disk-image.qcow2 ``` 三、调试启动流程 1. 最小化启动命令示例: ```bash qemu-system-aarch64 \ -M virt \ -cpu cortex-a57 \ -m 4096 \ -bios /usr/share/edk2/aarch64/QEMU_EFI.fd \ -drive file=ubuntu-22.04-server-cloudimg-arm64.img,if=none,id=drive0 \ -device virtio-blk-device,drive=drive0 \ -nographic \ -serial mon:stdio ``` 2. 关键调试参数: ```bash -d int,cpu_reset -D qemu_debug.log # 记录详细日志 -monitor telnet:localhost:4444,server,nowait # 启用远程监控 ``` 四、常见问题解决方案 1. 图形界面卡住时: ```bash -device virtio-gpu-pci \ -display gtk,gl=on ``` 2. 网络设备异常时: ```bash -netdev user,id=net0 \ -device virtio-net-device,netdev=net0 ``` 五、性能优化建议 1. 启用多核CPU: ```bash -smp 4,cores=2,threads=2,sockets=1 ``` 2. 使用virtio设备: ```bash -drive file=disk.img,if=virtio,cache=writeback ``` 排查完毕后,可通过以下命令测试基础功能: ```bash qemu-system-aarch64 -machine virt -cpu cortex-a57 -smp 4 -m 4096 \ -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \ -drive if=pflash,format=raw,file=/usr/share/qemu-efi-aarch64/QEMU_VARS.fd \ -nographic -device virtio-rng-pci ``` 建议通过`dmesg | grep -i kvm`查看内核日志,确认KVM模块加载情况。若问题仍未解决,可提供完整的启动命令和日志文件进行深度分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值