找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 16408|回复: 161

(20231016修改)弱主机UNRAID打造AIO之路 (篇二 LXC容器安装openwrt)

 火.. [复制链接]
本帖最后由 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”路径需要改成映射后的实际路径比较好。
lxc-attach -n op容器名 -- curl https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts >> /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、启动。


本帖最后由 Concises 于 2023-6-14 14:24 编辑

原来unraid的lxc插件之前说很多系统启动不了是因为cgroup v2吗
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 vsamlee 于 2023-6-14 14:27 编辑
Concises 发表于 2023-6-14 14:23
unraid的lxc插件之前不是有缺陷那 现在系统都能用了吧

以前的我不知道,我是从6.11.5开始入坑,完全没有问题了,很稳定,很方便。
以前的我觉得是使用者没有启用启用 cgroup v2,且没有配置好,我是看了很多资料,折腾了两个星期才搞定的。默认不修改config文件是可以运行,最大问题是不能拨号。
回复

使用道具 举报

vsamlee 发表于 2023-6-14 14:24
完全没有问题了,很稳定,很方便。

好的 找机会试一下 心动很久了
回复

使用道具 举报

 楼主| | 显示全部楼层
Concises 发表于 2023-6-14 14:26
好的 找机会试一下 心动很久了

我就是用了pve后感觉lxc非常棒,所以才下定决心折腾这个的。
回复

使用道具 举报

好的 找机会试一下 心动很久了
回复

使用道具 举报

围观思考一下
回复

使用道具 举报

思考思考
回复

使用道具 举报

我之前也是打算lxc搞得,装完了发现连不上网,估计是少什么东西
回复

使用道具 举报

看下是啥玩意
回复

使用道具 举报

看看怎么配置
回复

使用道具 举报

好东西,思考一下
回复

使用道具 举报

感谢分享
回复

使用道具 举报

思考思考致敬
回复

使用道具 举报

感谢分享 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-22 17:43

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表