问题标签 [ubi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dockerfile - microdnf update 命令安装新包而不是仅仅更新现有包
我的 Dockerfile 使用registry.access.redhat.com/ubi8/ubi-minimal
具有microdnf
包管理器的基本映像。
当我在 docker 文件中包含以下代码片段以获取现有软件包的最新更新时,
它不仅升级了 4 个现有软件包,还安装了 33 个新软件包,
该dnf
文档不建议它应该安装新软件包。它是一个错误microdnf
吗?
microdnf update
还将新图像大小增加了约 75MB
dockerfile - 在 UBI8 中安装 tcpdump 包失败(阅读帽子通用基础映像)
我正在构建一个基于 UBI8(Read hat Universal Base Image) 的 docker 镜像,Dockerfile 看起来像
但它未能安装 tcpdump 包。
如何修复它以便在 UBI 中安装 tcpdump 包?谢谢。
linux-kernel - ubiattach 失败,坏块太多
我试图从 NAND 芯片中读取固件,并提取其程序和数据进行分析。
从网上我了解到,您必须创建一个 UBI 设备,并将您的图像文件写入它,然后您才能将它安装到您的系统。
描述
首先,我从 FLASH 芯片中读取了一个 bin 文件。binwalk
我明白了。
从它的输出文件中,我找到了这个ubi 图像文件。
关于NAND芯片的一些信息:
然后我尝试安装它,如下所示:
“test_file”的大小是0x10044000,所以我只删除了最后的0x4000字节,然后ubiformat
再次尝试。
我做了一些研究发现,在这个 UBI 图像中,有很多块,每个块都包含数据和 OOB。
最后一个命令失败的原因是因为它0x55424923
在错误的位置搜索0x20000
,因为 OOB,0x55424923
实际上是在0x21000
,所以我认为也许从“this_file_dd”中删除所有 OOB 部分可能会起作用。bash 命令和测试如下。
删除所有 OOB 后,比较 2 个文件,发现 OOB 已被删除。
再说一次,关于糟糕的 UBI 魔法ubiformat
的另一个错误。
使用 ghex 修复了 EB-1074 中错误的 EC 标头,ubiformat
同样,同一块的 CRC 不正确。
修复 CRC 并ubiformat
再次启用 ubi 和ubiattach
mtd0,但出现另一个错误。
我是否dmesg
找到了这条消息。
但我不知道如何解决这个问题,所以我只是从文件中删除块 1074。
然后ubiformat
再次附加,但还有另一个错误。
查了一下dmesg
发现这个,这个是我不知道怎么办的地方,不知道怎么弄了这么多坏块。
我阅读了官方文件,它说只有在 2 senerios 一个块才会被标记为坏。一种是当对eraseblock的写操作失败时,UBI会将数据从bad EB移动到good EB,并做一些测试来确认bad EB是不是真的坏了;或者当擦除操作出现 EIO 错误时,EB 将立即被标记为坏块。我不确定是什么原因导致了这么多坏块。
我的问题
- 在进行中,我的命令做错了吗?如果没有,如何修复这个 UBI 映像以便我可以读取它的程序和数据?
- 还有其他方法可以从这个 UBI 图像文件中获取程序和数据吗?
工具和版本
- 卡利 2020.3
- mtd-utils 2.1.1
ant - 使用 ubi 的 docker builder 镜像
尝试使用 ibmcom/websphere-liberty:full-java8-ibmjava-ubi (RHEL8.2) 作为构建器映像并尝试安装 ant 但没有成功
windows-subsystem-for-linux - 如何从 RHEL UBI 映像构建 rootfs.tar(使用 podman 拉取)
如果我像这样提取 RHEL UBI 映像(在 Windows 上使用 cygwin 和 podman),
$podman pull registry.access.redhat.com/ubi8/ubi
是否有可以在主机系统 (Windows) 上运行的命令来在主机 (Windows) 上创建一个文件,该文件将rootfs.tar
是被拉取的 UBI 映像的一个文件?
然后我想用它rootfs.tar
在 WSL2 下的 Windows 主机上运行。
如果有人这样做了,或者如果有另一种方法可以将 UBI 图像获取为rootfs.tar
,那将非常有帮助。
git - 有没有办法使用 microdnf 将 git 安装到 RedHat ubi 8 最小映像中并解决安装 shadow-utils 的错误?
尝试使用 microdnf 将 git 安装到 Redhat UBI 8 最小映像中失败。我已经将我认为的问题追溯到 git 需要的 shadow-utils 的安装。尝试单独安装 shadow-utils 也会失败。在我将 git 添加到列表之前,我安装其他常见的构建环境工具没有问题,并且它开始在 shadow-utils 上失败。
我可以通过使用非最小图像并使用 yum 而不是 microdnf 安装来解决问题。不过,这似乎应该工作。除了使用更大的图像开始之外,还有其他解决方法吗?
telnet - 在 red hat ubi 中添加 telnet
我们如何在 ubi docker 镜像中添加 telnet。我尝试使用 yum telnet 添加,但出现如下错误
dockerfile - RHEL ubi8 包 A 需要 B 但没有一个提供程序可以安装
我有一个使用 registry.redhat.io/ubi8/ubi-minimal 作为基础镜像的 dockerfile。使用 microdnf 安装了 git,下载了几个包,但是在尝试使用 microdnf remove git 删除时,我收到了这些错误。
microdnf --enablerepo=ubi-8-baseos --enablerepo=ubi-8-appstream install git
bind - 在 UBI 容器映像上安装绑定?
在通过 SSH 连接到 UBI 容器 (registry.access.redhat.com/ubi8/ubi) 时,我找不到绑定包。
如何将此包添加到 yum?或者如何在 UBI 容器映像中安装绑定?
linux - 解压带有 ubifs 图像的 ubi 图像
我在研究过程中遇到了一个问题。我有一个从 Internet 下载的固件文件,我试图解压缩它以模拟固件。好消息是我成功地做了一次,但我恢复了我的机器,我现在无法重新创建这个过程。
首先,任何工具都无法提取文件,因为您会收到一个错误,即找到少于 2 个布局块。
之后我转储了 ubi 文件的一些信息:
所以从我得到这个成功的那一刻起,我就知道在 bakfs 卷中还有另一个 ubifs 图像可以被公共工具成功提取。
我已经测试了很多方法来挂载这个图像,但它总是在挂载时失败。
我相信这是块大小 = 0x20000 的正确配置。
格式化和闪烁也可以正常工作。
在这之后的下一部分我真的不明白。网上有 100 种不同的方式,但我似乎无法让它发挥作用。
如果有人可以在此过程中帮助我,我将不胜感激。
正如我所说,我已经有了文件系统的解压版本。但我现在无法重新创建解包过程。所以我知道它是可能的。