[{"data":1,"prerenderedAt":1424},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0700-qemu-kvm-xu-ni-ji":3,"wiki-doc-items-2024-03-30-linux-jiao-cheng":1358,"wiki:author-members":1412},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":1345,"chapterOrder":1346,"date":1347,"description":14,"docKey":1348,"docRoot":1349,"docTitle":1350,"extension":1351,"isWikiDoc":215,"isWikiIndex":1352,"meta":1353,"navigation":215,"path":1354,"seo":1355,"stem":1356,"wikiDepth":36,"__hash__":1357},"wiki\u002Fwiki\u002F2024-03-30-Linux教程\u002F0700-QEMU-KVM虚拟机.md","QEMU-KVM虚拟机",[7],"董佳辉",{"type":9,"value":10,"toc":1336},"minimark",[11,15,19,22,88,91,125,132,155,162,166,169,188,203,206,262,265,295,298,301,326,333,337,344,386,400,406,409,412,419,426,441,444,732,735,753,756,759,783,786,795,798,801,804,813,820,823,828,831,836,841,852,876,883,888,891,931,934,959,962,972,1061,1064,1076,1086,1091,1094,1103,1117,1122,1138,1143,1186,1194,1197,1220,1223,1262,1265,1285,1292,1297,1300,1332],[12,13,14],"p",{},"QEMU-KVM是一个高性能的虚拟机,以下是以安装RockyLinux9为例.",[16,17,18],"h3",{"id":18},"安装必备软件",[12,20,21],{},"确保主机已经安装了 QEMU、KVM 和相关工具。以基于 Debian\u002FUbuntu 的系统为例，执行以下命令：",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-bash shiki shiki-themes github-light github-dark","sudo apt update\nsudo apt install qemu-kvm qemu-img virt-manager virt-install virt-viewer libvirt libvirt-daemon libvirt-daemon-qemu bridge-utils virglrenderer\n","bash","",[30,31,32,48],"code",{"__ignoreMap":28},[33,34,37,41,45],"span",{"class":35,"line":36},"line",1,[33,38,40],{"class":39},"sScJk","sudo",[33,42,44],{"class":43},"sZZnC"," apt",[33,46,47],{"class":43}," update\n",[33,49,51,53,55,58,61,64,67,70,73,76,79,82,85],{"class":35,"line":50},2,[33,52,40],{"class":39},[33,54,44],{"class":43},[33,56,57],{"class":43}," install",[33,59,60],{"class":43}," qemu-kvm",[33,62,63],{"class":43}," qemu-img",[33,65,66],{"class":43}," virt-manager",[33,68,69],{"class":43}," virt-install",[33,71,72],{"class":43}," virt-viewer",[33,74,75],{"class":43}," libvirt",[33,77,78],{"class":43}," libvirt-daemon",[33,80,81],{"class":43}," libvirt-daemon-qemu",[33,83,84],{"class":43}," bridge-utils",[33,86,87],{"class":43}," virglrenderer\n",[12,89,90],{},"对于基于 Fedora\u002FCentOS\u002FRocky Linux 的系统，命令可能是：",[23,92,94],{"className":25,"code":93,"language":27,"meta":28,"style":28},"sudo dnf install qemu-kvm qemu-img virt-manager virt-install virt-viewer libvirt libvirt-daemon libvirt-daemon-qemu bridge-utils virglrenderer\n",[30,95,96],{"__ignoreMap":28},[33,97,98,100,103,105,107,109,111,113,115,117,119,121,123],{"class":35,"line":36},[33,99,40],{"class":39},[33,101,102],{"class":43}," dnf",[33,104,57],{"class":43},[33,106,60],{"class":43},[33,108,63],{"class":43},[33,110,66],{"class":43},[33,112,69],{"class":43},[33,114,72],{"class":43},[33,116,75],{"class":43},[33,118,78],{"class":43},[33,120,81],{"class":43},[33,122,84],{"class":43},[33,124,87],{"class":43},[12,126,127,128,131],{},"安装完成后，确保当前用户在 ",[30,129,130],{},"kvm"," 组中（否则可能没有权限使用 KVM 加速）：",[23,133,135],{"className":25,"code":134,"language":27,"meta":28,"style":28},"sudo usermod -aG kvm $USER\n",[30,136,137],{"__ignoreMap":28},[33,138,139,141,144,148,151],{"class":35,"line":36},[33,140,40],{"class":39},[33,142,143],{"class":43}," usermod",[33,145,147],{"class":146},"sj4cs"," -aG",[33,149,150],{"class":43}," kvm",[33,152,154],{"class":153},"sVt8B"," $USER\n",[12,156,157,161],{},[158,159,160],"strong",{},"注意："," 修改组后可能需要注销重新登录才能生效。",[16,163,165],{"id":164},"打开kvm硬件加速","打开KVM硬件加速",[12,167,168],{},"运行以下命令检查 KVM 是否启用：",[23,170,172],{"className":25,"code":171,"language":27,"meta":28,"style":28},"egrep -c '(vmx|svm)' \u002Fproc\u002Fcpuinfo\n",[30,173,174],{"__ignoreMap":28},[33,175,176,179,182,185],{"class":35,"line":36},[33,177,178],{"class":39},"egrep",[33,180,181],{"class":146}," -c",[33,183,184],{"class":43}," '(vmx|svm)'",[33,186,187],{"class":43}," \u002Fproc\u002Fcpuinfo\n",[12,189,190,191,194,195,198,199,202],{},"如果输出 ",[30,192,193],{},"0","，说明 CPU 不支持 KVM 或未开启 VT-x（Intel）\u002F SVM（AMD），需要在 BIOS 里开启 ",[158,196,197],{},"Intel VT-x"," 或 ",[158,200,201],{},"AMD SVM"," 。",[12,204,205],{},"然后检查 KVM 模块是否加载：",[23,207,209],{"className":25,"code":208,"language":27,"meta":28,"style":28},"\n# 验证 KVM 加速可用\nlsmod | grep kvm\n\n# 验证当前用户有权限访问 \u002Fdev\u002Fkvm\nls -l \u002Fdev\u002Fkvm\n",[30,210,211,217,223,239,244,250],{"__ignoreMap":28},[33,212,213],{"class":35,"line":36},[33,214,216],{"emptyLinePlaceholder":215},true,"\n",[33,218,219],{"class":35,"line":50},[33,220,222],{"class":221},"sJ8bj","# 验证 KVM 加速可用\n",[33,224,226,229,233,236],{"class":35,"line":225},3,[33,227,228],{"class":39},"lsmod",[33,230,232],{"class":231},"szBVR"," |",[33,234,235],{"class":39}," grep",[33,237,238],{"class":43}," kvm\n",[33,240,242],{"class":35,"line":241},4,[33,243,216],{"emptyLinePlaceholder":215},[33,245,247],{"class":35,"line":246},5,[33,248,249],{"class":221},"# 验证当前用户有权限访问 \u002Fdev\u002Fkvm\n",[33,251,253,256,259],{"class":35,"line":252},6,[33,254,255],{"class":39},"ls",[33,257,258],{"class":146}," -l",[33,260,261],{"class":43}," \u002Fdev\u002Fkvm\n",[12,263,264],{},"如果没有输出，加载 KVM 模块：",[23,266,268],{"className":25,"code":267,"language":27,"meta":28,"style":28},"sudo modprobe kvm_intel  # Intel 处理器\nsudo modprobe kvm_amd    # AMD 处理器\n",[30,269,270,283],{"__ignoreMap":28},[33,271,272,274,277,280],{"class":35,"line":36},[33,273,40],{"class":39},[33,275,276],{"class":43}," modprobe",[33,278,279],{"class":43}," kvm_intel",[33,281,282],{"class":221},"  # Intel 处理器\n",[33,284,285,287,289,292],{"class":35,"line":50},[33,286,40],{"class":39},[33,288,276],{"class":43},[33,290,291],{"class":43}," kvm_amd",[33,293,294],{"class":221},"    # AMD 处理器\n",[16,296,297],{"id":297},"创建虚拟硬盘文件",[12,299,300],{},"你需要为虚拟机创建一个硬盘镜像文件。这里以 qcow2 格式、100GB 为例（你可以根据需要调整大小）。在终端中运行：",[23,302,304],{"className":25,"code":303,"language":27,"meta":28,"style":28},"qemu-img create -f qcow2 disk.qcow2 100G\n",[30,305,306],{"__ignoreMap":28},[33,307,308,311,314,317,320,323],{"class":35,"line":36},[33,309,310],{"class":39},"qemu-img",[33,312,313],{"class":43}," create",[33,315,316],{"class":146}," -f",[33,318,319],{"class":43}," qcow2",[33,321,322],{"class":43}," disk.qcow2",[33,324,325],{"class":43}," 100G\n",[12,327,328,329,332],{},"这将在当前目录下生成一个名为 ",[30,330,331],{},"disk.qcow2"," 的虚拟硬盘文件。",[16,334,336],{"id":335},"准备-ovmfuefi-固件文件","准备 OVMF（UEFI 固件）文件",[12,338,339,340,343],{},"安装 ",[30,341,342],{},"OVMF"," 包。例如，在 Ubuntu 上可通过以下命令安装：",[23,345,347],{"className":25,"code":346,"language":27,"meta":28,"style":28},"\n# 一般电脑都默认安装过了\nsudo apt install ovmf # Debian\u002FUbuntu\nsudo dnf install edk2-ovmf # RHEL\u002FCentOS\u002FFedora\n",[30,348,349,353,358,372],{"__ignoreMap":28},[33,350,351],{"class":35,"line":36},[33,352,216],{"emptyLinePlaceholder":215},[33,354,355],{"class":35,"line":50},[33,356,357],{"class":221},"# 一般电脑都默认安装过了\n",[33,359,360,362,364,366,369],{"class":35,"line":225},[33,361,40],{"class":39},[33,363,44],{"class":43},[33,365,57],{"class":43},[33,367,368],{"class":43}," ovmf",[33,370,371],{"class":221}," # Debian\u002FUbuntu\n",[33,373,374,376,378,380,383],{"class":35,"line":241},[33,375,40],{"class":39},[33,377,102],{"class":43},[33,379,57],{"class":43},[33,381,382],{"class":43}," edk2-ovmf",[33,384,385],{"class":221}," # RHEL\u002FCentOS\u002FFedora\n",[12,387,388,389,198,392,395,396,399],{},"安装后，查找文件路径，通常位于 ",[30,390,391],{},"\u002Fusr\u002Fshare\u002FOVMF\u002FOVMF_CODE.fd",[30,393,394],{},"\u002Fusr\u002Fshare\u002Fovmf\u002FOVMF.fd","。直接在命令中使用正确路径。(下方脚本中有例子,你只需要确保你的",[30,397,398],{},"\u002Fusr\u002Fshare\u002FOVMF\u002F","下有这俩文件即可)",[12,401,402],{},[403,404],"img",{"alt":28,"src":405},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F03\u002F30\u002Fimage329.webp",[12,407,408],{},"也可以下载下面这个文件:",[12,410,411],{},"暂时无法在飞书文档外展示此内容",[413,414,415],"ol",{},[416,417,418],"li",{},"编写或调整 run.sh 脚本",[12,420,421,422,425],{},"将下面的内容写入你的 ",[30,423,424],{},"run.sh"," 文件（你可以使用文本编辑器）。",[23,427,429],{"className":25,"code":428,"language":27,"meta":28,"style":28},"sudo vim .\u002Frun.sh\n",[30,430,431],{"__ignoreMap":28},[33,432,433,435,438],{"class":35,"line":36},[33,434,40],{"class":39},[33,436,437],{"class":43}," vim",[33,439,440],{"class":43}," .\u002Frun.sh\n",[12,442,443],{},"下面的脚本示例使用 QEMU 启动虚拟机并加载 ISO 镜像：",[23,445,447],{"className":25,"code":446,"language":27,"meta":28,"style":28},"#!\u002Fbin\u002Fbash\n\nqemu-system-x86_64 \\\n    -machine q35,vmport=off,kernel_irqchip=on \\\n    -accel kvm \\\n    -cpu host,kvm=on,vmx=on,migratable=on,+invtsc \\\n    -smp 8,sockets=1,cores=4,threads=2 \\\n    -m 8G,slots=4,maxmem=32G \\\n    -device virtio-gpu-gl-pci,max_outputs=1 \\\n    -vga none \\\n    -display sdl,gl=on \\\n    -audiodev pa,id=pa1,server=unix:\u002Frun\u002Fuser\u002F1000\u002Fpulse\u002Fnative \\\n    -device ich9-intel-hda \\\n    -device hda-micro,audiodev=pa1 \\\n    -device qemu-xhci,id=xhci \\\n    -device virtio-tablet-pci \\\n    -device usb-kbd,bus=xhci.0 \\\n    -bios OVMF-pure-efi64.fd \\\n    -boot d \\\n    -blockdev driver=qcow2,node-name=disk1,file.driver=file,file.cache.direct=on,file.aio=io_uring,file.filename=disk.qcow2 \\\n    -device virtio-blk-pci,drive=disk1 \\\n    -drive file=kubuntu-20.04.6-desktop-amd64.iso,media=cdrom,if=none,id=cdrom \\\n    -device usb-storage,drive=cdrom,removable=on \\\n    -nic user,model=virtio-net-pci,hostfwd=tcp::8022-:22 \\\n    -monitor stdio \\\n    -parallel none \\\n    -serial none \\\n    -msg timestamp=on\n\n",[30,448,449,454,458,466,476,485,495,509,520,534,545,556,567,577,587,597,607,617,628,639,650,660,671,681,692,703,713,723],{"__ignoreMap":28},[33,450,451],{"class":35,"line":36},[33,452,453],{"class":221},"#!\u002Fbin\u002Fbash\n",[33,455,456],{"class":35,"line":50},[33,457,216],{"emptyLinePlaceholder":215},[33,459,460,463],{"class":35,"line":225},[33,461,462],{"class":39},"qemu-system-x86_64",[33,464,465],{"class":146}," \\\n",[33,467,468,471,474],{"class":35,"line":241},[33,469,470],{"class":146},"    -machine",[33,472,473],{"class":43}," q35,vmport=off,kernel_irqchip=on",[33,475,465],{"class":146},[33,477,478,481,483],{"class":35,"line":246},[33,479,480],{"class":146},"    -accel",[33,482,150],{"class":43},[33,484,465],{"class":146},[33,486,487,490,493],{"class":35,"line":252},[33,488,489],{"class":146},"    -cpu",[33,491,492],{"class":43}," host,kvm=on,vmx=on,migratable=on,+invtsc",[33,494,465],{"class":146},[33,496,498,501,504,507],{"class":35,"line":497},7,[33,499,500],{"class":146},"    -smp",[33,502,503],{"class":43}," 8,sockets=1,cores=4,threads=",[33,505,506],{"class":146},"2",[33,508,465],{"class":146},[33,510,512,515,518],{"class":35,"line":511},8,[33,513,514],{"class":146},"    -m",[33,516,517],{"class":43}," 8G,slots=4,maxmem=32G",[33,519,465],{"class":146},[33,521,523,526,529,532],{"class":35,"line":522},9,[33,524,525],{"class":146},"    -device",[33,527,528],{"class":43}," virtio-gpu-gl-pci,max_outputs=",[33,530,531],{"class":146},"1",[33,533,465],{"class":146},[33,535,537,540,543],{"class":35,"line":536},10,[33,538,539],{"class":146},"    -vga",[33,541,542],{"class":43}," none",[33,544,465],{"class":146},[33,546,548,551,554],{"class":35,"line":547},11,[33,549,550],{"class":146},"    -display",[33,552,553],{"class":43}," sdl,gl=on",[33,555,465],{"class":146},[33,557,559,562,565],{"class":35,"line":558},12,[33,560,561],{"class":146},"    -audiodev",[33,563,564],{"class":43}," pa,id=pa1,server=unix:\u002Frun\u002Fuser\u002F1000\u002Fpulse\u002Fnative",[33,566,465],{"class":146},[33,568,570,572,575],{"class":35,"line":569},13,[33,571,525],{"class":146},[33,573,574],{"class":43}," ich9-intel-hda",[33,576,465],{"class":146},[33,578,580,582,585],{"class":35,"line":579},14,[33,581,525],{"class":146},[33,583,584],{"class":43}," hda-micro,audiodev=pa1",[33,586,465],{"class":146},[33,588,590,592,595],{"class":35,"line":589},15,[33,591,525],{"class":146},[33,593,594],{"class":43}," qemu-xhci,id=xhci",[33,596,465],{"class":146},[33,598,600,602,605],{"class":35,"line":599},16,[33,601,525],{"class":146},[33,603,604],{"class":43}," virtio-tablet-pci",[33,606,465],{"class":146},[33,608,610,612,615],{"class":35,"line":609},17,[33,611,525],{"class":146},[33,613,614],{"class":43}," usb-kbd,bus=xhci.0",[33,616,465],{"class":146},[33,618,620,623,626],{"class":35,"line":619},18,[33,621,622],{"class":146},"    -bios",[33,624,625],{"class":43}," OVMF-pure-efi64.fd",[33,627,465],{"class":146},[33,629,631,634,637],{"class":35,"line":630},19,[33,632,633],{"class":146},"    -boot",[33,635,636],{"class":43}," d",[33,638,465],{"class":146},[33,640,642,645,648],{"class":35,"line":641},20,[33,643,644],{"class":146},"    -blockdev",[33,646,647],{"class":43}," driver=qcow2,node-name=disk1,file.driver=file,file.cache.direct=on,file.aio=io_uring,file.filename=disk.qcow2",[33,649,465],{"class":146},[33,651,653,655,658],{"class":35,"line":652},21,[33,654,525],{"class":146},[33,656,657],{"class":43}," virtio-blk-pci,drive=disk1",[33,659,465],{"class":146},[33,661,663,666,669],{"class":35,"line":662},22,[33,664,665],{"class":146},"    -drive",[33,667,668],{"class":43}," file=kubuntu-20.04.6-desktop-amd64.iso,media=cdrom,if=none,id=cdrom",[33,670,465],{"class":146},[33,672,674,676,679],{"class":35,"line":673},23,[33,675,525],{"class":146},[33,677,678],{"class":43}," usb-storage,drive=cdrom,removable=on",[33,680,465],{"class":146},[33,682,684,687,690],{"class":35,"line":683},24,[33,685,686],{"class":146},"    -nic",[33,688,689],{"class":43}," user,model=virtio-net-pci,hostfwd=tcp::8022-:22",[33,691,465],{"class":146},[33,693,695,698,701],{"class":35,"line":694},25,[33,696,697],{"class":146},"    -monitor",[33,699,700],{"class":43}," stdio",[33,702,465],{"class":146},[33,704,706,709,711],{"class":35,"line":705},26,[33,707,708],{"class":146},"    -parallel",[33,710,542],{"class":43},[33,712,465],{"class":146},[33,714,716,719,721],{"class":35,"line":715},27,[33,717,718],{"class":146},"    -serial",[33,720,542],{"class":43},[33,722,465],{"class":146},[33,724,726,729],{"class":35,"line":725},28,[33,727,728],{"class":146},"    -msg",[33,730,731],{"class":43}," timestamp=on\n",[12,733,734],{},"保存后给脚本执行权限：",[23,736,738],{"className":25,"code":737,"language":27,"meta":28,"style":28},"sudo chmod +x run.sh\n",[30,739,740],{"__ignoreMap":28},[33,741,742,744,747,750],{"class":35,"line":36},[33,743,40],{"class":39},[33,745,746],{"class":43}," chmod",[33,748,749],{"class":43}," +x",[33,751,752],{"class":43}," run.sh\n",[16,754,755],{"id":755},"启动虚拟机",[12,757,758],{},"确保当前目录下有以下文件：",[760,761,762,766,771,777],"ul",{},[416,763,764],{},[30,765,424],{},[416,767,768,770],{},[30,769,331],{},"（刚刚创建的虚拟硬盘）",[416,772,773,776],{},[30,774,775],{},"Rocky-9.4-x86_64-dvd.iso","（Rocky Linux 9 安装 ISO）",[416,778,779,782],{},[30,780,781],{},"OVMF-pure-efi64.fd","文件",[12,784,785],{},"然后在终端中运行脚本：",[23,787,789],{"className":25,"code":788,"language":27,"meta":28,"style":28},".\u002Frun.sh\n",[30,790,791],{"__ignoreMap":28},[33,792,793],{"class":35,"line":36},[33,794,788],{"class":39},[12,796,797],{},"此时，QEMU 应该会启动一个窗口，并加载 ISO 镜像进入安装界面。",[16,799,800],{"id":800},"安装系统",[12,802,803],{},"在虚拟机窗口中，你会看到 Linux 的安装界面。按照安装向导的步骤进行安装。安装完成后，你可能需要调整启动项，将硬盘作为启动介质（如果默认还是从 CD 启动）。",[12,805,806,809,810,812],{},[158,807,808],{},"建议："," 安装好系统后，关闭虚拟机，再修改 ",[30,811,424],{}," 将 ISO 镜像移除或改为可选启动设备，这样下次启动时就会直接从硬盘启动。",[12,814,815,816,819],{},"例如，将 ",[30,817,818],{},"-drive file=Rocky-9.5-x86_64-dvd.iso,media=cdrom"," 移除，或者更换为启动顺序参数。",[16,821,822],{"id":822},"其他操作",[824,825,827],"h4",{"id":826},"显卡直通谨慎不懂不要乱搞","显卡直通(谨慎,不懂不要乱搞)",[12,829,830],{},"此操作的意思是把显卡完全给虚拟机用,实体宿主机就没法用显卡了.",[413,832,833],{},[416,834,835],{},"主机和 IOMMU 配置",[12,837,838],{},[158,839,840],{},"(1) 启用 IOMMU（以 Intel 为例）",[12,842,843,844,847,848,851],{},"编辑 ",[30,845,846],{},"\u002Fetc\u002Fdefault\u002Fgrub","，在 ",[30,849,850],{},"GRUB_CMDLINE_LINUX_DEFAULT"," 中加入：",[23,853,855],{"className":25,"code":854,"language":27,"meta":28,"style":28},"intel_iommu=on iommu=pt\n",[30,856,857],{"__ignoreMap":28},[33,858,859,862,865,868,871,873],{"class":35,"line":36},[33,860,861],{"class":153},"intel_iommu",[33,863,864],{"class":231},"=",[33,866,867],{"class":43},"on",[33,869,870],{"class":153}," iommu",[33,872,864],{"class":231},[33,874,875],{"class":43},"pt\n",[12,877,878,879,882],{},"对于 AMD 主机则设置 ",[30,880,881],{},"amd_iommu=on","。",[12,884,885],{},[403,886],{"alt":28,"src":887},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2024\u002F03\u002F30\u002Fimage330.webp",[12,889,890],{},"更新 grub 后重启：",[23,892,894],{"className":25,"code":893,"language":27,"meta":28,"style":28},"sudo grub2-mkconfig -o \u002Fboot\u002Fgrub2\u002Fgrub.cfg   # CentOS\u002FFedora\u002FRocky 系列\n\n# 或者\nsudo update-grub   # Ubuntu\u002FDebian 系统\n",[30,895,896,912,916,921],{"__ignoreMap":28},[33,897,898,900,903,906,909],{"class":35,"line":36},[33,899,40],{"class":39},[33,901,902],{"class":43}," grub2-mkconfig",[33,904,905],{"class":146}," -o",[33,907,908],{"class":43}," \u002Fboot\u002Fgrub2\u002Fgrub.cfg",[33,910,911],{"class":221},"   # CentOS\u002FFedora\u002FRocky 系列\n",[33,913,914],{"class":35,"line":50},[33,915,216],{"emptyLinePlaceholder":215},[33,917,918],{"class":35,"line":225},[33,919,920],{"class":221},"# 或者\n",[33,922,923,925,928],{"class":35,"line":241},[33,924,40],{"class":39},[33,926,927],{"class":43}," update-grub",[33,929,930],{"class":221},"   # Ubuntu\u002FDebian 系统\n",[12,932,933],{},"可以在重启后用下面命令确认 IOMMU 是否启用：",[23,935,937],{"className":25,"code":936,"language":27,"meta":28,"style":28},"dmesg | grep -e DMAR -e IOMMU\n",[30,938,939],{"__ignoreMap":28},[33,940,941,944,946,948,951,954,956],{"class":35,"line":36},[33,942,943],{"class":39},"dmesg",[33,945,232],{"class":231},[33,947,235],{"class":39},[33,949,950],{"class":146}," -e",[33,952,953],{"class":43}," DMAR",[33,955,950],{"class":146},[33,957,958],{"class":43}," IOMMU\n",[12,960,961],{},"如果看到类似“DMAR: IOMMU enabled”之类的信息，就说明生效了。",[12,963,964,967,968,971],{},[158,965,966],{},"(2) 查找你的 NVIDIA 显卡设备 ID"," 使用 ",[30,969,970],{},"lspci -nn | grep NVIDIA"," 查找显卡，例如：",[23,973,975],{"className":25,"code":974,"language":27,"meta":28,"style":28},"tungchiahui@Dell-G15-5511:~\u002FDownloads$ lspci -nn | grep NVIDIA \n01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile \u002F M\nax-Q] [10de:2560] (rev a1) \n01:00.1 Audio device [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228\ne] (rev a1)\n",[30,976,977,998,1021,1035,1049],{"__ignoreMap":28},[33,978,979,982,985,988,990,992,995],{"class":35,"line":36},[33,980,981],{"class":39},"tungchiahui@Dell-G15-5511:~\u002FDownloads$",[33,983,984],{"class":43}," lspci",[33,986,987],{"class":146}," -nn",[33,989,232],{"class":231},[33,991,235],{"class":39},[33,993,994],{"class":43}," NVIDIA",[33,996,997],{"class":153}," \n",[33,999,1000,1003,1006,1009,1012,1015,1018],{"class":35,"line":50},[33,1001,1002],{"class":39},"01:00.0",[33,1004,1005],{"class":43}," VGA",[33,1007,1008],{"class":43}," compatible",[33,1010,1011],{"class":43}," controller",[33,1013,1014],{"class":153}," [0300]: NVIDIA Corporation GA106M [GeForce RTX ",[33,1016,1017],{"class":146},"3060",[33,1019,1020],{"class":153}," Mobile \u002F M\n",[33,1022,1023,1026,1029,1032],{"class":35,"line":225},[33,1024,1025],{"class":153},"ax-Q] [10de:2560] (",[33,1027,1028],{"class":39},"rev",[33,1030,1031],{"class":43}," a1",[33,1033,1034],{"class":153},") \n",[33,1036,1037,1040,1043,1046],{"class":35,"line":241},[33,1038,1039],{"class":39},"01:00.1",[33,1041,1042],{"class":43}," Audio",[33,1044,1045],{"class":43}," device",[33,1047,1048],{"class":153}," [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228\n",[33,1050,1051,1054,1056,1058],{"class":35,"line":246},[33,1052,1053],{"class":153},"e] (",[33,1055,1028],{"class":39},[33,1057,1031],{"class":43},[33,1059,1060],{"class":153},")\n",[12,1062,1063],{},"记下上面的 PCI 地址和设备 ID。",[12,1065,1066,1069,1070,1072,1073],{},[158,1067,1068],{},"显卡"," PCI 地址：",[30,1071,1002],{}," 设备 ID：",[30,1074,1075],{},"10de:2560",[12,1077,1078,1069,1081,1072,1083],{},[158,1079,1080],{},"显卡音频",[30,1082,1039],{},[30,1084,1085],{},"10de:228e",[12,1087,1088],{},[158,1089,1090],{},"(3) 绑定设备到 vfio 驱动",[12,1092,1093],{},"另一种方式是创建一个 modprobe 配置文件，让 vfio-pci 在加载时绑定这些设备。",[413,1095,1096],{},[416,1097,1098,1099,1102],{},"创建文件（例如 ",[30,1100,1101],{},"\u002Fetc\u002Fmodprobe.d\u002Fvfio.conf","）：",[23,1104,1106],{"className":25,"code":1105,"language":27,"meta":28,"style":28},"sudo vim \u002Fetc\u002Fmodprobe.d\u002Fvfio.conf\n",[30,1107,1108],{"__ignoreMap":28},[33,1109,1110,1112,1114],{"class":35,"line":36},[33,1111,40],{"class":39},[33,1113,437],{"class":43},[33,1115,1116],{"class":43}," \u002Fetc\u002Fmodprobe.d\u002Fvfio.conf\n",[413,1118,1119],{"start":50},[416,1120,1121],{},"在文件中写入：",[23,1123,1125],{"className":25,"code":1124,"language":27,"meta":28,"style":28},"options vfio-pci ids=10de:2560,10de:228e\n",[30,1126,1127],{"__ignoreMap":28},[33,1128,1129,1132,1135],{"class":35,"line":36},[33,1130,1131],{"class":39},"options",[33,1133,1134],{"class":43}," vfio-pci",[33,1136,1137],{"class":43}," ids=10de:2560,10de:228e\n",[413,1139,1140],{"start":225},[416,1141,1142],{},"保存文件后，更新 initramfs：",[23,1144,1146],{"className":25,"code":1145,"language":27,"meta":28,"style":28},"\n# debian系选这个\nsudo update-initramfs -u\n\n# 红帽系选这个\nsudo dracut --force\n",[30,1147,1148,1152,1157,1167,1171,1176],{"__ignoreMap":28},[33,1149,1150],{"class":35,"line":36},[33,1151,216],{"emptyLinePlaceholder":215},[33,1153,1154],{"class":35,"line":50},[33,1155,1156],{"class":221},"# debian系选这个\n",[33,1158,1159,1161,1164],{"class":35,"line":225},[33,1160,40],{"class":39},[33,1162,1163],{"class":43}," update-initramfs",[33,1165,1166],{"class":146}," -u\n",[33,1168,1169],{"class":35,"line":241},[33,1170,216],{"emptyLinePlaceholder":215},[33,1172,1173],{"class":35,"line":246},[33,1174,1175],{"class":221},"# 红帽系选这个\n",[33,1177,1178,1180,1183],{"class":35,"line":252},[33,1179,40],{"class":39},[33,1181,1182],{"class":43}," dracut",[33,1184,1185],{"class":146}," --force\n",[413,1187,1188,1191],{"start":241},[416,1189,1190],{},"重启系统。",[416,1192,1193],{},"检查设备绑定情况",[12,1195,1196],{},"重启后，你可以用下面命令检查设备是否已经被 vfio-pci 驱动接管：",[23,1198,1200],{"className":25,"code":1199,"language":27,"meta":28,"style":28},"lspci -nnk | grep -A3 \"10de:2560\"\n",[30,1201,1202],{"__ignoreMap":28},[33,1203,1204,1207,1210,1212,1214,1217],{"class":35,"line":36},[33,1205,1206],{"class":39},"lspci",[33,1208,1209],{"class":146}," -nnk",[33,1211,232],{"class":231},[33,1213,235],{"class":39},[33,1215,1216],{"class":146}," -A3",[33,1218,1219],{"class":43}," \"10de:2560\"\n",[12,1221,1222],{},"你应该能看到类似：",[23,1224,1228],{"className":1225,"code":1226,"language":1227,"meta":28,"style":28},"language-YAML shiki shiki-themes github-light github-dark","01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile \u002F Max-Q] [10de:2560]\n        Subsystem: ...\n        Kernel driver in use: vfio-pci\n","YAML",[30,1229,1230,1242,1252],{"__ignoreMap":28},[33,1231,1232,1236,1239],{"class":35,"line":36},[33,1233,1235],{"class":1234},"s9eBZ","01:00.0 VGA compatible controller [0300]",[33,1237,1238],{"class":153},": ",[33,1240,1241],{"class":43},"NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile \u002F Max-Q] [10de:2560]\n",[33,1243,1244,1247,1249],{"class":35,"line":50},[33,1245,1246],{"class":1234},"        Subsystem",[33,1248,1238],{"class":153},[33,1250,1251],{"class":146},"...\n",[33,1253,1254,1257,1259],{"class":35,"line":225},[33,1255,1256],{"class":1234},"        Kernel driver in use",[33,1258,1238],{"class":153},[33,1260,1261],{"class":43},"vfio-pci\n",[12,1263,1264],{},"同样用相似的命令检查音频设备（10de:228e）。",[23,1266,1268],{"className":25,"code":1267,"language":27,"meta":28,"style":28},"lspci -nnk | grep -A3 \"10de:228e\"\n",[30,1269,1270],{"__ignoreMap":28},[33,1271,1272,1274,1276,1278,1280,1282],{"class":35,"line":36},[33,1273,1206],{"class":39},[33,1275,1209],{"class":146},[33,1277,232],{"class":231},[33,1279,235],{"class":39},[33,1281,1216],{"class":146},[33,1283,1284],{"class":43}," \"10de:228e\"\n",[12,1286,1287,1288,1291],{},"如果看到 ",[30,1289,1290],{},"Kernel driver in use: vfio-pci","，说明绑定成功。",[12,1293,1294],{},[158,1295,1296],{},"(4) 启动选项",[12,1298,1299],{},"在run.sh里添加上下面两行",[23,1301,1303],{"className":25,"code":1302,"language":27,"meta":28,"style":28},"\n    # 直通 NVIDIA 显卡\n    -device vfio-pci,host=01:00.0,multifunction=on,x-vga=on \\\n    -device vfio-pci,host=01:00.1 \\\n",[30,1304,1305,1309,1314,1323],{"__ignoreMap":28},[33,1306,1307],{"class":35,"line":36},[33,1308,216],{"emptyLinePlaceholder":215},[33,1310,1311],{"class":35,"line":50},[33,1312,1313],{"class":221},"    # 直通 NVIDIA 显卡\n",[33,1315,1316,1318,1321],{"class":35,"line":225},[33,1317,525],{"class":39},[33,1319,1320],{"class":43}," vfio-pci,host=01:00.0,multifunction=on,x-vga=on",[33,1322,465],{"class":146},[33,1324,1325,1327,1330],{"class":35,"line":241},[33,1326,525],{"class":146},[33,1328,1329],{"class":43}," vfio-pci,host=01:00.1",[33,1331,465],{"class":146},[1333,1334,1335],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":28,"searchDepth":50,"depth":50,"links":1337},[1338,1339,1340,1341,1342,1343,1344],{"id":18,"depth":225,"text":18},{"id":164,"depth":225,"text":165},{"id":297,"depth":225,"text":297},{"id":335,"depth":225,"text":336},{"id":755,"depth":225,"text":755},{"id":800,"depth":225,"text":800},{"id":822,"depth":225,"text":822},0,"0700","2024-03-30","2024-03-30-linux-jiao-cheng","\u002Fwiki\u002F2024-03-30-linux-jiao-cheng","Linux教程","md",false,{},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0700-qemu-kvm-xu-ni-ji",{"title":5,"description":14},"wiki\u002F2024-03-30-Linux教程\u002F0700-QEMU-KVM虚拟机","oE7VX04LSx5ro046YxIf9v8CiurvKTAwAGB62oALcAo",[1359,1365,1371,1377,1383,1389,1395,1397,1403,1408],{"path":1360,"stem":1361,"title":1362,"authors":1363,"date":1347,"chapterOrder":1364,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0100-fa-xing-ban-tui-jian","wiki\u002F2024-03-30-Linux教程\u002F0100-发行版推荐","发行版推荐",[7],"0100",{"path":1366,"stem":1367,"title":1368,"authors":1369,"date":1347,"chapterOrder":1370,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0200-linux-zhuang-ji-jiao-cheng","wiki\u002F2024-03-30-Linux教程\u002F0200-Linux装机教程","Linux装机教程",[7],"0200",{"path":1372,"stem":1373,"title":1374,"authors":1375,"date":1347,"chapterOrder":1376,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0300-an-zhuang-bi-bei-pei-zhi","wiki\u002F2024-03-30-Linux教程\u002F0300-安装必备配置","安装必备配置",[7],"0300",{"path":1378,"stem":1379,"title":1380,"authors":1381,"date":1347,"chapterOrder":1382,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0400-ming-ling-jiao-cheng-chang-qi-ji-lei","wiki\u002F2024-03-30-Linux教程\u002F0400-命令教程(长期积累)","命令教程(长期积累)",[7],"0400",{"path":1384,"stem":1385,"title":1386,"authors":1387,"date":1347,"chapterOrder":1388,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0500-ge-zhong-huan-jing-pei-zhi","wiki\u002F2024-03-30-Linux教程\u002F0500-各种环境配置","各种环境配置",[7],"0500",{"path":1390,"stem":1391,"title":1392,"authors":1393,"date":1347,"chapterOrder":1394,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0600-qi-ta-ke-xuan-pei-zhi","wiki\u002F2024-03-30-Linux教程\u002F0600-其他可选配置","其他可选配置",[7],"0600",{"path":1354,"stem":1356,"title":5,"authors":1396,"date":1347,"chapterOrder":1346,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},[7],{"path":1398,"stem":1399,"title":1400,"authors":1401,"date":1347,"chapterOrder":1402,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0800-tuo-zhan-gong-neng","wiki\u002F2024-03-30-Linux教程\u002F0800-拓展功能","拓展功能",[7],"0800",{"path":1404,"stem":1405,"title":822,"authors":1406,"date":1347,"chapterOrder":1407,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":1352},"\u002Fwiki\u002F2024-03-30-linux-jiao-cheng\u002F0900-qi-ta-cao-zuo","wiki\u002F2024-03-30-Linux教程\u002F0900-其他操作",[7],"0900",{"path":1349,"stem":1409,"title":1350,"authors":1410,"date":1347,"chapterOrder":1411,"chapterDepth":1345,"docKey":1348,"docRoot":1349,"docTitle":1350,"isWikiDoc":215,"isWikiIndex":215},"wiki\u002F2024-03-30-Linux教程\u002Findex",[7],null,[1413,1415,1418,1421],{"name":7,"image":1414},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":1416,"image":1417},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":1419,"image":1420},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":1422,"image":1423},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431905018]