[OpenWrt]给软路由安装openwrt

[Openwrt]给软路由安装openwrt

准备

  • 一台电脑
  • 一个U盘
  • 一台软路由

openwrt镜像文件

openwrt官网下载对应架构的稳定版镜像文件。

版本号

试了下最新的22.03.0,发现docker daemon无法正常工作。

建议不要使用小版本号为0的版本,还是回退到上一个稳定版22.02.3比较保险。

选哪个镜像

OpenWrt的镜像有很多个,大概是下面几个选项的排列组合:

  • ext4还是squashfs
  • 单rootfs还是combined
  • efi还是legacy
ext4还是squashfs

相比普通的ext4,squashfs引入了只读区域,可以恢复出厂设置,建议选择squashfs。

单rootfs还是combined

为了以后更方便迁移扩容,建议combined,把boot和rootfs分开。

efi还是legacy

根据软路由主板来决定,一般情况两种都支持。默认efi吧。

总结一下就是默认下载generic-squashfs-combined-efi.img.gz这个镜像。

WinPE

WinPE的全称是Windows Preinstallation Environment,是微软官方出的一个小型操作系统,用来安装、部署和修复正经操作系统。

一般用户都会使用第三方WinPE,比如微PE优启通等。

但防人之心不可无,既然官方有,为什么要用民间的呢。
官方WinPE不能运行physdiskwrite,暂时使用优启通的ISO搭配ventoy。

安装官方WinPE

从Win10 1809开始,官方WinPE包含在ADK加载项里。

制作WinPE启动U盘

下一步是[创建可启动WinPE介质](https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive?view=windows-11)。

  1. 首先是创建工作文件。

以管理员身份启动部署和映像工具环境(在开始菜单的程序栏Windows Kits下)运行以下脚本

1
copype amd64 C:\WinPE_amd64
  1. 定制WinPE

默认WinPE只有一个命令行没有界面,如果想使用UI,需要在这一步定制。

对于自用来说这一步可以省略,命令行是最优雅的人机交互方式(狗头

  1. 烧录至U盘

烧录有两种方式,一种是使用部署和映像工具环境命令行直接烧录

1
MakeWinPEMedia /UFD C:\WinPE_amd64 P:

另一种是生成iso文件,然后使用通用烧录工具如rufus进行烧录,推荐这种方法,更可控些。

1
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso
  1. 拷贝物料

将OpenWrt镜像文件、写盘工具等文件复制到U盘根目录,以供后续使用。

写盘工具

我们需要将openwrt.img写入软路由的磁盘,需要写盘工具来完成这一步。

首推physdiskwrite,目前最新版本为0.5.3

使用方法:

1
physdiskwrite.exe -u generic-squashfs-combined-efi.img

然后选择对应的硬盘,通常是第一个,也就是0号。注意,如果有挂载其它硬盘,这一步一定要小心别选错了。

参数-u是因为软件作者担心用户写错盘,在写入超出2G容量的硬盘时需要显性指定-u参数。

分区工具

写完盘后,默认会在硬盘上新建3个分区。分别是efi,boot和rootfs。这三个区一共也才100多兆,硬盘上的上百G空间就被剩了下来。

此时就需要分区工具来进行扩容,把剩余的空间都划给rootfs。

Diskpart

dispart是微软官方WinPE自带的分区工具。

进入diskpart提示符后,选择磁盘和卷,扩容(默认使用全部剩余空间),再退出(保存)即可。

1
2
3
4
5
6
diskpart
DISPART> list volume
DISPART> select disk 0
DISPART> select volume 3
DISPART> extend
DISPART> exit

DiskGenius

如果实在不习惯命令行,想用DiskGenius,那最简单的方法是使用第三方WinPE,第三方WinPE都会集成常用工具。比如优启通

DiskGenius的使用方法就不多说了,扩展rootfs分区使用剩余未分区空间再保存就行。

注意,我在使用DiskGenius扩容rootfs分区时,generic-squashfs-combined-efi会出现错误,最后使用了generic-squashfs-combined

GParted

如果上面两种方法都不行,那么可以进入Linux系统使用GParted进行分区。

参见这篇文章OpenWrt扩容

安装Openwrt

将软路由接上显示器,键盘,鼠标,U盘,然后插电。

通电直接启动

默认软由器会通电直接开机,而不用按下开机键。这样才能在断电又来电后自动恢复。

这项设置在BIOS的Restore AC Power Loss中,将它设为Power On即可。

Restore AC Power Loss通常在电源管理或者高级设置里。

进入WinPE

开机后依据屏幕提示,按F8F12进入快捷启动,选择U盘启动。

进入WinPE后,进行写盘分区操作。

完成后重启机器。

配置Openwrt

重启完成后就会进入Openwrt系统了,等待启动完成按下回车键激活命令行。

Grub

如果烧录的不是efi版本,那么进入grub引导界面将没有倒计时,需要手动选择OpenWrt启动。

可以修改grub配置文件/boot/grub/grub.cfg,将default改为0,这样就不用手动选择了。

密码

初始系统默认没有密码,无法通过ssh登录。根据提示使用passwd命令设置密码。

配置IP

默认的IP是192.168.1.1,很容易跟光猫或主路由冲突。我们把它改为192.168.8.1

1
2
3
uci set network.lan.ipaddr='192.168.8.1'
uci commit
reboot

配置软件源

国内源的下载速度与官方比起来就像飞机和汽车。

1
sed -i 's_downloads.openwrt.org_mirror.sjtu.edu.cn/openwrt_' /etc/opkg/distfeeds.conf

中文界面

安装luci中文界面。

1
2
opkg update
opkg install luci-i18n-base-zh-cn

常用软件

常用软件可参考其它文章。