本帖最后由 vsamlee 于 2023-10-16 21:59 编辑
一 Lxc启用 因为使用 systemd(Ubuntu,Debian Bookworm+,...)的发行版将无法工作,需要启用 cgroup v2 要启用 cgroup v2,请将以下内容附加到您的 syslinux.conf 并在之后重新启动 路径-->主界面-->Syslinux-->unraid OS-->append initrd=/bzroot 后面添加 unraidcgroup2 修改后变成 append initrd=/bzroot unraidcgroup2 二 lxc容器目录结构及相关命令 (一) 目录结构 1 默认目录在/mnt/user/lxc,可以在设置中修改,我使用的默认,但是该目录缓存设置为“只在”,加速其运行。 2 当您用默认方式添加虚拟机时候,会有个cache文件夹,该文件夹存储的是拉取的rootfs镜像文件 3 其他目录是以您添加的虚拟机名称命名的目录,该目录内的结构如下 rootfs目录+config,虚拟机的配置在config中添加删减。rootfs目录内为该虚拟机的运行文件 不知道是什么样的,从默认服务器添加一个虚拟机熟悉一下就行了,(官方的openwrt只有几兆,下载运行非常快的) 如果您采用第三方的镜像,只要用第三方的镜像包解压后的文件替换rootf目录下所有文件即可。 4 默认拉取的包是“.tar.xz”,一般下载的第三方是“.tar.gz”。 (二) 相关命令 tar.gz文件解压 tar -zxvf /文件路径/文件名.tar.gz /解压后文件路径 三 openWRT安装。 (一) 准备阶段 自己编译或者找第三方下载后缀名为-rootfs.tar.gz的openwrt镜像文件 (二) 镜像安装(小白做法) 1 LXC页下载默认官方openWRT镜像 2 进入/mnt/user/lxc/虚拟机名/rootfs,删除所有文件 3 把-rootfs.tar.gz的openwrt镜像文件解压到/rootfs目录 tar -zxvf /文件路径/文件名 /mnt/user/lxc/虚拟机名/rootfs 4 进入“/mnt/user/lxc/虚拟机名/”修改config文件为如下
# Template used to create this container: /usr/share/lxc/templates/lxc-download # Parameters passed to the template: --dist openwrt --release 22.03 --arch amd64 # Template script checksum (SHA-1): 7067b9ffb52b0c1514c5e6773b18b8ed134072b5 # For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers: #lxc.include = /usr/share/lxc/config/nesting.conf # (Be aware this has security implications)
# 默认分发配置 lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64
# 自定义分发配置,建议不要动。 lxc.include = /etc/lxc/default.conf lxc.include = /usr/share/lxc/config/userns.conf
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed lxc.mount.entry = /dev/net/tun dev/net/tun none rw,bind,create=file 0 0 lxc.mount.entry = /dev/ppp dev/ppp none rw,bind,optional,create=file 0 0 lxc.cgroup.devices.allow = a lxc.cgroup2.devices.allow = a
# 容器特定配置 lxc.rootfs.path = dir:/mnt/user/lxc/容器名称/rootfs #lxc虚拟机系统文件路径 lxc.uts.name = SamOS
# 配置文件夹映射,主要是把配置文件映射出来好修改。(需要把容器的etc配置文件先拷贝到主机文件夹内,容器内对应的文件夹内容删除)。 # lxc.mount.entry = 主机文件夹路径 /mnt/user/lxc/容器名称/rootfs/etc none bind 0 0 lxc.mount.entry = /mnt/user/Data/openwrt/etc /mnt/user/lxc/SamOS/rootfs/etc none bind 0 0
# 网络配置 # lxc.net.0.flags = up # lxc.net.0.type = veth #虚拟口“veth”,直通口“phys” # lxc.net.0.link = br0 #该处为虚拟口的名称,直通的填写主机显示网口的名称(这是我的主机管理网口,一定不要直通,但是帅小伙都会搞直通,然后帅帅的问为啥进不去)。 # lxc.net.0.name = eth0 #虚拟机中显示网口的名称。 # lxc.net.0.hwaddr=88:88:88:88:88:86 #虚拟mac地址,不填写会自动生成。建议自己弄一个好记的,这样也好配置。 # 下面是我的四个网口配置,头两个口是虚拟网口,后两个是直通网口。
lxc.net.0.flags = up lxc.net.0.type = veth lxc.net.0.link = br0 lxc.net.0.name = eth0 lxc.net.0.hwaddr=88:88:88:88:88:86
lxc.net.1.flags = up lxc.net.1.type = phys lxc.net.1.link = eth1 lxc.net.1.name = eth1 #lxc.net.1.hwaddr=88:88:88:88:88:88
lxc.net.2.flags = up lxc.net.2.type = phys lxc.net.2.link = eth2 lxc.net.2.name = eth2
lxc.net.3.flags = up lxc.net.3.type = phys lxc.net.3.link = eth3 lxc.net.3.name = eth3
# 是否开机启动。(开机启动为“1”,否则为“0”,帅小伙们都会填写其他) lxc.start.auto=1
如果该参数设置有错误,lxc面板页该虚拟机会消失。 另有其他参数,如指定cpu等等,在lxc官网思考。 四 附件Network参数 rootfs的路径/etc/config,直接打开复制粘贴(模板是eth3拨号) (一) 官方固件配置
config interface 'loopback' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' option device 'lo'
config device option name 'br-lan' option type 'bridge' list ports 'eth0'#(您的lan口) list ports 'eth1'#(您的lan口) list ports 'eth2'#(您的lan口)
config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.1'#(您的路由器地址) option netmask '255.255.255.0' option ip6assign '60'
config interface 'wan' option proto 'dhcp' option device 'eth3'#(您的wan口)
config interface 'wan6' option proto 'dhcpv6' option device 'eth3'#(您的wan口) option reqaddress 'try' option reqprefix 'auto'
(二) Lead固件配置
config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0'
config globals 'globals' option ula_prefix 'fd0c:a7ec:3a43::/48' option packet_steering '1'
config interface 'lan' option type 'bridge' option proto 'static' #(您的路由器地址)
option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' #(您的lan口)
option ifname 'eth0 eth1 eth2' option dns '114.114.114.114 8.8.4.4 8.8.8.8' option delegate '0'
config interface 'wan' option proto 'pppoe' #(拨号账号)
option username '****'
#(拨号密码)
option password '****' option ipv6 'auto' option keepalive '0' #(您的拨号wan口)
option ifname 'eth3' option delegate '0'
config interface 'wan6' option proto 'dhcpv6' #(您的拨号wan口)
option ifname 'eth3' option reqaddress 'try' option reqprefix 'auto'
unraid设置自动更新hosts,User Scripts中设置为每小时运行一次,“op容器名”根据自己的容器名称修改。 # 从第315行开始写入,315行可以根据自己的hosts修改。如果在lxc容器中已经etc文件夹已经映射,写入文件“/etc/hosts”路径需要改成映射后的实际路径比较好。 lxc-attach -n op容器名 -- sed -i '315,$d' /etc/hosts # hosts读取路径及写入路径,如果在lxc容器中已经etc文件夹已经映射,写入文件“/mnt/user/lxc/op容器名/rootfs/etc/hosts”路径需要改成映射后的实际路径比较好。 # 重启openwrt的dnsmasq lxc-attach -n op容器名 -- /etc/init.d/dnsmasq restart
通过以上折腾,用LXC安装linux系统,用虚拟机安装windows系统,可以让弱性能主机能做到最优资源分配,发挥最大功效,可以再战几年没有问题的了。 config文件配置好了后,升级或者更改其他版本把镜像解压进去替换就可以了,特别人性化啊。
切记,LXC目录的文件不要修改权限,否则又要重新来过。但是优点也很明显,其采用的是目录形式存储文件,安装其他linux镜像可以直接进去修改文件内容,或者传输文件,降低了小白的难度。 从上述情况来看,Pve的LXC安装openWRT应该也不需要钩子脚本,少了很多步骤,有兴趣的可以折腾后反馈一下。
我是从6.11.5开始入坑,运行了半个多月完全没有问题,很稳定,很方便。
以前的我猜测是没有启用启用 cgroup v2,且没有配置好,我是看了很多资料和帖子,折腾了两个星期才搞定的。默认不修改config文件是可以运行,最大问题是不能拨号。
高手步骤(一共5步,几分钟搞定) 1、LXC目录新建以虚拟机名命名的文件夹,且新建一个config文件(无缀名); 2、编辑config文件(config编辑好了后,在LXC页面就可以看见该虚拟机了); 3、把-rootfs.tar.gz的openwrt镜像文件解压到/rootfs目录; 4、修改编辑 rootfs路径/etc/config/network; 5、启动。
请不要胡乱输入以及粘贴、复制等方式灌水
如果胡乱灌水账户将会受到限制,具体限制形式:https://www.right.com.cn/forum/thread-8307840-1-1.html
另外账户捆绑手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|