自制简单的小型Linux,自制小型linux系统

做出一个简单的linux系统首先要有内核,驱动,init,ini听他爸,常用指令,库文件,做完后,做一个简单的应用。

【详细步骤】

1首先先在宿主机上添加一块硬盘

2f8d1bb7baf8592ab04dfc8f2bd2d035.png

然后对硬盘进行分区

[root@localhost ~]# fdisk /dev/sdb

n添加p主分区

9fee895dd3f02ce13eaaa4d9b7119443.png

查看

944f7f16e23fc1b93ee09f3308d79848.png

做标示

做可引导

0b7abcdff8e0b894c76c520a97232ddf.png

9630995495e9d09a228859ad97ae2030.png

066e2fa60e25bb671f417ccbbd623277.png

w保存退出

前面两分区格式化

[root@localhost ~]# mkfs -t ext3 /dev/sdb1

[root@localhost ~]# mkfs -t ext3 /dev/sdb2

建立挂载点

[root@localhost boot]# mkdir /mnt/boot

[root@localhost boot]# mkdir /mnt/boot

挂载

[root@localhost boot]# mount /dev/sdb1 /mnt/boot

[root@localhost boot]# mount /dev/sdb2 /mnt/sysroot

建grub第二阶段

[root@localhost boot]# grub-install  --root-directory=/mnt/ /dev/sdb

查看grub

[root@localhost boot]# ll /mnt/boot/grub/

a8c103da9410cac30fa905f3aa1397de.png

发现没有grub, 接下来建第一阶段,手工建grub

grub> root (hd1,0)

grub> setup (hd1)

f49cf268f07728d330db2453449e758e.png

grub第一阶段做完,然后去编写grub

首先拷贝内核和驱动

[root@localhost grub]# cp /boot/vmlinuz-2.6.18-164.el5  /mnt/boot/

驱动

建个文件夹

mkdir abc

[root@localhost abc]# zcat /boot/initrd-2.6.18-164.el5.img  |cpio -id

ll

377909141080efb816f653d81d4df87a.png

921cd6ee86174dbe67c1b4dd9409b96a.png

vi init

93行禁用加载卷标的没用

95 行sda2

03e2a0e8ddde4a32ec3e8178da64589f.png

打包

[root@localhost abc]# find . |cpio -o -H newc --quiet |gzip -9 -n >/mnt/boot/initrd.gz

e308cd4a4c229274c981b5066d35c35d.png

[root@localhost boot]# cd /mnt/boot/

[root@localhost boot]# cd grub/

[root@localhost grub]# vi grub.conf

default=0

timeout=5

title redhat enterprise linux5.4

root (hd0,0)

kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/sda2 quiet

initrd /initrd.gz

一阶段内核驱动都有做init

在根分区建文件夹

[root@localhost sysroot]# mkdir bin boot dev etc home lib media mnt misc net opt proc root sbin selinux srv sys tftpboot tmp usr var

f4d89b5a25e4ce9602fd263fc8834ded.png

[root@localhost sysroot]# mkdir usr/bin

[root@localhost sysroot]# mkdir usr/sbin

[root@localhost sysroot]#  mkdir etc/rc.d

拷贝原init到第二块硬盘应为有很多库文件,所以编写一个脚本

df504f27cd02554956a46449133c006f.png

[root@localhost sysroot]# cp /sbin/init /mnt/sysroot/sbin

拷贝库文件太多所以编写一个脚本

#!/bin/bash

while [ true ];do

read -p "A COMMAND " COMMAND

COMMANDSTRING=`which $COMMAND|tail -1`

COMMANDPATH=${COMMANDSTRING%/*}

COMMANDNAME=${COMMANDSTRING##*/}

/bin/cp -f $COMMANDPATH/$COMMANDNAME /mnt/sysroot$COMMANDPATH

for i in `/usr/bin/ldd $COMMANDSTRING`;do

if        echo $i |grep /lib &>/dev/null; then

LIBSTRING=`echo $i |grep /lib `

LIBNAME=${LIBSTRING##*/}

LIBPATH=${LIBSTRING%/*}

/bin/cp -f $LIBPATH/$LIBNAME  /mnt/sysroot$LIBPATH

fi

done

done

~

1c81011b4c652043597241dc21643808.png

35e440b727184889df15723b09625b93.png

init建好了,下面建表格

[root@localhost ~]# cd /mnt/sysroot/etc

[root@localhost etc]# vi /etc/inittab

c8cfd767e908305bafc2c6c32510fdf4.png

[root@localhost etc]# vi /inittab

db635e2d1a3a2d63a217c54d11bc4882.png

进入rc.d 建rc.sysinit

[root@localhost etc]# cd rc.d

[root@localhost rc.d]# vi rc.sysinit

#!/bin/bash

echo -e "\033[31m my linux \033[0m"

/bin/bash

~

~

可执行

[root@localhost rc.d]# chmod a+x rc.sysinit

[root@localhost rc.d]# sync同步

然后见一个空壳虚拟机,

f9ff9ab984ce8bda4aa2ab1619b438cb.png

121c8a9ba6077c2bc64ef4a8f56a9c84.png

37768f0efc83667a8a21646e04e25308.png

cb9fbd9e0a8fb5ffc00ff60ee10a905d.png

71f08ee3baa9fcfa9560cb5fb2e60c73.png

0626ac76bfcc96e52b1fa83f8bee7d78.png

31e16b7d37122eeb7ac62bd59f4376ab.png

00aa7c101321459dab488f5c296e0593.png

因为现在0,6 级别不能用所以就编写[root@localhost ~]# cd /mnt/sysroot/etc下的inittab

fdc78fce2094a5779a54213f0688f58a.png

编写sysshutdown,sysreboot 脚本

[root@localhost rc.d]# vi sysshutdown

#!/bin/bash

exec /sbin/halt -p

~

[root@localhost rc.d]# vi sysreboot

#!/bin/bash

exec /sbin/reboot -f

~

改变权限

[root@localhost rc.d]# chmod a+x sys*

9b6805ffe82ab3743c01a6398a9d061e.png

sync同步

然后测试机器

7882ade438d6116dd25369394cc94bdc.png

0f42f987f5e6781b36ca2d5e2d0bef57.png

可知机器成功

当我们用什么服时只需在宿主机拷贝即可,这样我们以后工作时可以自己做linux,可以避开linux的多余功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值