Proxmox全称Proxmox Virtual Environment简称PVE是基于Debian的虚拟机平台。以利用它安装任何你想要的系统,如:Win系统、linux系统(黑群晖、centos、ubuntu等)、软路由(LEDE、OpenWRT、ROS、高恪、爱快、等),而且是开源永久免费,要求硬件配置低,系统运行稳定等特点。

一、安装前准备

1、Proxmox 几乎可以在所有x86硬件上运行,需要准备一台可以开机的PC。

2、一个大于1G的U盘。

3、软碟通UltraISO软件。

4、到Proxmox官网https://pve.proxmox.com/wiki/Downloads下载最新版的PVE。

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu


5、下载后用ultraiso打开下载的ISO文件,菜单-启动-写入硬盘映像。

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_02


6、驱动器选择U盘盘符,映像文件选择下载的PVE安装文件,写入方式选择RAW,最后点写入开始写盘。

pve虚拟机开启虚拟化 pve虚拟机启动顺序_linux_03

7、写入U盘后关闭ultraiso,拔下U盘插到要安装PVE的PC上。开始设置启动顺序选择U盘启动。

二、PVE的安装

1、U盘启动后进入安装界面选择install Proxmox VE

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_04


2、出现安装协议,同意协议,选择“I agree”

pve虚拟机开启虚拟化 pve虚拟机启动顺序_重启_05


4、选择安装的硬盘

pve虚拟机开启虚拟化 pve虚拟机启动顺序_重启_06


5、国家、地区和键盘的选择

随后,输入服务器的国家china、选择区域和键盘布局,然后再次单击“下一步”。

pve虚拟机开启虚拟化 pve虚拟机启动顺序_pve虚拟机开启虚拟化_07


6、设置root登陆密码和邮箱

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_08


7、分配IP、掩码、网关

Hostname:主机名,我这里写pve.com

IP Address:IP地址,默认分配的,也可以自己设定

Netmask:子网掩码,写255.255.255.0

Getway:网关,默认,也可以自己设定

DNS Server:DNS服务器,默认,也可以自己设定

pve虚拟机开启虚拟化 pve虚拟机启动顺序_重启_09


8、点Next继续,确认输入无误后点Install安装

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_10


9、安装

根据PC性能,几分种便完成。

pve虚拟机开启虚拟化 pve虚拟机启动顺序_pve虚拟机开启虚拟化_11


10、重启

重启前请拔掉U盘,点reboot

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_12


11、重启后自动默认选择第一项

pve虚拟机开启虚拟化 pve虚拟机启动顺序_上传_13

12、最后进入PVE的登录界面,PVE的安装全部完成

