備份 / 還原 OpenWrt 的軟體、韌體及設定檔

在 OpenWrt 的網頁管理介面中很輕易地安裝各式的軟體,可以讓原本平淡無奇的 AP 化身成為一個非常多功能的 AP。例如:HTTP Server、FTP Server、MySQL,如果你的 AP 有一個或以上的 USB,更可以讓你的 AP 變成印表機伺服器、DLNA Server、IP 網路攝影機……等。

只要空間足夠,AP 的處理能力扛得住,再加上一些的研究精神,絕對可以讓你的 AP 比同等級的 AP 功能來得更強。

OpenWrt 可以玩的東西很多,因為可以玩的東西很多,所以在試玩試裝新的功能軟體之前,建議先備份現在 OpenWrt 的軟體以及設定檔。主要原因是:

  1. 根據我的經驗,假設我裝了 FTP Server 軟體後,但我發現似乎用不太到,我將 FTP Server 軟體移除,但是空間並不會被釋出,多數 AP 預設空間不大,若空間沒釋出,那麼日後想再玩其他軟體根本沒機會
  2. 搞爛了機器,正確來講是裝了某軟體,但因為人為的設定錯誤,或其他因素導致 AP 不正常,那麼我們可以透過「還原」的方式,再回到安裝前的情況,就如同電腦的系統還原一樣
  3. 如果下次重裝 OpenWrt,我們就可以快速地將軟體和設定檔還原到原來的 AP,甚至移植到其他 AP
  4. 有備份,總比沒備份來得好,是吧?

備份 / 還原 AP 設定值

如果只是要備份 / 還原設定值,最方便的方式是在網頁管理介面中操作

備份 / 還原已安裝的軟體

想要備份或還原另外安裝的軟體,唯一的途徑只有 Telnet / SSH。

【備份】

以 Telnet / SSH 登入 OpenWrt 之後,直接輸入

tar -czvf /tmp/overlay_backup.tar.gz /overlay

這會將 /overlay 這個資料夾(或稱掛載點)裡面所有的檔案,通通製作成一個名為「overlay_backup」tar.gz 格式的檔案,並且會存放在 /tmp 裡。

這個方式除了會備份軟體之外,也會備份軟體的設定檔,同時還會備份 AP 本身的一些設定,例如:SSID 名稱、Wifi 密碼、防火牆規則……等。

簡單來說,也可以將它視為 AP 的「全機完整備份」。

* 請注意:備份檔會放在 OpenWrt 的 /tmp 資料夾,它是暫存資料夾,所以一定要記得把備份檔傳回到我們的電腦裡,否則 AP 若重新開機,那麼備份檔就會被自動刪除。


【還原】

要還原的話,也是要以 Telnet / SSH 登入 OpenWrt,同時也別忘了把備份檔傳到 /tmp 資料夾(如果 /tmp 資料夾沒有發現備份檔),然後再輸入以下指令

rm -rf /overlay/*
cd /
tar -xzvf /tmp/overlay_backup.tar.gz
reboot -f

這會做的事是

  1. 刪除 /overlay 底下的檔案及資料夾
  2. 切換到 OpenWrt 的最底層目錄
  3. 將 /tmp 裡的 overlay_backup.tar.gz 這個備份檔解開,並且還原到 /overlay
  4. 強制重新啟動 AP

備份 / 還原 OpenWrt 的韌體

需不需要備份韌體,其實很難講,多數情況,其實我們比較需要的是全機完整備份,因為我們可能只是需要備份軟體和一些設定檔,韌體的部份其實可以不需要特別做備份。

【備份】

想要備份韌體,我們要先確認韌體是存放在哪個區域,可以使用這個指令

cat /proc/mtd

會看到類似這樣的結果

dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 0010c4d0 00010000 "kernel"
mtd2: 006c3b30 00010000 "rootfs"
mtd3: 00490000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"

由此可以得知,我們的韌體是存放在 mtd5

接著再使用以下指令備份

dd if=/dev/mtd5 of=/tmp/firmware_backup.bin

如果你的韌體不在 mtd5,那麼你必須將指令中的 mtd5 修改為符合實際情況的位置。

備份韌體時,會需要一點時間,必須要看到類似以下的訊息,才代表韌體已備份成功

16000+0 records in
16000+0 records out

* 請注意:備份檔會放在 OpenWrt 的 /tmp 資料夾,它是暫存資料夾,所以一定要記得把備份檔傳回到我們的電腦裡,否則 AP 若重新開機,那麼備份檔就會被自動刪除。


【還原】

還原韌體,也是要以 Telnet / SSH 登入 OpenWrt,並且把韌體的備份檔傳到 /tmp 資料夾內,再輸入以下指令

mtd -r write /tmp/firmware_backup.bin firmware

待韌體寫入成功後,OpenWrt 會自動重新啟動。

* 請注意,寫入韌體期間,請勿拔除或關閉分享器電源

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Google reCAPTCHA 保護機制,這項服務遵循 Google 隱私權政策服務條款