Linux内核开发_将Linux内核打包成img文件

news/2025/11/7 10:47:16/文章来源:https://www.cnblogs.com/yipianchuyun/p/19198950

Linux内核开发_将Linux内核打包成img文件

接着之前两个文章我们已经编译了Linux内核和制作了一个文件系统

这一步我们将它们打包成一个img软盘文件

1.使用DD命令创建一个镜像的img文件

sudo dd if=/dev/zero of=my_linux.img bs=1M count=128

image

 

2.使用fdisk命令给镜像文件分区

sudo fdisk my_linux.img

image

 

2.1输入n命令创建分区

image

 

2.2输入p创建主分区

image

 

2.3分区号设置为1,代表我们的主引导分区

image

 

2.4第一个扇区大小输入默认值,或者直接回车

image

 

2.5Last sector直接按下回车,使用默认值

这个选项是指定终止分区扇区大小,如果我们直接回车则会自动以结尾扇区作为大小

我们刚刚创建的大小是128个块,128MB,这里会预留1MB作为文件格式头,所以是127MB

image

 

2.6w写入

image

 

3将文件系统挂载到/dev/loop上

我们的设备是非物理设备的文件系统,所以需要使用loop设备文件来挂载

sudo losetup -o 1048576 /dev/loop0 my_linux.img

可能会出现:

image

这种情况下我们可以不停的修改loop索引号来寻找没有挂载的

将loop0改成loop1,loop2依次类推

或者可以使用umount命令卸载指定loop设备在挂载

 

sudo umount /dev/loop0

4.格式化我们的分区,格式化成ext4文件系统,这是linux内核目前主要支持的文件系统

你也可以改成别的文件系统,前提是linux内核支持,同时你要在编译选项里修改它的文件系统支持

sudo mkfs.ext4 /dev/loop0

image

5.创建一个文件夹用于挂载我们的文件系统

 sudo mkdir my_linux

6.将文件系统挂载到这个目录下,便于操作

sudo mount -t ext4 /dev/loop0 my_linux

7.进入到my_linux目录

cd my_linux

8.创建boot目录

该目录为了支持grub引导程序而创建,创建此目录是为了符合grub的引导文件目录体系

sudo mkdir boot

9.将我们的bzImage与rootfs.img文件copy到此目录下

sudo cp /usr/src/linux_kernel/arch/x86/boot/bzImage .
sudo cp /usr/src/busy/rootfs.img .

10.安装grub

回到我们刚刚创建img文件的目录

然后输入如下命令:

sudo grub-install --boot-directory=./my_linux/boot/ --target=i386-pc --modules=part_msdos my_linux.img

image

 我们可以看到刚刚创建的boot的目录下有一个grub目录

image

 

这个目录下是没有grub.cfg文件的,我们需要手动创建与配置

11.编写grub.cfg

1.进入到grub目录下

cd grub

2.编写grub.cfg

sudo vim grub.cfg

menuentry "my_linux" {linux (hd0,msdos1)/boot/bzImage root=/dev/ram rw init=/bin/ashinitrd (hd0,msdos1)/boot/initrd.img
}

msdos代表mbr分区,hd代表硬盘,现在流行分区格式只有msdon(mbr),gpt

12.卸载挂载

sudo umount /dev/loop0

好了,至此,我们的img镜像文件已经创建好了,使用qemu运行一下看看

sudo qemu-system-x86_64 my_linux.img

image

 

可以看到grub正确找到我们的系统,这里我的grub为2.4也就是grub2

回车可以进入系统

image

 

image

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/958589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11.11 Seminar

多元共线性在回归分析中的影响与处理方法:根源、检测与补救策略 多元共线性是多元回归分析中常见的统计问题,尤其在计量经济学和数据科学领域,它指的是模型中自变量之间存在高度相关性。这种现象会使得难以分离每个…

2025年热门的艺术楼梯制作高评价厂家推荐榜

2025年热门的艺术楼梯制作高评价厂家推荐榜 在现代建筑与室内设计中,楼梯不仅是连接空间的工具,更是彰显艺术与品位的焦点。一部精心设计的艺术楼梯,能够提升整体空间的格调,成为视觉中心。随着人们对个性化与高品…

详细介绍:【Leetcode】随笔

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

界面控件DevExpress WPF v25.1新版亮点:数据管理功能全新升级

界面控件DevExpress WPF v25.1新版亮点:数据管理功能全新升级DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程…

vue vant适配 - 东方不败-

