使用image builder定制指定rootfs大小openwrt镜像

使用image builder定制指定rootfs大小openwrt镜像

· json · rss
Subscribe:

About

之前一直在用别人编译好的镜像,也尝试了openwrt官方的OpenWrt Firmware Selector ,这东西没法生成指定rootfs大小的镜像,如果你需要一个超级精简的镜像可以使用这个官方的构建器,这玩意有时候会抽风,可能不是你的网问题,是这玩意真boom了(笑

准备工作

1.使用官方的指引进行环境配置:https://openwrt.org/docs/guide-user/additional-software/imagebuilder

我这里使用ubuntu 22.04,使用apt安装基础的编译工具

  sudo apt install build-essential libncurses-dev zlib1g-dev gawk git \
  gettext libssl-dev xsltproc rsync wget unzip python3 python3-distutils		

2. 下载官方的image builder:https://archive.openwrt.org/releases/23.05.4/targets/x86/64/openwrt-imagebuilder-23.05.4-x86-64.Linux-x86_64.tar.xz

解压它

  tar -xvf openwrt-imagebuilder*

3. 添加需要的包,如果你使用passwall这里需要dnsmasq-full,但注意这会与dnsmasq冲突需要列表后面添加-dnsmasq排除,这里额外添加了keepalived,wireguard-luci,ddns-script和中文界面。

官方源:

   base-files busybox ca-bundle dnsmasq-full dropbear e2fsprogs firewall4 fstools grub2-bios-setup kmod-button-hotplug kmod-nft-offload kmod-nft-tproxy iptables-nft iptables-mod-socket iptables-mod-tproxy libc libgcc libustream-mbedtls logd mkf2fs mtd netifd nftables odhcp6c odhcpd-ipv6only opkg partx-utils ppp ppp-mod-pppoe procd procd-seccomp procd-ujail uci uclient-fetch urandom-seed urngd kmod-amazon-ena kmod-amd-xgbe kmod-bnx2 kmod-e1000e kmod-e1000 kmod-forcedeth kmod-fs-vfat kmod-igb kmod-igc kmod-ixgbe kmod-r8169 kmod-tg3 luci ddns-scripts ddns-scripts-cloudflare ddns-scripts-services luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn luci-i18n-opkg-zh-cn luci-proto-wireguard keepalived -dnsmasq

如果有第三方包添加进packages目录下,并添加在包后面,我这里添加了DDNS-GOpasswall插件

定制插件:

 chinadns-ng ddns-go dns2socks dns2tcp hysteria ipt2socks luci-app-passwall luci-app-ddns-go microsocks naiveproxy shadowsocks-rust-sslocal shadowsocks-rust-ssserver shadowsocksr-libev-ssr-local shadowsocksr-libev-ssr-redir shadowsocksr-libev-ssr-server simple-obfs sing-box tcping trojan-plus tuic-client v2ray-geoip v2ray-geosite v2ray-plugin xray-core xray-plugin -dnsmasq

4. 编辑.config文件,修改rootfs分区大小,vim 斜杠搜索ROOTFS_PARTSIZE,修改为1024也就是1GB大小,这个空间是肯定够的。

CONFIG_TARGET_ROOTFS_PARTSIZE=1024

5. 开始构建

构建命令:

    make image PROFILE="generic" PACKAGES="base-files busybox ca-bundle dnsmasq-full dropbear e2fsprogs firewall4 fstools grub2-bios-setup kmod-button-hotplug kmod-nft-offload kmod-nft-tproxy iptables-nft iptables-mod-socket iptables-mod-tproxy libc libgcc libustream-mbedtls logd mkf2fs mtd netifd nftables odhcp6c odhcpd-ipv6only opkg partx-utils ppp ppp-mod-pppoe procd procd-seccomp procd-ujail uci uclient-fetch urandom-seed urngd kmod-amazon-ena kmod-amd-xgbe kmod-bnx2 kmod-e1000e kmod-e1000 kmod-forcedeth kmod-fs-vfat kmod-igb kmod-igc kmod-ixgbe kmod-r8169 kmod-tg3 luci ddns-scripts ddns-scripts-cloudflare ddns-scripts-services luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn luci-i18n-opkg-zh-cn luci-proto-wireguard keepalived luci-app-travelmate chinadns-ng ddns-go dns2socks dns2tcp hysteria ipt2socks luci-app-passwall luci-app-ddns-go microsocks naiveproxy shadowsocks-rust-sslocal shadowsocks-rust-ssserver shadowsocksr-libev-ssr-local shadowsocksr-libev-ssr-redir shadowsocksr-libev-ssr-server simple-obfs sing-box tcping trojan-plus tuic-client v2ray-geoip v2ray-geosite v2ray-plugin xray-core xray-plugin -dnsmasq"

插件少几分钟就构建完成了,非常快。

构建完成的文件在/bin/targets/x86/64