首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未检测到自定义initramfs

未检测到自定义initramfs
EN

Unix & Linux用户
提问于 2019-07-12 06:21:19
回答 2查看 797关注 0票数 1

我有自定义的initramfs,应该启动busybox。cpio存档包含带有busyboxinit的目录D2

busybox是静态链接的二进制文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bin/busybox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, stripped

init是具有以下代码的shell脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/busybox sh
export PATH=/bin
/bin/busybox --install -s /bin
sh

我使用以下命令制作图像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
find | cpio -ovHnewc > ../initrd.img

当我运行它时,我会感到内核恐慌:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# qemu-system-x86_64 -m 512M -enable-kvm -kernel /boot/vmlinuz -initrd ../initrd.img -append 'debug console=ttyS0 init=/bin/init' -nographic
 (booting)
[    2.175321] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

initramfs图像有什么问题?对于空initramfs,我得到了相同的错误。我发行版的initramfs正在工作。

EN

回答 2

Unix & Linux用户

发布于 2019-07-12 06:36:02

我认为您的init脚本对于引导来说太小了。内核与/proc和/sys一起工作,因此它应该包括:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mount -t proc none /proc
mount -t sysfs none /sys
票数 1
EN

Unix & Linux用户

发布于 2019-07-13 00:24:50

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

您收到此消息是因为它找不到init脚本。(如果没有init,它会尝试继续,然后由于缺乏rootfs而失败)。

-append 'debug console=ttyS0 init=/bin/init'

应该是/init,而不是/bin/init。或者,您可以根据rdinit=参数根据管理指南/内核参数指定initramfs init。

测试initramfs是否已加载的一种方法是传递rdinit=/bin/busybox,然后它应该随消息一起死掉:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CPU: 0 PID: 1 Comm: busybox ...
[... lots of stuff ...]
Attempted to kill init!

只有在最初存在init进程的情况下,您才会得到Attempted to kill init!消息,因此您知道它已经加载并执行了一定程度的成功。否则,如果init根本不存在,它将返回到当前已经收到的消息。

此外,如果不想处理initrd本身中的模块加载,内核本身必须支持initramfs (CONFIG_BLK_DEV_INITRD=y)以及可执行脚本(CONFIG_BINFMT_SCRIPT=y)加上内置驱动程序,而不是模块。所以内核配置在这里也很重要。

我不知道你是不是已经从那个页面来了,但是Gentoo Wiki有自定义Initramfs指南。这还展示了如何获得基本的/dev /proc /sys环境。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/529837

