Windows 环境解压 OpenWRT固件

2

OpenWRT 支持的硬件环境非常多,很多你懂的软件源码残缺不全导致没办法自行编译,而别人发布的bin固件又不是你需要的,这时候我们就需要解包bin固件来提取想要的文件。

本文为了小白能看的懂,码的比较啰嗦,有个心理准备哈

OpenWRT 是基于 Linux 的系统,bin格式固件是 Linux 文件系统,Windows 几乎没有办法操作,所以我们需要 Docker 容器或 Ubuntu on Windows 来操作。

首先默认你是全新安装 Docker for windows

开启命令行执行

docker run -it ubuntu bash

启动一个 ubuntu bash ,docker hub 官方提供的这个 ubuntu 镜像很迷你,所以“一般”常用的软件都需要自行安装。

首先根据喜好安装一个文本编辑器,这里选择 nano
apt-get install nano

因为环境需要下载的包比较多,所以第一步还是切换软件源为清华大学国内的镜像

nano /etc/apt/sources.list

接下来安装解包所需要的软件

apt-get install binwalk squashfs-tools

复制需要解包的bin文件到docker中,新开一个windows命令行窗口,使用 docker ps 命令 获取当前运行的 ubuntu 系统的id,然后执行

docker cp D:/test.bin dad510f38fd1:/root/

这里的 dad510f38fd1 是每个人不同的,不要直接复制
使用 binwalk 查看文件格式

binwalk /root/test.bin

如果你可以看到分区信息,那么 直接使用 binwalk -e *.bin 解压bin文件,我的bin是诡异的 POSIX tar archive (GNU) ,所以先解压tar

tar -xvf test.bin

cd 到 tar 解压的文件夹

ls -lht

找到体积最庞大的那个文件,我这里是 root,这次执行 binwalk root 就可以看到详细的分区信息了

binwalk -e root
# 解压成功会生成一个 .extracted 文件夹
cd *.extracted
# 开始解包固件内容
unsquashfs -dest output *.squashfs

OVER!

共 2 条评论

  1. 回复

    文章不错非常喜欢

  2. 回复

    请教下楼主,在win下docker安装nextcloud,到达配置数据库这步时,选择mysql(mysql 是宿主机里装的即当前win下,防火墙开了端口),老报错:Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...