registry.access.redhat.com/ubi8/ubi-minimal
我的 Dockerfile 使用具有包管理器的基础映像microdnf
。
当我在 docker 文件中包含以下代码片段以获取现有软件包的最新更新时,
RUN true \
&& microdnf clean all \
&& microdnf update --nodocs \
&& microdnf clean all \
&& true
Run Code Online (Sandbox Code Playgroud)
它不仅升级了 4 个现有软件包,还安装了 33 个新软件包,
Transaction Summary:
Installing: 33 packages
Reinstalling: 0 packages
Upgrading: 4 packages
Removing: 0 packages
Downgrading: 0 packages
Run Code Online (Sandbox Code Playgroud)
该dnf
文档并不建议它应该安装新的软件包。这是一个错误吗microdnf
?
microdnf update
新图像大小也增加了约 75MB
我在研究过程中遇到了一个问题。我有一个从互联网下载的固件文件,我试图解压它以模拟固件。好消息是,我成功完成了一次,但我恢复了我的机器,现在无法重新创建该过程。
首先,任何工具都无法提取该文件,因为您会收到一条错误消息,指出找到的布局块少于 2 个。
之后我转储了 ubi 文件的一些信息:
==> app_ubifs <==
1 named volumes found, 2 physical volumes, blocksize=0x20000
== volume b'bakfs' ==
-rw-r--r-- 1 0 0 37879808 2020-04-22 01:27:47 ubifs
Run Code Online (Sandbox Code Playgroud)
因此,从我成功获得此操作的那一刻起,我就知道在 bakfs 卷中还有另一个 ubifs 映像,可以通过公共工具成功提取该映像。
我已经测试了很多方法来安装这个图像,但它总是在安装时失败。
modprobe ubi
modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa \
third_id_byte=0x00 fourth_id_byte=0x15
Run Code Online (Sandbox Code Playgroud)
我相信这是 blocksize=0x20000 的正确配置。
ubiformat /dev/mtd0 -f app_ubifs
ubiformat: mtd0 (nand), size 268435456 bytes (256.0 MiB), 2048 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 2047 -- 100 % complete …
Run Code Online (Sandbox Code Playgroud)