当前位置 : 主页 > 操作系统 > centos >

自制简易LINUX

来源:互联网 收集:自由互联 发布时间:2022-06-20
自制小型 linux 系统 Linux 开机流程 开机自检:程序 post MBR 引导:硬盘上的 mbr 主引导记录由 bootloader 446 字节( grub 引导程序第一个阶段读内核)、分区表( 64 字节)、 id 标示 magic (

 

自制小型linux系统

Linux开机流程

自制简易LINUX_linux

开机自检:程序post

MBR引导:硬盘上的mbr 主引导记录由bootloader 446字节(grub引导程序第一个阶段读内核)、分区表(64字节)、id标示magic2字节)

 

GRUB菜单:在硬盘里/boot/grubgrub第二个阶段,引导到硬盘,选择要加载的操作系统

 

加载内核(kernel):加载操作系统的内核并运行init进程

 

运行init进程:需要一个inittab

Inittab中各个级别的配置文件对应的初始化脚本rc.sysinit

Rc.sysinit脚本:(初始化脚本)

(功能:设置主机名、启动网络功能、设置时钟、设置键盘)

 

选择级别后传一个数字传给rc脚本进入/etc/rc0.d/* /etc/rc1.d/* /etc/rc2.d/* /etc/rc3.d/* /etc/rc4.d/* /etc/rc5.d/* /etc/rc6.d/*中执行相应脚本,带k的按顺序杀死带s的按顺序启动。

 

执行开机脚本/etc/rc.d/rc.local

通过mingetty进程启动一些终端也就是开机啦

 

    通过宿主机来建立自制的linux小系统(我这里用vm

*创建一块儿新的硬盘把硬盘挂到完整的宿主机上并对硬盘分区并从完整宿主机上整理相应的内核文件和应用文件,等一切所需准备完成时把硬盘移动到缺少硬盘的虚拟机上进行测试。

*对新的硬盘建立分区:先建立三个主分区sdb1100m   sdb2:1g   sdb3:500m

建立完主分区后把sdb3类型改为82swap分区

(图为各个分区硬盘大小20G

自制简易LINUX_linux_02

*对磁盘进行格式化mkfs –t ext3 /dev/sdb1    mkfs  -t  ext3  /dev/sdb2

/dev/sdb1作为引导分区/dev/sdb2作为根分区

*对磁盘进行挂载

自制简易LINUX_自制linux_03

*构建MBR:即构建grub,第一阶段在mbr内部里第二阶段在硬盘里(自动找到/mnt/boot、指向/dev/sdb而不是某个分区)

自制简易LINUX_linux_04

*找到boot目录后自动创建grub

自制简易LINUX_自制linux_05

*Grub缺少一个菜单建立grub.conf文件(里面是内核文件和一些驱动和一些开机默认项引导项)

*建立菜单前先把宿主机器的内核拷贝过来

自制简易LINUX_linux_06

*由于宿主机和新建硬盘的不同,有关驱动的initrd-2.6.18-164.e15.img内的信息也会不同,所以我们应该首先更改该文件的信息。自制简易LINUX_自制linux_07

*展开后的文件里的init文件在启动中是会被执行的,应更改该文件的内部信息

自制简易LINUX_linux_08

*因为我们创建的新硬盘中swap分区并没有格式化不能被应用所以把87行注释掉,更改完成后对文件进行重新打包,并把打包后的文件拷到/mnt/boot/

自制简易LINUX_linux_09

*前几个阶段结束后,写一个grub菜单

自制简易LINUX_自制linux_10

*接下来是init进程:在新建硬盘sysroot目录下创建所需要的目录并把每个目录的配置内容以及所要用的库拷贝过去

自制简易LINUX_自制linux_11

*inittab

*把宿主机/etc/inittab中的21  si::sysinit:/etc/rc.d/rc.sysint行拷贝到/mnt/sysroot/etc/inittab

*在新建rc.d中没有rc.Sysinit所以我们要自己创建,rc.sysinit是一个shell脚本

*由于要运行shell文件应加入bash的配置

自制简易LINUX_linux_12

*为了方便把库加入到每个指令文件内,编写一个cp.sh

自制简易LINUX_自制linux_13

基本指令链接库导入之后就可以进入系统进行简单操作

自制简易LINUX_自制linux_14

*/mnt/sysroot/etc/inittab文件下修改内容实现init 0  init  6的应用

自制简易LINUX_linux_15

自制简易LINUX_自制linux_16

自制简易LINUX_linux_17

*Init  6                                                                          自制简易LINUX_linux_18 自制简易LINUX_自制linux_19

自制简易LINUX_linux_20

*启动界面添加背景图片/mnt/boot/grub/grub.conf文件下

图片大小640*480 14位色 格式xmp.gz

安装yum 修改/etc/yum.repos.d/rhel-debuginfo.repo

自制简易LINUX_linux_21 自制简易LINUX_自制linux_22

安装完成后在图形化界面下运行gimp可以对图片进行修改

自制简易LINUX_linux_23

自制简易LINUX_自制linux_24

*添加网络功能

模块:

自制简易LINUX_自制linux_25

*Eth0只是个别名,真正叫pcnet

*网卡pcnet32

*Miipcnet32所依赖

*Modinfo查看模块儿详细信息

*Rmmod模块儿卸载

*Modprobe 名称  加模块儿(inmod 必须要加完整路径)自制简易LINUX_自制linux_26

*在新硬盘里建放模块儿的文件并把网络模块拷贝过去

自制简易LINUX_自制linux_27          *由于pcnet32依赖于mii所以要把mii拷贝过来

自制简易LINUX_linux_28          *调用模块

自制简易LINUX_linux_29 

*把要用的pcnet32.komii.Ko模块儿拷贝过来,,编辑rc.sysinit来调用模块儿并未网卡配上地址

自制简易LINUX_linux_30                                                                         *已经实现网络功能自制简易LINUX_自制linux_31

 *实现ftp功能:                                                                                                                                    *安装ftp服务自制简易LINUX_linux_32

 *加入vsftpd指令

自制简易LINUX_自制linux_33

*把宿主机内的vsftpd下的文件拷贝到新建硬盘相应位置去,在相对应的var目录下建立ftp/pub

自制简易LINUX_自制linux_34

*因为ftp安装完之后会形成一个ftp用户,用来登录ftp,需要把该ftp账号拷贝过来

自制简易LINUX_自制linux_35

*由于登陆nameid需要一种nsswhich机制,机制需要nesswitch.conf文件,conf文件依赖于几个链接库,这里我们只做个别链接库的拷贝

自制简易LINUX_自制linux_36

*ftp需要有一个日志log目录所以要么创建log要么禁用掉

进入/mnt/sysroot/etc/vsftd/vsftpd.conf3956有关log的句子禁用掉

自制简易LINUX_linux_37 自制简易LINUX_自制linux_38                                                                                                 *再把userlist那一行禁用掉自制简易LINUX_linux_39                                                                                                                    *手工创建一个/mnt/sysroot/etc/usr/share/empty目录自制简易LINUX_自制linux_40                                               *实现ftp

自制简易LINUX_linux_41 

简单功能已经能够实现,如需更多功能还得大家自己慢慢研究学习!!!

 

网友评论