この記事の目的
この記事は 以前の記事 の続編です。
以前の記事 では OpenWrt の導入手順について説明しましたが、今回の記事では OpenWrt 化した WSR-2533DHP2 を Buffalo 純正ファームウェアに戻す手順を説明します。
同様の手順で WSR-1166DHP も Buffalo 純正ファームウェアに戻せます。🎉
TL;DR
OpenWrt 公式サイトの解説 の通り、以下のコマンドで純正ファームウェアに戻せます。
mtd -r write original_firmware.bin firmware
この記事では、上記コマンドで指定している original_firmware.bin
の取得方法について説明します。
💡 純正ファームウェアの書き込みに
ubiformat
を使う 方法 もありますが、本記事では 公式サイトの手順 と同じくmtd write
を使って説明します。
簡単編: Buffalo 公式ファームウェアから取得
簡単編では Buffalo の公式ファームウェアからリカバリデータを作成します。
👉 ここで説明しているのは、2025 年 4 月時点での手順です。
バージョンが更新されている場合は、バージョンに合わせてコマンドを変更してください。
1. WSR-2533DHP2 の公式ファームウェアの取得
Buffalo 公式サイトから最新のファームウェアをダウンロードします。
📌 Windows 版は拡張子が exe の自動解凍ファイルのため、zip ファイルである Mac 版の方が便利です。
👉 2025 年 4 月時点のファイル名は wsr2533dhp2-128.zip
です。
2. ダウンロードしたファイルを解凍して、ファームウェアを取得する
ダウンロードしたファイルを解凍して、wsr_2533dhp2_jp_xyy
といったファイルを取得します。
👉 2025 年 4 月時点のファイル名は wsr_2533dhp2_jp_128
です。
3. firmware-wintools
を取得する
以下の GitHub ページから最新の firmware-wintools_x.y.z.zip
を取得します。
👉 2025 年 4 月時点のファイル名は firmware-wintools_0.8.0.zip
です。
firmware-wintools_x.y.z.zip
を解凍して、firmware-wintools.exe
を取得します。
4. firmware-wintools
で WSR-2533DHP2 の公式ファームウェアをリカバリデータに変換
取得した Buffalo ファームウェアを firmware-wintools.exe
と同じフォルダに移動/コピーして、コマンドラインで以下のコマンドを実行します。
firmware-wintools buffalo-enc -i wsr_2533dhp2_jp_128 -o wsr_2533dhp2_jp_128.dec -d -O 0xc8 -l
: 改行を加えて見やすくするとこんな感じ 🎉
firmware-wintools buffalo-enc ^
-i wsr_2533dhp2_jp_128 ^
-o wsr_2533dhp2_jp_128.dec ^
-d -O 0xc8 -l
以下のような出力が表示されれば成功です。🎉
===== buffalo-enc モード (復号) =====
マジック : 'start'
シード値 : 0xA1
プロダクト名 : 'WSR-2533DHP2'
バージョン : '1.28'
データ長 : 11608064 bytes
チェックサム : 0x2c545978
wsr_2533dhp2_jp_128.dec
が生成されます。
生成されたファイルを WinSCP や以下のようなコマンドで WSR-2533DHP2 に転送します。
scp -O wsr_2533dhp2_jp_128.dec root@192.168.1.1:/tmp
転送したファイルがあるディレクトリで以下のコマンドを実行すれば Buffalo 純正ファームウェアに戻せます。
mtd -r write wsr_2533dhp2_jp_128.dec firmware
⚠️ Flash の空き容量が足りない場合は、 /tmp
に転送してください。
確実編: OpenWrt 化前の WSR-2533DHP2 からデータを取得
確実編では、OpenWrt 化前のルーターからデータを取得し、それを利用してリカバリを行います。
1. Kernel イメージ ( xxx-initramfs-kernel.bin ) で起動
-
Tftpd64 を利用して、TFTP が利用できるようにします
👉tftpd64.xxx.zip
をダウンロードして使うのが簡単です -
WSR-2533DHP2 の Kernel イメージ をダウンロードし、ファイル名を
linux.trx-recovery
に変更します -
linux.trx-recovery
を上記手順 1. で作成した解凍フォルダ内に移動します
- PC のイーサネットの IP 割り当てを
192.168.11.2
に設定します
- Tftpd64 を起動して、
Server interfaces
を192.168.11.2
に設定します
- PC のファイアウォール設定で TFTP の通信が許可されていることを確認します
- ルーターの AOSS ボタンを押しながら電源コードを挿し込み、Tftpd64 のウィンドウでデータが転送されることを確認します
- Kernel イメージでルーターが起動できたら、PC のイーサネットの IP 割り当てを「自動 (DHCP)」に戻します
2. firmware
mtdblock をダウンロード
- ブラウザを使用して、OpenWrt ルーターに http://192.168.1.1 でログインします
👉 パスワードは不要です 🎉 -
System
>Backup / Flash Firmware
と移動します -
Save mtdblock contents
のChoose mtdblock
でfirmware
を選択します
-
Save mtdblock
をクリックし、リカバリ用の mtdblock をダウンロードします - ダウンロードした
OpenWrt.mtd5.firmware.bin
をリカバリに備えて保存します
リカバリを行う際は、WinSCP などで WSR-2533DHP2 にデータを転送し、転送したファイルがあるディレクトリで以下のコマンドを実行すれば Buffalo 純正ファームウェアに戻せます。
mtd -r write OpenWrt.mtd5.firmware.bin firmware
⚠️ Flash の空き容量が足りない場合は、 /tmp
に転送してください。
参考資料
謝辞
今回の記事は以下の 2 つの記事を参考にしています。
これらの記事に出会わなければ、私は今回の記事を書くことはできませんでした。 🙏
公式サイトの解説
CLI で全ての mtdblock をバックアップしたい場合には以下の記事が参考になります。🎉
補足
WinSCP の接続設定について
WinSCP を使う場合は、 File protocol
を SCP
にしてください。
以下のコマンドの -O
オプションも、上記設定と同様に SCP プロトコルを使うための設定です。
scp -O original_firmware.bin root@192.168.1.1
📌 OpenWrt で SFTP を使うためには追加パッケージのインストールが必要になります。
そのため、SCP で接続した方が簡単です。🎉
データの転送先に /tmp
を使う理由
/tmp
はメインメモリ内の領域です。
そのため、Flash としては空き容量が無くても、/tmp
であればリカバリデータが転送できます。
💡 OpenWrt では、起動時に圧縮されたカーネルイメージをメインメモリ (RAM) 上に展開して動作します。
/tmp
や/var
はそれらのファイルの一時的な保存場所です。 (👉 そのため再起動すると消去されます。)
💡 NAND メモリは 読むだけでも劣化していく 😱 ため、
/tmp
を使用する方が Flash への負担が少なくなります。