5.7 KiB
1. 下载openwrt镜像
-
选用中国区地址
2. 上传lxc模板到pve
2.1 如果直接下载的是rootfs.tar.gz文件直接上传即可
2.2 如果下载的为带rootfs的img.gz文件,则需要解压img文件
-
通过 ssh 工具将文件上传到pve服务器上
-
安装img文件解压工具
apt install squashfs-tools
-
解压 img文件,需要在img文件存储路径操作
unsquashfs openwrt-23.05.2-x86-legacy-generic-squashfs-rootfs.img
-
解压成功后会在当前目录生成
squashfs-root
文件夹 -
进入生成的文件夹内,打包解压出的内容到pve的lxc模板存储路径内
tar zcf /var/lib/vz/template/cache/OpenWRT-x86-64-generic-rootfs.tar.gz ./*
也可以将
/var/lib/vz/template/cache/
替换为其他的pve存储目录对应的路径,一般在/mnt/pve
下边
2.3 如果下载的文件为img.gz文件,则需要挂载打包处理
-
开启 nbd模块
modprobe nbd
-
挂载img文件到设备
qemu-nbd -c /dev/nbd0 -f raw OpenWRT-x86-64-generic-squashfs-combined.img
-
查看挂载的分区
lsblk -f /dev/nbd0
-
挂载带有squashfs的文件
mkdir /mnt/openwrt mount /dev/nbd0p2 /mnt/openwrt
-
进入挂载的openwrt目录,打包lxc模板
cd /mnt/openwrt tar -czvf /var/lib/vz/template/cache/istoreos.tar.gz *
-
模板打包完成后卸载挂载的文件与nbd设备
cd .. # 移动到openwrt文件夹的上一层 umount /mnt/openwrt qemu-nbd -d /dev/nbd0
3. 创建pve lxc容器
pct create 102 ssd1t:vztmpl/OpenWRT-x86-64-generic-rootfs.tar.gz --rootfs ssd1t:32 --ostype unmanaged --hostname openwrt --arch amd64 --cores 4 --memory 1024 --swap 0 -net0 bridge=vmbr0,name=eth0
-
pct create
创建命令 -
102
pve容器序列号,不要重复 -
ssd1t:vztmpl/OpenWRT-x86-64-generic-rootfs.tar.gz
:模板路径,前边ssd1t为pve存储的ID,一定要选中数据中心,然后再点右侧的存储 -
--rootfs
:指定模板未rootfs文件 -
ssd1t:32
:存储路径,ssd1t依然为存储的ID,代表将openwrt的虚拟磁盘存储在ssd1t的硬盘下,32为虚拟磁盘容量大小 -
--ostype unmanaged
:指定操作系统类型,暂时只能写unmanaged
-
--hostname openwrt
:主机名,随便取一个,我用openwrt -
--arch amd64
:虚拟机架构,我是x86的主机所以选择amd64
,如果不确定可以在网页端创建一个lxc容器然后查看架构 -
--cores 4
:cpu核心数,随意分配 -
--memory 1024
:内存大小,单位M
-
--swap 0
:swap分区大小,如果不需要设置为0 -
-net0 bridge=vmbr0,name=eth0
:网络参数,桥接pve的网卡,并将网卡名字设置为eth0
,在openwrt里可以直接用
5. 查看创建的openwrt容器
6. 启动openwrt
7. 登录openwrt
- 浏览器访问openwrt的lan接口的ip,首次进入root密码不需要数据,登录后会提示设置密码