Proxmox VE live iso镜像

本镜像支持无盘启动PVE,类似于PE,运行在RAM当中。开箱即用。

目前实现功能:

  • 自由调整RAMDISK大小
  • 支持PXE启动
  • 已经开启IOMMU,随时可直通硬件
  • 开机dhcp获取ip
  • 保存PVE集群数据、网络配置主机名以及密码
  • 可以在线升级系统,当然需要重启生效。

限制:

  • 无法保存数据,重启之后数据会消失。这个必须要有硬盘或者网络存储保存数据才行,后期会实现这个功能。使其和Nutanix系统iso类似。
  • 不支持内核升降级。
  • 因为要dhcp,所以需要手动设置网桥,之后虚拟机才能上网。这点,在保存网络数据后,就不用这样。
  • 不支持传统模式启动
  • 当物理机内存低于3G的时候,会从U盘挂载文件系统,所以不支持在线升级,修改U盘数据等。当内存大于3G,系统会完全从内存中启动,因此开机会多占1.2G左右的内存。

期望的功能增强

  • 目前数据保存在U盘,如果U盘故障,数据就会丢失,应该支持多种方式保存,比如iscsi,或者有其他定时备份。

更新日志:

2023.1.30:添加3个内核5.15 5.19 6.1供选择,支持保存PVE虚拟机数据。

2023.1.31:  加入了gnome桌面。https://www.bilibili.com/video/BV1o24y1z75u/

2023.2.5:  将gnome替换成kde,增加12代sriov,其他的kvmgt的gvt-g,增加了vgpu_unlock功能。添加了QQ,rustdesk应用程序。优化了分区格式,支持更多的录软件刻录ISO。https://www.bilibili.com/video/BV1884y1G7HA/

2023.2.16: 新增保存网络信息,保存主机名信息。可在grub上配置密码。删除GUI----v4版本

2023.3.1: 优化root的加载过程,现在支持在线U盘内容。当然修改后重启生效。-----v5版本

用法

将ISO刻录到U盘,或者无盘启动

1. 设置ramdisk大小

默认的ramdisk大小为RAM的一半,如果需要自定义,请在启动的时候,按e,添加tmpfssize=参数,如设置6G的ramdisk,添加tmpfssize=6G,如下图

2. 登录

没有设置root密码。进入终端 输入ip a或者在路由上查看dhcp ip,可以通过https://ip:8006访问,因为没有设置密码,所以用户名输入root,密码输入任意字符就可以登录到web。

3. 配置网络

先登录web页面,打开shell,安装ifupdown2,并且停用dhcp服务

apt update
apt install ifupdown2 -y
systemctl stop dhcpcd 

随后在web上配置好网桥,点击应用配置即可。

如何保存数据

保存pve数据

使用一个U盘,或者其他的硬盘,新建一个fat32的小分区,1G也可以。只是用于保存PVE的数据。不是虚拟机磁盘数据,虚拟机磁盘应该存放在永久存储比较好。

使用fdisk创建分区,后将类型改成11,随后格式化,注意这里的sda1需要改成自己的盘号

mkfs.fat -F 32 /dev/sda1

接着使用进行修改label。

fatlabel /dev/sda1 pvedata

重启机器之后,下次开机就能保存数据

保存网络数据-2023.2.13更新

在U盘上创建一个ext4格式的分区,大小300M足以。并且修改label为pvenet

e2label /dev/sdb3 pvenet

配置完成之后,挂载到一个目录,如/media

mount /dev/sdb3 /media

此时在live上配置好网络,将网络配置拷贝到pvenet分区

cp -r /etc/network/* /media

编辑grub文件,在linux行的最后,添加network=1

如下图

重启之后,会自动生效网络。

设置主机名信息-2023.2.16更新

在grub上,添加hostname=xxx   dn=xx.xxx

如果你的主机名为nas,dn为nass.com

那么就像下面一样设置

设置账户密码-2023.2.16更新

在grub的linux后面,添加password=xxxx,如下

注意,密码最好不要用特殊符号,最好是大小写字母。如果有特殊符号,脚本可能会出错

设置启动系统之后是图形界面还是命令行界面

在grub后面添加systemd.unit=multi-user.target

禁用驱动

在grub的linux行下添加

modprobe.blacklist=nouveau

iso下载地址

https://mirrors.apqa.cn/proxmox-edge/unofficialiso/Promxox-VE-Live/

Ventoy启动

如果要将Live数据分区和Ventoy共存,请在写入Ventoy的时候,勾选【在磁盘最后保留一段空间】。

使用Ventoy启动,会无法直接启动live,会报错[mount proxmoxdisk failed]

此时,请保持在根目录,输入命令

sh ventoy/ventoy_loop.sh

此时PVE的iso应该会加载成loop,于是再按键盘的ctrl+d 键重新进行启动。会进入PVE live

原理

将装好pve的rootfs打包成squashfs。

修改默认的init脚本,使其不寻找root,而是执行自定义的脚本,将squashfs用overlay方式挂载到/root,再由init脚本进行switch_root。

将pve的rootfs,initrd和vmlinuz替换iso中的文件。再删除掉一些不必要的文件。

/scripts/local文件内容如下


local_mount_root()
{
#加载overlay模块
insmod /overlay.ko
#创建临时挂载点
mkdir /mnt
mount -nt proc proc /proc
#如果识别到pxe启动的proxmox.iso,则将这个iso挂载。如果是本地启动,则将Lable为PVE的盘挂载。
if [ -f /proxmox.iso ];then
mount -t iso9660 -o loop,ro /proxmox.iso /mnt;
else
mount -t iso9660 -o loop,ro $(blkid  -L PVE) /mnt
fi
#判断是否有tmpfssize,如果有则设置tmpfssize
if [ ! -n "$tmpfssize" ];then
mount -t tmpfs tmpfs /mnt/.workdir
else
mount -t tmpfs -o size=$tmpfssize tmpfs /mnt/.workdir
fi
#创建overlay挂载
mkdir /mnt/.workdir/upper
mkdir /mnt/.workdir/work
mount -t squashfs -o ro,loop "/mnt/pve-base.squashfs" /mnt/.base
mount -t overlay -o lowerdir=/mnt/.base,upperdir=/mnt/.workdir/upper,workdir=/mnt/.workdir/work  none /root
mount -t devtmpfs devtmpfs /root/dev
}

 

 

 

 

版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/2192.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
分享
二维码
海报
Proxmox VE live iso镜像
本镜像支持无盘启动PVE,类似于PE,运行在RAM当中。开箱即用。 目前实现功能: 自由调整RAMDISK大小 支持PXE启动 已经开启IOMMU,随时可直通硬件 开机dhcp获……
<<上一篇
下一篇>>
文章目录
关闭
目 录