手动构建一个小linux系统

简介:

手动构建一个小linux系统

实验环境VMware 6.02

系统REHL5.4 (宿主机)

我们在这个系统上添加一块新硬盘来作为新系统的存储盘,将硬盘分为为两个区,一个用来存放系统内核,另一个用来存放init命令和bash等二进制文件。

具体操作过程如下:

添加一块硬盘,用fdisk –l 查看结果:。nit方

clip_image002

对新添加的硬盘进行分区:

clip_image004

clip_image006

clip_image008

分为sdb1,sdb2两个区,使用partprobe命令让内核重读分区表,用cat /proc/partitions查看分区情况,没问题吧!

clip_image010clip_image012

将sdb1,sdb2格式化为ext3文件系统:

clip_image014

clip_image016

clip_image018

下面开始挂载分区,我们选择在/mnt目录下,这个目录可以是任意的。在/mnt目录下创建的两个挂载点/boot (放置grub 的目录)、/sysroot(系统根分区,)。

clip_image020

在sdb分区上装grub,默认就装在/mnt/boot/目录下。

clip_image022

查看boot目录下的文件,有grub了吧

clip_image024

看看grub目录下的配置配置文件,发现了没?缺了一个grub.conf主配置文件,这个我待会儿再创建。

clip_image026

把系统的内核拷贝到当前的boot目录下,重命名为vmlinuz。注意是在boot目录下,这里我犯了一个错误,直接拷到grub目录下,不过在后面又将vmlinuz挪到boot下了。

clip_image028

还需要initrd文件吧?我们没有,需要将系统的initrd修改后拷贝过来。注意系统的initrd不能直接使用,需要修改。我们在tmp目录下创建一个initrd目录,将系统的initrd拷过来展开。

clip_image030

我们查看一下init文件,用不到的行删去或者注释掉都行。

clip_image032

我们再查看一下lib目录下的文件,将用不到的统统删去,如图:

clip_image034

将修改后initrd重新封装输出到/mnt/boot/initrd.gz.。

clip_image036

查看boot目录,看!我们的内核和initrd文件都准备好了吧!这样我们就可以编辑grub.conf文件了。

clip_image038

编辑完成后,把数据从内存中同步到硬盘上,查看grub.conf的内容,就那么简单几句话

clip_image040

下面开始准备我们的根文件系统,在sysroot目录下创建文件目录

clip_image042

将系统/sbin/bin目录下的init文件拷贝到当前的init目录下

将系统/bin/bash目录下的bash文件拷贝到当前的bin目录下

clip_image044

查看一下当前目录

clip_image046

同时还要把两个文件所依赖的库文件拷贝到当前的lib目录下。

使用ldd查看文件所以依赖的库

clip_image048

将库文件拷贝过来

clip_image050

clip_image052

init要想真正运行,我们还需要一个配置文件inittab,这里我们在当前的etc目录下创建一个inittab文件并编辑。

clip_image054

发现了没?用来做系统初始化的rc.sysinit文件没有,我们依然需要动手创建。创建完成后,需要赋予其执行的权限,然后再同步一下。

clip_image056

这样,一个简单的小linux就完成了。将宿主机挂起,我们新建一个虚拟机使用刚刚配置完成的这块硬盘试一下,看!已经成功启动:

clip_image058

当然,这个小系统仅仅是能够正常启动,不能做任何事情。

我们来添加一个ls命令吧,把系统/bin下ls命令所依赖的库文件拷贝到/mnt/sysroot/lib目录下

clip_image060

clip_image062

重新试一下,看!ls命令能够正常运行了吧!

clip_image064

当然,这个linux小系统仅仅是通过拷贝的方式完成了正常的启动功能,尚不能做任何事情,需要我们在后面逐步去完善。










本文转自 490999122 51CTO博客,原文链接:http://blog.51cto.com/lyp0909/474617,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
25 5
linux系统服务二!
|
7天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
25 3
linux系统服务!!!
|
1天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
10 5
|
1天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
11 3
|
1天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####
|
7天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
25 2
|
8天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
11天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
58 3
|
12天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
14天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
下一篇
无影云桌面