Debian 11 使用 PVE7部署Linux虚拟机
宿主机支持嵌套虚拟化,又不喜欢lxc ct容器?那就孵Linux虚拟化耍耍吧~
安装PVE
虚拟化支持
首先得确定宿主机支持“嵌套虚拟化”,可以简单使用
apt -y install curl && curl -sL yabs.sh | bash -s -- -fi
输出配置信息后 ctrl+c
来取消性能测试,若是VM-x/AMD-V为 enable
就表示可以。否则,只能开CT容器,就不要再往下操作了,洗洗睡吧。
1.新建网络
自己选择一个方案:
- Debian 11 PVE7 添加网卡 (仅NAT IPV4)
- Debian 11 PVE7 添加网卡 (NAT IPV4+独立IPV6) 【旧方案】
- Debian 11 PVE7 添加网卡 (NAT IPV4+NAT IPV6)【新方案,适用于多种场景,包括但不限于:nat ipv4/nat ipv6/独立ipv6/nat ipv4+独立ipv6……】
2.创建虚拟机
- 常规:填写名称,底下勾选高级
- 操作系统:选择不使用任何介质,其它的看选择来
- 系统:无特别需要,直接默认
- 磁盘:磁盘大小填写需要的数值,不能超过宿主机的磁盘大小。如果不需要备份,先别着急取消勾选备份,后面用的到。带宽:看需要来限制,不需要就不用管
- cpu:看需要填写核心,和类别,其它的选择按需要来
- 内存:按需要填写数值,其它的默认
- 网络:这里的会自动选择之前创建好的虚拟网卡,需要注意的是一定要取消勾选防火墙。其它的默认就行
- 确认:简单看一下最后的配置信息,无误则选择完成。这里就不要勾选创建后启动了,因为接下来我们需要替换想要的镜像进去。
3.替换镜像
登录宿主机, 习惯性的开个screen窗口: screen -S wget
,没有则先安装一下: apt -y install screen
3.1 更换
cd
切换到 /var/lib/vz/images/
上面创建虚拟机生成的 编号
,比如100
选择一个镜像,比如debian11 。下拉到底部,选择 bullseye
,选择一个想要的日期版本,越底下版本越新。
选择一个nocloud
版本:因为它不需要密码,比如这里选择的是:/bullseye/20220911-1135/debian-11-nocloud-amd64-20220911-1135.qcow2
在当前目录下,查看生成的qcow2名称,复制一下。使用命令 rm -r 删除它,然后下载替换:
#wget -O 被替换的镜像名称 新镜像的下载链接
wget -O vm-100-disk-0.qcow2 https://cloud.debian.org/images/cloud/bullseye/20220911-1135/debian-11-nocloud-amd64-20220911-1135.qcow2
3.2 调整大小
接下来是增加硬盘大小,因为上面下载好的nocloud
版本镜像默认只有2G磁盘空间,也就是说后续如果要ddlinux,可能都会dd失败。
首先使用 qemu-img -v
命令,如果提示找不到命令,请移步 这篇文章(安装Qemu-img 那部分)
再习惯性的查看下镜像信息
#qemu-img info 镜像名
qemu-img info vm-100-disk-0.qcow2
然后增加大小,比如扩展到20G,那么+18G就行了
#qemu-img resiza 镜像名 +[数值]G
qemu-img resize vm-100-disk-0.qcow2 +18G
4.开机
之后就可以去pve web开机了,选择对应的虚拟机 选择控制台,选择start启动。
进入登录页面后输入用户名:root,不需要密码直接回车即可登录进去。
* 开机等几秒或两三分钟,若是一直卡住就停止虚拟机。然后到宿主机里使用命令 service pvedaemon restart
重启pve,接着刷新网页,重新开机,可以发现不再是卡住的状态了(原因未知,无法复现且仅第一次替换会出现)。
* 如果启动页面提示内核问题,请将“选项”中的“OS类型”设定为“Linux 2.4 Kenmel",并重启虚拟机使其生效,后续可以等dd系统后再选择回“Linux6.x..”或更高版本。
4.1 配置网络
如果不需要第5步里的dd linux,那么这里只需要再次选择一个方案,然后跳到左侧目录4.2中:
- Debian 11 PVE7 配置网络 实现NAT IPV4 (不含IPV6网络)
- Debian 11 PVE7 配置网络 实现NAT IPV4+独立IPV6 【旧方案】
- Debian 11 PVE7 配置网络 实现(NAT IPV4+NAT IPV6)【新方案,适用于多种场景,包括但不限于:nat ipv4/nat ipv6/独立ipv6/nat ipv4+独立ipv6……】
否则,接下来就需要简单配置网络,先 ip addr
查看默认的网卡名,一般是 ens18
然后直接 nano /etc/network/interfaces
编辑网卡配置文件。
#source-directory /run/network/interfaces.d
接着在其下方添加网卡配置,使用 ctrl+x
输入y
然后 回车
保存。
#192.168.1.100/24:ip地址/掩码位
#192.168.1.1:网关
#下面相关信息替换成自己的 再复制过去
auto ens18
iface ens18 inet static
address 192.168.1.100/24
gateway 192.168.1.1
4.2 添加DNS
再然后,还需要添加dns,因为上面选择的Debian11镜像貌似连 resolv.conf
配置文件都没有,也不用管,直接 nano /etc/resolv.conf
编辑它,然后填入合适的dns,比如:
nameserver 8.8.8.8
nameserver 1.1.1.1
具体看机器的网络,自行判断需要使用什么dns。然后同样使用 ctrl+x
输入y
然后 回车
保存。
最后,重启一下网卡 systemctl restart networking
4.3 测试
简单ping 一下ip地址或者域名都可以
#能通就可以了
ping 1.1.1.1
ping baidu.com
5.dd Linux
接下来要做的就是自己dd一遍了,毕竟那边的镜像没用过,虽然,它们也是官方提供的。
5.1 下载脚本
安装一下依赖 :apt-get install -y xz-utils openssl gawk file
,然后下载dd脚本
apy -y update && apt -y install wget && wget --no-check-certificate https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh
5.2 备份
然后?回到宿主机的ssh里,先习惯性的copy一份磁盘,防止dd失败到时候还得重新来过。
cp /var/lib/vz/images/100/vm-100-disk-0.qcow2 /var/lib/vz/images/100/vm-100-disk-0.qcow2.bak
5.3 网络重装
copy完成后,又到了刺激的环节了。直接到pve虚拟机控制台里运行脚本来 dd debian 11
#要特别注意的是,别去多此一举指定ip 网关和掩码,至于为什么,好奇的可以去尝试一下。
#-p后面指定root密码
bash InstallNet.sh -d 11 -v 64 -p 123456
再然后就没然后了,dd过程一般不会出错,如果有就多回车几次,依旧不行就截图记录一下,自己去找原因。
真不行可以 pve web-ui
那边的对应虚拟机选择停止,然后宿主机登录删除对应的磁盘,再将之前复制的磁盘再复制一份拿来用,然后回到 pve web-ui
开机,重新来过。
5.4 修改ssh端口
这个没啥好说的,总不能和宿主机抢22端口吧……使用 ctrl+x
输入y
然后 回车
保存。
#修改Port 22为想要的端口
nano /etc/ssh/sshd_config
5.5 重新配置网络
再次选择一个方案:
5.6 测试网络
简单ping 一下ip地址或者域名都可以
#能通就可以了
ping 1.1.1.1
ping baidu.com
碎碎念
至于开头说的“先别急着取消备份功能”,是为了替换镜像后,使用 qemu-img resiza
命令扩容,但开机后pve-webui那边依然显示一开始创建linux虚拟所填写的磁盘大小,所以强迫症可以通过后续取消勾选“备份”功能,来自动扫描识别修正扩容后的磁盘大小。