npm install postcss-px-to-viewport@1.1.1 -D module.exports = { plugins: { postcss-px-to-viewport: { // 标准屏宽 viewportWidth: 375 } } }

Linux内核开发_3_busybox

Linux内核开发_3_busyboxBusybox简介busybox是一个开源项目,集合了Linux的常用命令,且体积非常小,一般被用于嵌入式Linux上。 busybox在编写初期的思想就是简洁,小巧,强悍,并且设计时从系统资源考虑,节省内存,…

React系列教程:9. 空包裹

函数组件 // src/components/Hello1.jsximport { useState } from reactfunction Hello1 (props) {const [ hello1, setHello1 ] = useState(world1)setTimeout(() => {setHello1(world2)}, 2000)return ({/* 两个子…

2025年克拉玛依旅游团权威推荐榜单:新疆旅游/新疆自驾游/新疆赛里木湖旅游线路服务商精选

随着新疆旅游基础设施的完善和旅游资源深度开发,克拉玛依作为石油工业与自然奇观完美结合的目的地,正迎来旅游业的快速增长。根据旅游行业数据显示,2024年克拉玛依市接待游客量同比增长18.5%,其中乌尔禾魔鬼城、黑…

2025年质量好的油压机厂家最新推荐权威榜

2025年质量好的油压机厂家最新推荐权威榜 在工业制造领域,油压机作为核心设备之一,广泛应用于汽车、电子、机械加工等行业。随着技术升级与市场需求的变化,选择一家质量可靠、技术先进的油压机厂家至关重要。本文基…

整体设计 逻辑实用的系统工具 之17 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之1

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

消防监管指挥平台

一、政策驱动:全国消防智慧化升级的号角已吹响 近年来,各级政府密集出台政策推动消防监管数字化。云南提出 “消防安全治理三年计划” ,要求将消防站点、车道等纳入国土空间规划,并建立 跨部门综合监管机制 ,运用…

2025年口碑好的无极绳绞车轮组厂家最新推荐排行榜

2025年口碑好的无极绳绞车轮组厂家最新推荐排行榜 随着矿山、煤矿等行业的快速发展,无极绳绞车轮组作为重要的牵引设备,市场需求持续增长。选择一家技术先进、质量可靠、服务完善的厂家至关重要。本文根据市场调研、…

c#学习_delegate

变量(数据) 以变量名所对应的内存地址为起点的一段内存,这段内存地址中存储的值就是数据;在C#中,用户定义的数据类型,需要先创建对应的数据类型模板,用来确认此数据类型在内存中需要多大的内存空间,再创建此数…

2025年评价高的数据中心展观众登记

2025年评价高的数据中心展观众登记指南 随着全球数字化转型加速,数据中心作为算力基础设施的核心载体,其绿色化、智能化、协同化发展已成为行业焦点。为帮助专业观众高效锁定高价值展会资源,本文基于真实参展商口碑…

心情日记 | 而一切终归于平静

心情日记 | 而一切终归于平静 引 今天看到一个博客,没想到博主是一个学音乐的(看博客内容猜测是) 向那样的自建博客,少不了折腾,也因此拥有自建博客的,一般程序猿居多。 那个博客很“自然”。对随心所欲的去记录…

Ubuntu取消sudo密码验证完整配置

对于正在ubutu开发的人来,每次执行指令都要密码,时间长了会有些狗血 Ubuntu取消sudo密码验证完整配置安全警告:取消sudo密码会降低系统安全性,仅限测试环境使用!# 方法1:完全免密码(高风险) echo yourusername…

2025 橡塑保温源头厂家最新推荐排行榜:绿色环保 + AAA 信用认证企业权威甄选指南橡塑保温/绝热材料/隔热材料保温板厂家推荐

引言 橡塑保温材料在建筑节能、新能源、工业等领域的应用需求持续攀升,但市场产品质量差异显著,导热系数不达标、环保性能不合格等问题频发。为精准筛选优质企业,本次榜单由行业协会联合测评机构重磅发布,基于 3 大…

2025年上海智能运维智算中心展会议论坛

2025年上海智能运维智算中心展会议论坛:五大顶尖参展商权威推荐指南 随着全球数字化进程加速,数据中心与智算中心作为算力基础设施的核心载体,正迎来绿色化、智能化、协同化的产业升级浪潮。2026年6月3日-5日,第1…

搭建AI资讯早报:AiOnly全球大模型服务+N8N自动化工作流实战

​ 一、AiOnly 平台介绍 AiOnly 是一个专业的一站式大模型 API 聚合平台,集成了 GPT、Claude、Gemini、DeepSeek、Qwen 等数十个全球顶尖 AI 模型。平台通过统一的 RESTful API 接口,为用户提供涵盖文本生成、图像创…

2025年靠谱的新中式香氛五金厂家最新权威实力榜

2025年靠谱的新中式香氛五金厂家最新权威实力榜在当今家居装饰与五金制造领域,新中式风格与智能家居的融合正成为市场新宠。香氛五金作为这一趋势下的创新品类,将传统五金的功能性与现代家居的感官体验完美结合,为消…