1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenWRT安裝與升級

Last updated at Posted at 2025-05-30

OpenWRT的安裝和升級

OpenWRT官方下載頁面可下載官方固件。
OpenWRT對各路由器機型的支持參考OpenWRT Wiki

系統安裝

mtd是路由器刷機使用的固件寫入工具,用於向路由器中刷寫操作系統。

路由器的分區信息寫在/proc/mtd文件中,不同機型不同固件會有不同的分區信息,示例:

<!-- Mi Router 4C, Official Firmware  -->
$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01000000 00010000 "ALL"
mtd1: 00020000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 00010000 00010000 "crash"
mtd5: 00010000 00010000 "cfg_bak"
mtd6: 00100000 00010000 "overlay"
mtd7: 00c60000 00010000 "OS1"
mtd8: 00b00000 00010000 "rootfs"
mtd9: 00200000 00010000 "disk"

<!-- Redmi Router AC2100, Official Firmware  -->
$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 07f80000 00020000 "ALL"
mtd1: 00080000 00020000 "Bootloader"
mtd2: 00040000 00020000 "Config"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00040000 00020000 "Factory"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_syslog"
mtd7: 00040000 00020000 "cfg_bak"
mtd8: 00400000 00020000 "kernel0"
mtd9: 00400000 00020000 "kernel1"
mtd10: 01a00000 00020000 "rootfs0"
mtd11: 01a00000 00020000 "rootfs1"
mtd12: 02600000 00020000 "overlay"
mtd13: 01b80000 00020000 "obr"
mtd14: 00c1c000 0001f000 "ubi_rootfs"
mtd15: 021e8000 0001f000 "data"

<!-- Redmi Router AC2100, OpenWrt Firmware  -->
$ cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "Bootloader"
mtd1: 00040000 00020000 "Config"
mtd2: 00040000 00020000 "Bdata"
mtd3: 00040000 00020000 "factory"
mtd4: 00040000 00020000 "crash"
mtd5: 00040000 00020000 "crash_syslog"
mtd6: 00040000 00020000 "reserved0"
mtd7: 00400000 00020000 "kernel_stock"
mtd8: 00400000 00020000 "kernel"
mtd9: 07580000 00020000 "ubi"

使用mtd將固件寫入目標分區:

# mtd -r write 固件路徑 分區名稱

使用mtd工具刷機,通常應使用factory固件,
而非OpenWRT系統升級時使用的sysupgrade固件。

使用mtd重置系統:

# mtd erase rootfs_data

系統升級

在LuCI的System - Backup / Flash Firmware介面選擇Flash new firmware image菜單進行系統升級;
亦可使用sysupgrade工具進行系統升級:

<!-- 系統升級,升級鏡像通常名稱中包含sysupgrade字樣 -->
# sysupgrade 升級參數 升級鏡像

<!-- 配置備份參數 -->
# sysupgrade 備份參數 備份文件

使用sysupgrade升級系統時,需要注意所使用升級固件的mtd分區佈局,
分區佈局需要與最初安裝系統時使用的factory固件兼容。否則會造成路由器變磚。

sysupgrade主要參數:

參數 說明
-n 升級不保留任何配置
-c 保留 /etc 目錄下的所有變化配置
-v 輸出更詳細的操作日誌
-b 創建備份
-r 恢復備份
-l 列出備份

OpenWRT的系統升級會清空整個根文件系統(根據配置項可保留/etc下的配置),
升級後的系統所有用戶安裝的軟件包會清空,若升級時選擇保留配置,
則保留/etc路徑下的內容,系統以及用戶軟件包的配置將會保留。
若保留配置,則多數系統配置如Wifi、密碼、防火牆、ssh等配置可直接應用到新環境中,
用戶軟件包也可在升級後重新安裝繼續使用保留的配置。

為避免潛在的軟件包升級不兼容,亦可僅保留核心配置/etc/config路徑。

需要注意,系統升級前若修改了/etc/passwd設置了非預裝的shell作為默認shell,
則升級前應修改回默認的/bin/ash,否則升級後因為軟件包重置、shell不存在,而導致ssh無法連接。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?