公司借Linux证书,借鸡生蛋

阅读: 评论:0

公司借Linux证书,借鸡生蛋

公司借Linux证书,借鸡生蛋

借鸡生蛋--巧做Linux PE系统

本篇以虚拟机为主要实验对象,实验需要提前建立好一个正常的Linux系统,还有一个新的系统(不需要安装Linux).

一、准备工作

1.添加新硬盘

使用vmware,在正常的Linux系统中添加一块新的硬盘.启动Linux系统.

2.挂载新硬盘

使用fdisk -l 发现多出来一块硬盘,(/dev/sdb).之后使用fdisk /dev/sdb给/dev/sdb创建两个主分区,(/dev/sdb1和/dev/sdb2分别为100M和200M)并使用a改变/dev/sdb1,使其称为boot.

接下来格式化后,再将/dev/sdb1挂载在/mnt/boot/,将/dev/sdb2挂载在/mnt/sysroot/.

二、制作过程

1.做Grub

grub-install --root-directory=/mnt(此处不用详细填写,系统会自动去找) /dev/sdb

cp /boot/vmli ...  /mnt/boot/

cp /boot/initrd    /mnt/boot/

cd /mnt/boot

vim f

default=0

timeout=5

title LinuxPE

root(hd0,0)

kernel /vmlinuz.. ro root=/dev/sda2 rhgb quiet

initrd /initrd-2. (此处不需要手工输入,使用.! ls /mnt/boot/读取进来文件)

2.做init进程

which init查找init

cd /mnt/sysroot/

mkdir dev tmp etc proc sys lib sbin bin usr

chmod o+wt tmp

cp /sbin/init ./sbin/

ldd /sbin/init (查看init所依赖的库)

cp /lib/libsepol.so.1 /mnt/sysroot/lib

cp /lib/libselinux.so.1 /mnt/sysroot/lib

cp /lib/ libc.so.6  /mnt/sysroot/lib

cp /lib/ libl.so.2  /mnt/sysroot/lib

cp /lib/ld-linux.so.2  /mnt/sysroot/lib

(以上所依赖的库名称不需要手工输入,可以使用脚本自动处理)

3.做bash

which bash查找bash

cp /bin/bash /mnt/sysroot/bin/

ldd /bin/bash(查找bash所依赖的库)

cp /lib/libtermcap.so.2 /mnt/sysroot/lib

4.做Inittab

cd /mnt/sysroot/etc

cp /etc/inittab ./

vim inittab

只需要 id 3 default

si::....

l3 .......这几行

可以使用.,$(d)删除掉剩余的内容

5.做rc.sysinit

mkdir /mnt/sysroot/etc/rc.d

vim /mnt/sysroot/etc/rc.d/rc.sysiniit

vim /mnt/rc.d/rc.sys

#!/bin/bash:`:

/bin/bash(主要是给用户一个shell)

chmod a+x rc.sysinit

执行sync同步,并且要多次执行

6.添加一些特殊的指令(如ls)

基本上,做完以上步骤就可以使用了,但是会发现新的系统,没有一些指令.因此,可以添加一些指令,更加便于操作,限于篇幅,仅仅演示添加ls指令.

which ls(查找ls指令)

cp /bin/ls /mt/sysroot/bin/

ldd /bin/ls (查找ls指令所依赖的库)

cd /mnt/sysroot/lib/

cp /lib/librt.so.1   ./

cp /lib/libacl.so.1   ./

cp /lib/libpthread.so.0   ./

cp /lib/libattr.so.1   ./

cp /lib/libdl.so.2    ./

Sync多次执行

三、测试过程

这样,制作就已经完成了,接下来,将Linux系统关闭或者暂停(如果不这样,会影响接下来的实验).将新的系统的硬盘替换为新添加的硬盘,然后启动系统.这样,就可以进入新的系统了.

四、其它问题

通过以上步骤,会发现步骤很繁琐,而且容易出错,因此可以考虑将制作过程使用脚本来完成.

#!/bin/bash

#####How to make an Operating System###

###step1:make the grub

grub-install --root-directory=/mnt /dev/sdb &>/root/rubbish

echo "Ok!the grub has been done!"

###step2:make the kernel

cp -f /boot/initrd-2.6.18-164.e15.img /mnt/boot/

cp -f /boot/vmlinuz-2.6.18-164.e15 /mnt/boot/

#need to make the file f

touch /mnt/boot/f

echo "default=0">/mnt/boot/f

echo"timeout=5">>/mnt/boot/f

echo"title Linux_PE">>/mnt/boot/f

echo"Kernel /vmlinuz-2.6.18-164.e15 ro root=/dev/sda2 rhgb quiet ">>/mnt/boot/f

echo"initrd /initrd-2.6.18-164.e15.img">>/mnt/boot/f

echo"Ok!The kerel has been done!"

###step3:make the init

cd /mnt/sysroot/

mkdir dev tmp etc proc sys lib bin sbin usr &>~/rubbish

chmod o+wt tmp

##copy the init files

cp /sbin/init /mnt/sysroot/sbin/

ldd /sbin/init|cut -d= -f1 -s >/root/tempfile

while read LINE;do

cp /lib/$LINE /mnt/sysroot/lib &>~/rubbish

done 

cp /lib/ld-linux.so2 /mnt/sysroot/lib

echo"Ok!the init has been done!"

###step4:make the bash

cp /bin/bash /mnt/sysroot/bin/

ldd /bin/bash |cut -d= -f1 -s >/root/tempfile

while read LINE;do

cp /lib/$LINE /mnt/sysroot/lib &>~/rubbish

done 

echo "Ok!The bash has been done!"

###step5:make the inittab

touch /mnt/sysroot/etc/inittab &>~/rubbish

grep "id:3"/etc/inittab >/mnt/sysroot/etc/inittab

grep "si::"/etc/inittab >>/mnt/sysroot/etc/inittab

grep "l3:"/etc/inittab >>/mnt/sysroot/etc/inittab

echo"Ok!The initatab has been done!"

###step6:make the bash

mkdir /mnt/sysroot/etc/rc.d &>~/rubbish

touch /mnt/sysroot/etc/rc.d/rc.sysinit &>~/rubbish

ehco "#!/bin/bash">/mnt/sysroot/etc/rc.d/rc.sysinit

echo "/bin/bash">>/mnt/sysroot/etc/rc.d/rc.sysinit

chmod a+x /mnt/sysroot/etc/rc.d/rc.sysinit

##sysnc serverl times

let I=1

for I in {1..10};do

sysnc

done

echo "Ok!The bash has been done!"

###step7:make the other oder:such as ls

cp /bin/ls /mnt/sysroot/bin/

ldd /bin/ls |cut -d= -f1 -s >~/tempfile

while read LINE;do

cp /lib/$LINE /mnt/sysroot/bin/ &>~/rubbish

done 

echo "alias ls=`ls --color=tty`">>/mnt/sysroot/etc/rc.d/rc.sysinit

let P=1

for P in {1..10};do

sync

done

echo "Great!Job has been finished!"

本文发布于:2024-02-05 00:00:32,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170719392460956.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:借鸡生蛋   证书   公司   Linux
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23