Linux 系统裁剪笔记

1.什么裁剪?

本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教.

2.原理

大家都知道,操作系统的启动流程是(主要是Linux):POST—>BIOS—>MBR—kernel-->initrd-->sbin/init,

POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的grub这个软件,grub引导系统了,然后启动内核,内核调用initrd来实现最基本的操作系统,

3.接下来,实际操作(所有操作均在虚拟机上实现)

3-1.首先我们得创建一个新的磁盘,来保存我们的grub和内核等关键程序(直接在虚拟机上添加新的磁盘)

笔者这里已经添加好了,就不演示添加的过程了,笔者的地盘分了两个区,分别是100M的主盘,和1G的主盘,名字为

/dev/sdg1和/dev/sdg2,首先在/mnt目录下创建两个文件夹:如图

3-2.挂载/dev/sdg1到/mnt/boot,挂载/dev/sdg2到/mnt/sysroot

3-3.大家知道,启动系统的时候除了硬件方面,首先就是要有引导程序,所以我们把引导程序安装到/mnt/boot

使用命令:grub-install –-root-directory=/mnt /dev/sdg1

3-4.有了引导程序就需要有我们的内核了,没有内核怎么启动啊,但是内核的启动又要依赖initrd(CentOS6),所以我们要把这两个文件都复制过去,使用命令:

cp /boot/vmlinuz-2.6.32-358.el6.x86_64 /mnt/boot/vmlunuz

cp /boot/initramfs-2.6.32-358.el6.x86_64.img /mnt/boot/initramfs.img

3-5.这样一个简单的操作系统的雏形就做好了,但是OS的操作依赖于shell,所以我们得把bash shell复制到/dev/sgd2目录下,所以我们得把/bin/bash以及bash依赖的库复制过去,可以使用ldd `which bash`查看bash依赖的库文件有哪些,笔者这里自己有一个简单的script脚本,就不手动复制了

3-6.接下来要配置grub文件,不然系统怎么找到你的硬件,所以接下来在/mnt/boot/grub下创建一个grub.conf的配置文件,内容如下

3-7.接下来还要在根目录下,也就是挂载在/mnt/sysroot下创建一个proc的文件夹.就可以把这块新的硬盘当成其他系统的启动盘了,我们来试试,新创建一个空的虚拟机不用教了吧.然后添加我们的这块磁盘,就可以开机启动了

3-8.接下来我们来给他添加命令,其实很简单的,只要把命令的所在目录和命令所有依赖的库复制到/mnt/sysroot目录下就行了.这里我用脚本完成,就不演示了,笔者复制了一些常用的命令如:ls

3-9.笔者给这个小系统创建了几个目录了当然是在原主机上添加的,是不是越来越像一个系统了

3-10.好了!系统到这里就差不多了,不过我们还得修修,大家在3-6可以看到,我们的init=/bin/bash,这时候就会有同学问了,有没搞错,Linux系统化初始化不都是调用/sbin/init的么,你怎么调用了/bin/bash,没错,其实这里指向什么就调什么,那我们现在重新让他指向/sbin/init吧,首先在/mnt/sysroot下建立一个init文件,在里面添加如下字符:完成后记得给/sbin/init一个快 执行权限,然后把/mnt/boot/grub/grub.conf中的指向改成init=/sbin/init

3-11.如下图,执行成功了

3-12.最后,我们该给他添加一个网络模块了,哦哦,在3-9步我们发现磁盘还是只读的,所以得重新把他挂载成读写的,如下图:

3-13.终于可以给他加网络模块了,Linux的系统是单内核,但是支持模块化,所以咯,我们来给他加个网络模块吧,我们值需要先把原系统的网络模块复制到我们的微系统中,Linux的模块都在/lib/module/[内核版本号下],我们首先用lspci或者lsmod查看网络模块信息,然后复制到微系统中,如下:

最后安装网络模块,使用命令insmod [path]

好了,整个系统安装完成了!

Linux 系统裁剪笔记

时间: 2024-08-16 10:52:51

Linux 系统裁剪笔记的相关文章

Linux系统裁剪笔记之二insmod

Linux系统裁剪笔记之二 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是

Linux系统裁剪笔记之四busybox

Linux系统裁剪笔记之四busybox 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系

Linux系统裁剪笔记之三user

Linux系统裁剪笔记 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的

Linux系统裁剪笔记

1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是用的grub这个软件,gru

Linux 系统裁剪笔记 3

说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统).以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑. 作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力.下面我对此一一做说明. 参考文档: Linux bootdisk-HOWTO:     http://www.linux.org.tw/CLDP/gb/Bootdisk-HOWTO

Linux 系统裁剪笔记 软盘2

第一步:裁减内核打开终端,输入:cd /usr/src/linux2.4,然后输入make xconfig.现在编译内核正式开始了1.1 "code maturity level options"选项,代表代码的成熟等级,因为这是一个试验的部分,我们不需要,所以关闭它.1.2 "Loadable module support"可加载模块支持可加载模块是指内核代码(kernel code)的一些片断,比如驱动程序,当编译内核的时候它们也被单独编译.因此,这些代码不是内

Linux 系统裁剪笔记 4 (内核配置选项及删改)

在menuconfig中配置,可以对进行Linux内核配置选项及删改.本文介绍详细配置方法.第一部分:全部删除Code maturity level options ---> 代码成熟等级选项[]Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选.第二部分 :除以下选项,其它全部删除General setup-〉System V IPC (IPC:Inter

Linux系统裁剪之四(自定义内核及busybox完成系统定制)

Linux系统裁剪之四(自定义内核及busybox完成系统定制) ·busybox busybox是一个二进制程序,可以模拟实现许许多多的Linux命令,busybox在编译安装完成之后会在我们系统的bin目录下生成一个名为busybox的二进制程序,其它的文件都是该二进制程序的软链接,几乎上百个命令都可以依靠这一个可执行程序来实现,还可以模拟几个shell,可以模拟实现我们Linux操作系统上bin和sbin目录下的很多命令,而且该文件所占的存储空间还非常的小,因此在一些存储设备容量非常小的环

Linux系统学习笔记:序

Linux系统学习笔记:序 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 本人使用的Linux为Ubuntu,主要以<APUE>(第3版)为学习蓝本. 1. Unix/Linux 体系结构 如图: 内核的接口被称为系统调用.公用函数库构建在