打开控制端浏览器地址栏输入设定的IP地址和端口(https://192.168.1.250:8006)

pve虚拟机开启虚拟化 pve虚拟机启动顺序_ubuntu_14


三、PVE配置

安装后即可进行基本设置

删除订阅通知
通过 SSH 连接到 Proxmox 机器或通过 PVE Web 界面使用控制台,输入以下命令,然后清除浏览器缓存:
sed -i.bak “s/data.status !== ‘Active’/false/g” /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
systemctl restart pveproxy重启网页服务

更改软件源
将/etc/apt/sources.list.d/pve-enterprise.list 文件内的唯一一条记录注释掉:
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise
wget -q -O- ‘http://download.proxmox.com/debian/pve/dists/stretch/proxmox-ve-release-5.x.gpg’ | apt-key add -
echo “deb http://download.proxmox.com/debian/pve stretch pve-no-subscription” > /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt dist-upgrade
国内源:
echo “deb https://mirrors.ustc.edu.cn/proxmox/debian/pve stretch pve-no-subscription” > /etc/apt/sources.list.d/pve-no-subscription.list

2、常用的设置几命令
●磁盘映射
添加新硬盘
装好硬盘启动后查看下硬盘的名称
ls /dev/sd* 查看硬盘及硬盘分区(SATA硬盘)
也可以在节点-磁盘中查看
如果硬盘不带 SD1/SD2/SD*3 类数字表示未分区,使用以下命令进行分区;
fdisk /dev/sdb 给sdb分区
输入 n 新建分区,输入 p 建立主分区,输入 1 创建一个分区
分区的扇区结束位置,默认,直接回车,w保存,到此就分区完成了,输入 p 查看一下
Select (default p): p
Partition number (1-4, default 1): (分几个区 直接按下 enter)
First sector (2048-167772159, default 2048): (直接按下 enter)
Last sector, +sectors or +size {K,M,G} (2048-967772159, default 967772159): (直接按下 enter)
Command (m for help): w 注保存并退出 fdisk 工具
输入m后字母对应表
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 注:这是删除一个分区的动作;
l list known partition types 注:l 是列出分区类型,以供我们设置相应分区的类型;
m print this menu 注:m 是列出帮助信息;
n add a new partition 注:添加一个分区;
o create a new empty DOS partition table
p print the partition table 注:p 列出分区表;
q quit without saving changes 注:不保存退出;
s create a new empty Sun disklabel
t change a partition’s system id 注:t 改变分区类型;
u change display/entry units
v verify the partition table
w write table to disk and exit 注:把分区表写入硬盘并退出;
x extra functionality (experts only) 注:扩展应用,专家功能;

如果已存在分区,可直接使用 mkfs -t ext4 /dev/sd1 进行格式化分区;式化好了!之后我们要挂载到 pve 上面,先新建一个挂载目录 mkdir -p /mnt/sd1输入后无任何提示已执行成功,然后把硬盘挂载信息写入/etc/fstab;
echo /dev/sd1 /mnt/sd1 ext4 defaults 1 2 >> /etc/fstab
无提示表示已挂载成功;
PVE 数据中心,储存,点击添加目录,全部勾选,点击添加后,就可以看到了;
1、创建分区
先查看是否有未分区的硬盘存在
在 shell 中输入 mkdir /mnt/sda 创建 sda 文件夹用来给磁盘挂载
输入 mount /dev/sda1 /mnt/sda 进行挂载

●开启硬件直通
在 shell 里输入 nano /etc/default/grub
找到:GRUB_CMDLINE_LINUX_DEFAULT=“quiet”
修改为:GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on”
如果是 AMD cpu
修改为:GRUB_CMDLINE_LINUX_DEFAULT=“quiet amd_iommu=on”
保存退出后输入 update-grub

●移除 LVM-Thin,并将空间并入 local 中
释放 LVM-Thin 对应空间 pve/data
Shell 中输入代码:

lvremove pve/data

扩展 local 对应空间 pve/root
Shell 输入代码:

lvextend -l +100%FREE -r pve/root

手动删除左列显示的 LVM-Thin
选中 “数据中心”
点选中间列的 “存储”
删除 “LVM-Thin”
编辑 “local”,在 “内容” 中增加原本 LVM-Thin 的 “磁盘映像”、“容器”

●源加速,关闭订阅
1,关闭企业版更新源

mv /etc/apt/sources.list.d/pve-enterprise.list
 /etc/apt/sources.list.d/pve-enterprise.list.bak

2,更新 debian 国内加速及 pve 非订阅版更新源
nano /etc/apt/sources.list

#deb http://ftp.debian.org/debian buster main contrib
#deb http://ftp.debian.org/debian buster-updates main contrib

security updates

#deb http://security.debian.org buster/updates main contrib

debian aliyun source

deb https://mirrors.aliyun.com/debian buster main contrib non-free
deb https://mirrors.aliyun.com/debian buster-updates main contrib non-free
deb https://mirrors.aliyun.com/debian-security buster/updates main contrib non-free

proxmox source

#deb http://download.proxmox.com/debian/pve buster pve-no-subscription
#deb https://mirrors.ustc.edu.cn/proxmox/debian/pve buster pve-no-subscription
deb http://download.proxmox.wiki/debian/pve buster pve-no-subscription
●关闭订阅提醒

sed -i.bak “s/data.status !== ‘Active’/false/g” /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

●软路由 img 文件转换

chmod +x img2kvm ./img2kvm <img_name> <vm_id> vm-<vm_id>-disk-1
 [storage]

●把镜像转成虚拟磁盘并导入到虚拟机
方法一
使用WinSCP把解压出来的synoboot.img上传到根目录
img磁盘转换,选择Shell,输入

qm importdisk 101 /synoboot.img local-lvm

会看到vm-101-disk-0正在创建,101是虚拟机编号,synoboot.img是刚才上传的引导镜像

方法二
查看上传镜像的目录:点击网页下端的任务选项卡 > 双击最新的“数据拷贝”任务 > “target file”后面就是刚刚上传的镜像文件完整目录:

target file: /var/lib/vz/template/iso/syboboot.img

把镜像转成虚拟磁盘并导入到虚拟机:选择“pve”节点 > shell > 输入以下命令并回车:

qm importdisk 103 /var/lib/vz/template/iso/syboboot.img local-lvm

shell会显示vm-103-disk-0虚拟磁盘创建的进度,最后显示‘Successfully imported disk as 'unused0:local-lvm:vm-103-disk-0’就是添加成功了。

qm importdisk是PVE导入磁盘到虚拟机的工具,后面的参数‘103’是DSM虚拟机的编号,‘/var/lib/vz/template/iso/syboboot.img’是刚才上传群晖引导镜像的完整目录,‘local-lvm’是PVE储存虚拟磁盘的存储空间。

导入成功后在虚拟机的“硬件”选项卡就能看到一个“未使用的磁盘0”。

apt-get update为升级为最新的版本

apt-get install lshw 安装磁盘直通的工具

      ls –l /dev/disk/by-id/查看所有硬盘的信息(包含硬盘id)

      qm set 101 –sata1 /dev/disk/by-id/硬盘id  为直通硬盘的命令

这里讲一下磁盘ID怎么找,你必需选择的是整个硬盘(物理硬盘)而不是分区,比如sda、sdb、sdc对应的id,而不是(sda1、sda2…)

比如:qm set 100 -sata1 /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA1F8YX4