折腾 PVE 系统过程中的一些记录
导入镜像到 lvm
qm importdisk 104 istoreos-24.10.2-2025092610-x86-64-squashfs-combined-efi.img local-lvmweb 管理界面进不去,怎么修改虚拟机的配置
在 /etc/pve/qemu-server/ 目录下,有对应的虚拟机配置文件,可以直接编辑这些文件
root@pve:~# ls /etc/pve/qemu-server/101.conf 103.conf
root@pve:~# cat /etc/pve/qemu-server/103.confboot: order=scsi0;net0cores: 4cpu: hostcpuunits: 1025hostpci0: 0000:02:00.0hostpci1: 0000:03:00.0hostpci2: 0000:04:00.0machine: q35memory: 1024meta: creation-qemu=6.1.0,ctime=1650336443name: iKuainet0: virtio=5A:9F:73:43:6E:79,bridge=vmbr0,firewall=1numa: 0onboot: 1ostype: l26scsi0: local-lvm:vm-103-disk-0,size=1G,ssd=1scsihw: virtio-scsi-pcismbios1: uuid=700abdb0-b87b-490b-9942-5b313fe3b5eesockets: 1startup: order=1,down=30vmgenid: 1bfbc33f-8f42-4723-ad79-9e9733857be6开启硬件直通
开启 iommu
修改 vim /etc/default/grub
# GRUB_CMDLINE_LINUX_DEFAULT="quiet" # 默认GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt" # amd 用这个# GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" # intel 用这个该命令具体的含义,chat-gpt 解释如下
在给Linux内核启动参数中,“quiet”表示在启动过程中不显示冗长的输出信息,而”amd_iommu=on”表示启用AMD处理器上的IOMMU(Input-Output Memory Management Unit)功能。 “iommu=pt”是一种IOMMU模式的参数设置。IOMMU是一种硬件功能,它允许系统在处理输入输出(I/O)操作时对内存进行映射和保护。“iommu=pt”表示将IOMMU设置为”Pass-Through”(PT)模式,也称为”identity mapping”。在PT模式下,IOMMU不执行内存地址转换,而是直接将设备的物理地址映射到相应的物理内存地址,以提供更低的延迟和更高的性能。
总而言之,“quiet amd_iommu=on iommu=pt”是一组启动参数,用于在Linux系统中启用AMD处理器上的IOMMU功能,并将其设置为”Pass-Through”模式,以提供更好的性能和较低的延迟。
修改完后,更新 update-grub
验证是否开启 iommu
dmesg | grep iommu
如果出现 pci 0000:00:01.0: Adding to iommu group x 的输出表示成功
root@pve:~# dmesg | grep iommu[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.2.16-3-pve root=/dev/mapper/pve-root ro quiet amd_iommu=on[ 0.026281] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.2.16-3-pve root=/dev/mapper/pve-root ro quiet amd_iommu=on[ 0.581715] iommu: Default domain type: Translated[ 0.581715] iommu: DMA domain TLB invalidation policy: lazy mode[ 0.600753] pci 0000:00:01.0: Adding to iommu group 0[ 0.600764] pci 0000:00:01.1: Adding to iommu group 1[ 0.600773] pci 0000:00:01.3: Adding to iommu group 2[ 0.600780] pci 0000:00:02.0: Adding to iommu group 3[ 0.600788] pci 0000:00:03.0: Adding to iommu group 4[ 0.600796] pci 0000:00:04.0: Adding to iommu group 5[ 0.600803] pci 0000:00:05.0: Adding to iommu group 6[ 0.600813] pci 0000:00:07.0: Adding to iommu group 7[ 0.600821] pci 0000:00:07.1: Adding to iommu group 8[ 0.600832] pci 0000:00:08.0: Adding to iommu group 9[ 0.600841] pci 0000:00:08.1: Adding to iommu group 10[ 0.600850] pci 0000:00:14.0: Adding to iommu group 11[ 0.600855] pci 0000:00:14.3: Adding to iommu group 11[ 0.600877] pci 0000:00:18.0: Adding to iommu group 12[ 0.600883] pci 0000:00:18.1: Adding to iommu group 12[ 0.600889] pci 0000:00:18.2: Adding to iommu group 12[ 0.600894] pci 0000:00:18.3: Adding to iommu group 12[ 0.600900] pci 0000:00:18.4: Adding to iommu group 12[ 0.600905] pci 0000:00:18.5: Adding to iommu group 12[ 0.600910] pci 0000:00:18.6: Adding to iommu group 12[ 0.600916] pci 0000:00:18.7: Adding to iommu group 12[ 0.600929] pci 0000:01:00.0: Adding to iommu group 13[ 0.600950] pci 0000:03:00.0: Adding to iommu group 14[ 0.600964] pci 0000:03:00.1: Adding to iommu group 14[ 0.600978] pci 0000:03:00.2: Adding to iommu group 14[ 0.600982] pci 0000:20:00.0: Adding to iommu group 14[ 0.600985] pci 0000:20:01.0: Adding to iommu group 14[ 0.600989] pci 0000:20:04.0: Adding to iommu group 14[ 0.600995] pci 0000:22:00.0: Adding to iommu group 14[ 0.601001] pci 0000:25:00.0: Adding to iommu group 14[ 0.601009] pci 0000:26:00.0: Adding to iommu group 15[ 0.601022] pci 0000:27:00.0: Adding to iommu group 16[ 0.601033] pci 0000:27:00.1: Adding to iommu group 17[ 0.601045] pci 0000:27:00.3: Adding to iommu group 18[ 0.601056] pci 0000:27:00.4: Adding to iommu group 19[ 0.603983] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).通过 lspci 查看 pci 信息
root@pve:~# lspci00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 000:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 100:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 200:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 300:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 400:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 500:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 600:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 701:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/SN750 / PC SN720 NVMe SSD03:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 xHCI Compliant Host Controller (rev 01)03:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset SATA Controller (rev 01)03:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Bridge (rev 01)20:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port (rev 01)20:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port (rev 01)20:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset PCIe Port (rev 01)22:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)25:00.0 Non-Volatile memory controller: Micron/Crucial Technology P5 NVMe PCIe SSD[SlashP5]26:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function27:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP27:00.1 Encryption controller: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP27:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller27:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller在输出中,查找与NVMe设备相关的条目。通常,NVMe设备的描述中会包含关键词”NVMe”、“Non-Volatile”或”Storage”,可以用于快速定位
以上信息输出看着还是比较模糊,通过 ls -la /sys/dev/block/|grep -v loop |grep -v dm 查看硬盘所属控制器
ls -la /sys/dev/block/|grep -v loop |grep -v dmroot@pve:~# ls -la /sys/dev/block/|grep -v loop |grep -v dmtotal 0drwxr-xr-x 2 root root 0 Jun 8 22:45 .drwxr-xr-x 4 root root 0 Jun 8 22:45 ..lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:0 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/nvme/nvme0/nvme0n1lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p1lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:2 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p2lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:3 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/nvme/nvme0/nvme0n1/nvme0n1p3lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:4 -> ../../devices/pci0000:00/0000:00:01.3/0000:03:00.2/0000:20:04.0/0000:25:00.0/nvme/nvme1/nvme1n1lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:5 -> ../../devices/pci0000:00/0000:00:01.3/0000:03:00.2/0000:20:04.0/0000:25:00.0/nvme/nvme1/nvme1n1/nvme1n1p1lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:6 -> ../../devices/pci0000:00/0000:00:01.3/0000:03:00.2/0000:20:04.0/0000:25:00.0/nvme/nvme1/nvme1n1/nvme1n1p2lrwxrwxrwx 1 root root 0 Jun 8 22:45 259:7 -> ../../devices/pci0000:00/0000:00:01.3/0000:03:00.2/0000:20:04.0/0000:25:00.0/nvme/nvme1/nvme1n1/nvme1n1p3
../../devices/pci0000:00/0000:00:01.3/0000:03:00.2/0000:20:04.0/0000:25:00.0/nvme/nvme1/nvme1n1是一个设备文件路径,它描述了一个NVMe硬盘在Linux系统中的位置。 让我们逐级解释该路径:
../../devices: 这表示当前位置位于设备树中的devices目录的上两级目录。这是一个相对路径,用于指示设备所在的位置。pci0000:00: 这是PCI总线的顶级目录。0000:00:01.3: 这是PCI设备的地址,表示第一个PCI域(domain)的第一个总线(bus)的第一个设备(device)的第三个功能(function)。PCI设备地址通常由多个字段组成,用冒号分隔。0000:03:00.2: 这是上述设备的子设备地址,表示该设备的第二个子设备的地址。0000:20:04.0: 这是上述子设备的子设备地址,表示该子设备的第一个子设备的地址。0000:25:00.0: 这是上述子设备的子设备地址,表示该子设备的第一个子设备的地址。nvme/nvme1: 这些是设备的名称,表示这是一个NVMe设备,并且其标识符为nvme1。nvme1n1: 这是NVMe设备的第一个分区或逻辑卷的名称。综上所述,该路径描述了一个位于PCI总线上的NVMe硬盘设备,并指定了其在设备树中的位置和名称。
如果不知道pve所在的硬盘。可以使用命令 lsblk 查看,有pve-root的,便是pve所在的硬盘
root@pve:~# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSnvme0n1 259:0 0 465.8G 0 disk├─nvme0n1p1 259:1 0 1007K 0 part├─nvme0n1p2 259:2 0 1G 0 part /boot/efi└─nvme0n1p3 259:3 0 464.8G 0 part ├─pve-swap 253:0 0 8G 0 lvm [SWAP] ├─pve-root 253:1 0 96G 0 lvm / ├─pve-data_tmeta 253:2 0 3.4G 0 lvm │ └─pve-data-tpool 253:4 0 337.9G 0 lvm │ ├─pve-data 253:5 0 337.9G 1 lvm │ ├─pve-vm--100--disk--0 253:6 0 4M 0 lvm │ └─pve-vm--100--disk--1 253:7 0 300G 0 lvm └─pve-data_tdata 253:3 0 337.9G 0 lvm └─pve-data-tpool 253:4 0 337.9G 0 lvm ├─pve-data 253:5 0 337.9G 1 lvm ├─pve-vm--100--disk--0 253:6 0 4M 0 lvm └─pve-vm--100--disk--1 253:7 0 300G 0 lvmnvme1n1 259:4 0 931.5G 0 disk├─nvme1n1p1 259:5 0 2.4G 0 part├─nvme1n1p2 259:6 0 2G 0 part└─nvme1n1p3 259:7 0 926.9G 0 part硬盘直通时,勾选 All Functions 和 PCI-EXPRESS

RDM直通

qm set 100 —scsi1 /dev/disk/by-id/nvme-CT1000P5SSD8_21042CC69BA9
100 是vmid, scsi1 是硬盘编号

📎 参考文章
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













