PVE 常用命令

作者1124周前 (03-15)PVE27

pve换源脚本:

wget http://share.geekxw.top/yuan.sh -O yuan.sh && chmod +x yuan.sh && ./yuan.sh

更新源:

apt update

建立PVE虚拟机,导入准备好的系统镜像,需要重启虚拟机

qm importdisk 101 /var/lib/vz/template/iso/xx.img local-lvm

其中101是虚拟机编号,/var/lib/vz/template/iso/xx.img是旁路由上传到pve的路径

确认错误信息的上下文和来源

task error: vm quit/powerdown failed - got timeout

检查虚拟机(VM)的状态和日志

/var/log/pve/tasks/z-vm-101-shutdown.log(假设VM ID为101),以获取更多错误信息。

强制停止虚拟机

# 查找虚拟机的进程ID
ps -ef | grep "/usr/bin/kvm -id 101" | grep -v grep
# 假设找到的进程ID为20582,则执行以下命令强制停止虚拟机
kill 20582
# 或者使用更安全的kill命令选项,如kill -9 20582(但请谨慎使用,因为这可能会导致数据丢失)

列出当前PVE平台中所有虚拟机

#qm list 
#qm snapshot <虚拟机编号> <快照文件名>   //给指定虚拟机生成快照
#qm importdisk <虚拟机编号> <img\vmdk格式文件> local-lvm  //导入系统文件到指定虚拟机
#qm shutdown <虚拟机编号>  //关闭指定虚拟机
#qm start <虚拟机编号>   启动虚拟机编号

scp命令将虚拟机系统镜像文件复制进PVE平台的root目录

$scp openwrt21.02.img.gz [email protected]:/root
$ssh [email protected]   //进入PVE平台命令行
$gunzip openwrt21.02.img.gz     //解压镜像文件为img格式

关闭虚拟机,再启动虚拟机


#qm shutdown 100   关闭100编号的PVE虚拟机
#qm start 100      //启动100编号的PVE虚拟机

修改PVE虚拟机管理IP,例如lan口IP设置为192.168.5.1 重启网络服务,使管理IP生效

#vi /etc/config/network    
#/etc/init.d/network restart

PVE是根据磁盘编号来识别硬盘的,访问硬盘首先要了解硬盘所在路径或其UUID。使用命令

ls -al /dev/sd*
ls -al /dev/nvme*

/dev/sd*表示机械硬盘,用sd+字母+数字表示,字母表示硬盘序号,数字表示分区。例如/dev/sdb1表示第二块机械硬盘的第一个分区

/dev/nvme*...表示固态硬盘,用nvme数字+n数字+p数字表示,第一个数字代表硬盘序号,n后面的数字代表namespace插槽序号,p后面的数字表示partition分区序号。例如/dev/nvme0n1p2 表示固态硬盘0位于第1插槽的的第2分区

对照节点-磁盘界面可以看到:

/dev/sda是1T的HGST机械硬盘,它有/dev/sda1和/dev/sda2两个分区

/dev/nvme1n1 是1T的固态硬盘,它只有/dev/nvme1n1p1一个分区

/dev/nvme0n1 是512G的固态硬盘,它有p1,p2,p3三个分区

现在需要访问 /dev/sda 和 /dev/nvme1n1 这两块硬盘内的文件。

在Linux下一切都是文件,访问之前得先将其分区挂载到系统已有的目录下(注意挂载的是分区不是硬盘)

执行命令:

mount -t ext4 /dev/nvme1n1p1 /mnt
#-t表示指定分区的文件系统类型,如ext4, ntfs等
#/mnt 是pve系统下的目录

如果想挂载在一个新的目录下则需要先创建目录:

mkdir -p /mnt/ssd1T
#在/mnt目录下创建一个名为ssd1T的目录
#-p会检测是否已存在父级目录(parent),没有就创建一个

然后再挂载:

mount -t ext4 /dev/nvme1n1p1 /mnt/ssd1T
挂载/dev/sda 这块硬盘同理
mount -t ntfs-3g /dev/sda2 /mnt/hdd1T
#pve本身不支持ntfs格式,需要先安装ntfs-3g包

现在可以通过ls命令来查看磁盘中的目录和文件列表了:

ls /mnt/ssd1T
ls /mnt/hdd1T
也可以查看子目录下的文件:
ls -R /mnt/ssd1T
#-R表示tree,以目录树的方式浏览目录内容

不过对小白来说,PVE下命令行浏览文件始终不如图形界面直观,作为一个日常功能,

很想吐槽PVE这群UI工程师,都有WebGUI了,学学UNRAID,

磁盘那里加个挂载按钮和浏览按钮有那么难么,

点击“挂载”从系统目录中选择或创建一个目录不就好了。

pve设置IPv6

在 /etc/sysctl.conf文件当中添加如下信息:

net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.all.autoconf=1
net.ipv6.conf.default.autoconf=1
net.ipv6.conf.vmbr0.autoconf=1

然后:重启pve。