问题标签 [initrd]
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.
linux - Initramdisk 初始化脚本 - 捕获无效的内核驱动程序加载
最近我为我的initrd
镜像添加了新的驱动程序,以便能够在 VMware 和 Hyper-v 平台下运行。
我的问题是,如何在驱动程序加载过程中发现故障?如果插入insmod
失败,hv_vmbus
我想跳过加载 5 个额外的驱动程序(以摆脱“未知符号 xyz”)。
linux - 内核不会在 initrd 上调用 /init 脚本
每个人。我正在开发我的第一个嵌入式 Linux,我希望有一个不错的引导程序。我决定尽早使用 initrd 来启动它,但看起来内核没有调用 /init 脚本。它安装我的 ram 磁盘并按照通常的引导顺序进行。
我尝试了各种我知道的调试来测试脚本是否被调用,但都没有成功。我完全没有错误。登录后,我可以看到安装在 /initrd 的 ram 磁盘,就像它应该的那样。
我正在使用带有社区提供的驱动程序和内核(3.4)的 Cubieboard 2。我知道这是一个旧版本,但它是迄今为止对 sunxi SoC 支持最好的版本。我还使用Linaro提供的两个文件系统(rootfs 和 initramfs)作为基础。
有人可以帮我吗?
谢谢你。
linux - 如何在 initramfs 中加载内核模块
我有一个块设备模块,必须在文件系统之前加载。有人告诉我,我已将模块包含到initramfs
并从中启动。
然后我创建了自己的initramfs
宽度 dracut,将我的.ko
文件放入/user/lib
,我还生成了新的grub.cfg
.
但是,重启后,lsmod
显示.ko
文件没有加载。
所以我想知道我应该怎么做才能使模块在我重新启动时自动加载?
谢谢你。
PS我正在使用Centos 7。
android - 使用 abootimg 解压/打包 AOSP 恢复映像无法启动
我使用 AOSP 源代码为我的 Nexus 7 设备构建了一个 recovery.img(使用 flo 午餐设置)。我可以像这样使用它:
但是,当我使用 abootimg 实用程序解压缩并重新打包 recovery.img 文件(不对 ramdisk 进行任何修改)并使用 recovery.img 重新尝试启动时,我的 Nexus 7 只是进入了 Google 闪屏循环。进入闪屏后设备不断重启。
有关详细信息,这是我的步骤:
导致更新的 recovery.img 无法按预期工作,即使它只是原始 recovery.img 文件的未修改副本。
linux - 如何查找系统上的所有 initrd.img* 文件
一直在为 Ubuntu 开发一些自定义 ISO,所以我有很多不同的挂载等。我想扫描所有内容以找到所有 initrd.img* 文件,但我在 find 命令中得到了“功能”的计时. 定位命令不起作用,因为没有安装这个东西。
如您所见,我可以使用 find 来识别物理文件,但我需要找到所有 initrd.img 链接。
怎么办?
linux-kernel - init 进程在 linux 内核启动时死亡
我正在尝试在定制的 p2020 板上启动内核。内核崩溃并出现以下异常。
init[1]:4801b9dc nip 4801b9dc lr 48002b08 代码 3000 处的未处理信号 4
initrd
它以同样的方式消亡ramfs
。
我正在使用一个 initrd,它曾经在基于 t104x 的板上工作。上述错误的原因可能是什么?是不是initrd不适合P2020?我们是否需要为特定处理器重新编译 initrd?
linux - 在没有 root 的情况下更改 cpio 存档中的所有权
我需要将文件添加到 initramfs 文件(我拥有该文件,因为这是用于其他一些设备),但是我在我的开发机器上没有 root 权限。通常的方法是解压缩 initramfs,添加文件,将所有者更改为 root 并再次打包。我不能这样做,因为在这台机器上更改所有者需要 root 权限。如果我不更改所有者,系统可能会表现得很奇怪(而且它不是一个干净的设置)。
我不能在目标系统上执行此操作,因为它是一个嵌入式系统,它只有对 initramfs 文件的只读访问权限。
有没有办法在打包 cpio 存档期间或之后更改权限?
ubuntu - `scripts/init-top/all_generic_ide`中的`hooker script`实际上是什么?
我正在init
Ubuntu 的 ramdisk 中学习。在scripts/init-bottom/udev
我看到这个代码片段:
它几乎出现在脚本中的每个脚本scripts/**
(如scripts/init-top/all_generic_ide,scripts/local-bottom/ntfs_3g,scripts/local-premount/fixrtc
等)。虽然它们可能有一些细微的差异,但它们中的大多数只是在正文代码的顶部有相同的片段。
我从 Ubuntu 阅读了 wiki:initramfs-tools
我完全不知道它的目的是什么。我想我可以意识到它的流程,但就是不知道它会做什么?
linux-kernel - ARM 有时会卡在“正在启动内核映像 ...”
一开始我想宣布它是部分成功的故事。:-)
背景:为了个人的自我开发,我有一个想法,完成半LFS程序为我的ARM Cubieboard2构建Linux。为什么是半成品?因为我的不耐烦使我产生了从已经构建的 Fedora 23 映像中获取一些组件的想法。
因此,程序或多或少如下:
阶段 0
Crosstool-ng 已用于构建交叉编译工具链。(我们跳过这一步的细节。老实说,当使用 gcc-arm-linux-gnu、gcc-c++-arm-linux-gnu 和 binutils-arm-linux-gnu 包时,结果是一样的。)
阶段1
MMC卡已配置如下
步骤1
第2步
sdb.gpt.prt 内容在哪里
第 3 步
第4步
第 5 步
第 6 步
阶段2
U-Boot 已编译
步骤1
最近的分支已从 git://git.denx.de/u-boot 签出
第2步
Bootloader + SPL 已构建如下
结果 u-boot-sunxi-with-spl.bin 已经生成。
警告: SEMI 下面开始。
第三阶段
Fedora 23 镜像已下载并挂载
步骤1
原始图像文件已下载
第2步
图片已解压
第 3 步
引导和根文件系统已安装
第 4 阶段
Bootloader + SPL 已记录在 MMC 上
第 5 阶段
Fedora 引导分区已被复制和修改
步骤1
第2步
第 6 阶段
Fedora 根分区已被复制和修改
步骤1
第2步
中间结果
现在,使用插槽中的 MMC 卡启动 Cubieboard 后,系统挂起并显示著名的“正在启动内核映像...”消息。
但是,这并不是故事的结局。正如我一开始提到的,一个实验结果证明是成功的。也就是说,我尝试使用 Fedora 23 即提供的救援 initramfs 映像。extlinux.conf 与
带来了成功!
我试图分析有希望的结果的根本原因。我问自己的问题是“这两张图片有什么区别?”
产生以下输出:
此外
产生以下结果:
所以,“只有”一些额外的二进制文件。没有特殊的配置文件。
当然,我知道上面的检查方法是微不足道的。但在深入挖掘之前,我决定寻求一些提示。
我的问题是:
救援initramfs镜像成功的根本原因在哪里?
附录
extlinux.conf 条目
无法启动。这是启动日志:
但是 extlinux.conf 条目
成功启动。这是启动日志:
linux - getaddrinfo() 在自制的 initrd 中失败。如何调试引导过程?
我正在尝试使用诸如 Anti-Evil-Maid 之类的自写版本来保护我的工作站的引导过程,但我无法让 TPM 守护程序运行。问题似乎是,只要连接客户端触发 .getaddrinfo() 调用,TCSD 就会失败。这意味着,程序启动,但在使用时立即退出。
到目前为止,我已经尝试通过 strace 确定 TCSD 的先决条件,并将相关文件和库复制到 initrd 中,但到目前为止我还没有超出上述范围。不幸的是,我无法将初始化进程中的日志复制到这篇文章中,因为一旦更改了根目录,所有文件都会消失,但我可以告诉你,到目前为止我已经尝试过什么。我假设问题通常与 glibc 或引导过程有关,但我不知道如何进一步调试它。
让我们从我复制到 initramfs 中的文件开始。挂钩脚本如下所示:
接下来,有一个脚本的缩短版本,我想运行:
/etc/initramfs-tools/scripts/local-top/trousers
所以。而已。当 tpm_unsealdata 尝试连接到 TCSD 时,TCSD 进行 getaddrinfo() 调用,失败并退出。trousers/tpm-tools 包中的所有其他工具也是如此。
老实说,我对引导过程的早期阶段了解不多,所以我可能看不到任何东西,同时无法进一步调试。一些帮助将不胜感激。