复制
相关文章
fdisk管理分区
格式化:centos7 : 文件系统:XFS centos6: 文件系统:ext4
互联网老辛
2020/05/24
2K0
fdisk 磁盘分区教学
使用fdisk -l命令可以查看系统中所有磁盘的分区信息,包括磁盘设备名称、分区大小、分区类型等。例如:
久绊A
2025/02/22
1200
Linux命令(38)——fdisk命令
fdisk命令用于创建和维护磁盘分区表。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。
恋喵大鲤鱼
2018/08/03
3K0
因为热爱,所以坚持;因为坚持,得以突破!
配图来自蚂蚁集团董事长 井贤栋撰文 Who Am I 大家好,我是「程序猿DD」星球的星主:翟永超,211小硕一枚,本科读的软件工程,硕士学的数据挖掘。曾任职于工商银行、永辉超市等公司。从开发到架构师,到合伙人,再到自己创业,一直都围绕着自己所热爱的事:编程。 第一次接触计算机是在二年级,那会儿舅舅家有一台486,那时候也已经有一些pc游戏,比如:最著名的《仙剑奇侠传》,那时候的游戏还是dos版本的,所以进入游戏前,都是在一片黑白屏幕上蹭蹭蹭输入一些字母才能开始。那时候就觉得特别神奇,可能也是在那个时候
程序猿DD
2023/04/04
3700
因为热爱,所以坚持;因为坚持,得以突破!
【集合论】划分 ( 划分 | 划分示例 | 划分与等价关系 )
商集参考 : 【集合论】等价类 ( 等价类概念 | 等价类示例 | 等价类性质 | 商集 | 商集示例 ) 四、商集
韩曙亮
2023/03/28
1.7K0
【集合论】划分 ( 划分 | 划分示例 | 划分与等价关系 )
Linux 下的 Fdisk 命令
本文最先发布在:https://www.itcoder.tech/posts/fdisk-command-in-linux/
雪梦科技
2020/05/21
4.9K0
Linux系统磁盘分区及挂载 – fdisk[通俗易懂]
当我们拿到一块新的硬盘时,他所能够支持的最大空间只是代表硬件上的一个参数,我们要想让他能够正常的工作起来,必须要有相应的文件系统。文件系统决定了文件存储和管理时的方式和数据结构,也就是如何管理磁盘上的文件和文件夹。不同的文件系统拥有不同的特点,这也就是为什么我们在进行格式化操作必须要选定一种文件系统的原因。 当在一个操作系统(Windows、Linux、MacOS)中使用文件系统时,通常都会做一个统一的接口,来进行文件的读写,所以会存在某些文件系统只适用与某一种操作系统的情况。
全栈程序员站长
2022/09/22
5.9K0
Linux系统磁盘分区及挂载 – fdisk[通俗易懂]
Linux 磁盘分区工具 gdisk / fdisk
将磁盘划分为若干个区块操作为磁盘分区,在各个操作系统中都有类似的内容,分区会为硬盘管理带来一些好处:
为为为什么
2022/08/06
9.5K0
Linux 磁盘分区工具 gdisk / fdisk
centos磁盘分区命令fdisk和parted
序言: centos系统分区格式有msdos和gpt两种格式,其中msdos对应windows的 MBR分区。msdos格式只能创建4个主分区(或者3个主分区1个扩展分区),且分区最大只支持2TB;而gpt格式则不受分区数量和硬盘大小限制。
吾爱运维
2022/09/29
6.2K0
centos磁盘分区命令fdisk和parted
fdisk 扩大ext3分区
如果没有使用 LVM 来管理我们的磁盘, 那么我们还可以通过下面方法扩大我们的分区。
py3study
2020/01/08
9180
[Spark源码剖析] DAGScheduler划分stage划分stage源码剖析
在DAGScheduler内部通过post一个JobSubmitted事件来触发Job的提交
codingforfun
2018/08/24
8260
[Spark源码剖析] DAGScheduler划分stage划分stage源码剖析
韩嫕:坚持coding
韩嫕:我在大学和研究生的时候主要学习方向就是通信工程,重点学习内容集中在图像、视频编解码方面。个人爱好摄影、摄像和制作视频。
LiveVideoStack
2019/10/28
1.2K0
韩嫕:坚持coding
模块划分
内聚,是从功能角度来衡量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
阳光岛主
2019/02/19
6630
数据划分
这段时间在研究自然语言处理的相关问题,主要是学习如划分数据,尝试过利用机器学习中的相关知识建立模型对数据进行评分后加以划分,但是由于语料库的不足导致训练出的模型对数据的区分度不够,另一方面也是因为部分数据比较‘刁钻’难以以正常方法区分。后来尝试过调用百度的词法分析,利用百度平台现成的技术对数据做初步处理,然后再进一步处理,这样会大大降低数据划分的难度。做到后面发现百度的词法分析存在太多不足,许多作品、名人以及地名都不能很好得到识别,基于百度词法分析得出数据划分结果正确率只能维持在85%上下,很难再得到提高。后面也试过利用boson平台的相关技术,和百度一样也存在很多不足。经过一番思考决定建立一套自己的数据划分流程,写下这篇博客用以记录。
K同学啊
2019/01/22
4920
使用fdisk命令操作硬盘用法详解
fdisk 操作硬盘的命令格式如下:   [root@localhost beinan]# fdisk 设备   比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备;我们如果想再添加或者删除一些分区,可以用   [root@localhost beinan]# fdisk /dev/hda   或   [root@localhost beinan]# fdisk /dev/sda   注 在以后的例子中,我们要以 /dev/sda设备为例,来讲解如何用fdisk 来操作添加、删除分区等动作;   1、fdisk 的说明;   当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同;
会长君
2023/04/25
1.5K0
linux下fdisk命令的用法详解[通俗易懂]
((1)通过fdisk -l 查看机器所挂硬盘个数及分区情况;一、fdisk用法详解
全栈程序员站长
2022/07/21
4.8K0
Linux下使用fdisk扩展分区容量
硬盘空间为20G,使用vSphere Client增加磁盘大小,需要再增加10G空间;
用户5005176
2021/08/08
6.2K0
fdisk对服务器磁盘扩容
fdisk对服务器磁盘扩容 查看磁盘 df
以谁为师
2019/05/28
4.5K1
链表划分
LeetCode 86.Partition List 已知链表头节点指针head与数值X,将所有小于x的节点放在大于或等于x的节点前,且保持这些节点的原来的相对位置
小飞侠xp
2018/08/29
4340
Object划分
这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这
后端码匠
2021/02/18
6940

相似问题

使用远程命令将URL参数传递给JSF支持bean

29

如何使用JSF通过URL将参数传递给bean类?

20

jsf:将参数传递给支持bean中的方法

33

jsf将bean作为参数传递给包含的xhtml

11

如何将url参数传递给JSF?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文