完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
提到制作Linux,大家都能想到如雷贯耳、大名鼎鼎的Linux from scratch。但Linux from scratch的复杂性不是普通人能轻易掌握的,对于初学者来说,任何步骤出现不一致,会让初学者遇到挫拆,攻破LFS的信心越来越低。
本文教大家制作一个比LFS更简单的Linux系统,只有Grub、Linux kernel和最小的根文件系统initrd,原理和过程都非常简单。大家可以在这个基础的Linux之上,再增加其它的功能,逐步走向LFS。 制作Linux,首先该系统是放到磁盘上的,所以涉及启动引导操作系统的知识,我们使用著名的Grub引导程序来实现,Grub执行之后,由它来加载OS kernel和文件系统。 对于OS kernel,我们利用比较新版本的kernel代码来编译即可,而根文件系统,我们使用一个工具来生成最小的initrd。 整个制作过程,首先都有一个磁盘,这个磁盘可以是软盘,可以是USB,也可以是SSD磁盘或者HDD。但考虑到很多朋友身边没有这些东西,我们使用Qemu来试验,原理与直实硬件完全一样,唯一不同的是Qemu的磁盘可以用Host OS的文件来代替。 在制作过程中,难免会无法理解纷繁复杂的操作过程,到底为什么需要这样操作,这需要对计算启动过程的原理有些基本的认识。计算机是如何启动的,这个问题在网上可以搜到大量文章,可以参考阮一峰大牛写的《计算机是如何启动的?》,我将关键过程列在这里:
本文使用Qemu来验证,所以需要Qemu模拟的硬盘(实际是Linux的一个磁盘文件),Qemu提供BIOS功能,所以只需要安装Bootloader, OS kernel和initrd,各组件选用如下表所示: 组件 软件 版本 Bootloader Grub 2.00 OS kernel linux kernel 4.9 initrd mkinitramfs xx下面是制作过程是涉及软件的版本 软件 版本 构建方式 Ubuntu 12.04 直接安装 grub-install 2.00~rc1 源码编译安装 qemu 2.10.0 源码编译安装 fdisk 2.20.1 直接安装 losetup xxx 直接安装步骤1:创建64M大小的磁盘文件 使用dd命令,创建一个64M大小的文件,命令如下: dd if=/dev/zero of=disk.img bs=1M count=64运行过程如图1所示: 图1:dd命令运行过程 步骤2:对磁盘分区,整个磁盘只建一个分区 使用fdisk命令对disk.img磁盘进行分区,使用n命令创建新的、主分区,该分区为整个磁盘大小,命令如下: fdisk disk.imgfdisk命令交互过程如图2所示: 图2:fdisk命令运行过程
|
|
只有小组成员才能发言,加入小组>>
TuyaOpen开源 + DshanPi-A1(RK3576)开发板的Tuya IoT平台接入与AI大模型整合方案(笔记)
1322 浏览 0 评论
「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享
5240 浏览 0 评论
87851 浏览 0 评论
【高手问答】如何做到精通linux技术?资深工程师带你突破难点
5304 浏览 2 评论
3996 浏览 2 评论
2326浏览 1评论
SiRider S1芯擎工业开发板测评+1.防止黑客入侵通信监控系统(PSA)
1657浏览 0评论
TuyaOpen开源 + DshanPi-A1(RK3576)开发板的Tuya IoT平台接入与AI大模型整合方案(笔记)
1325浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:22 , Processed in 0.569057 second(s), Total 70, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