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