LINUX 做一个自己的精简版LINUX   ERIKXUE 薛忠权

今天要给大家带来的是精简版系统,更深侧次了解linux的工作原理

一、精简前的准备工作

  1.先给虚拟机创建一个大约20G的虚拟硬盘(我使用的是VMvare,在虚拟机界面直接创建的。)

  2.转换命令的一个脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
#
target= /mnt/sysroot
clearCmd() {
if which $cmd &> /dev/null ; then
cmdPath=` which --skip- alias $cmd`
else
echo "No such command"
return 5
fi
}
cmdCopy() {
cmdDir=` dirname $1`
[ -d ${target}${cmdDir} ] || mkdir -p ${target}${cmdDir}
[ -f ${target}${1} ] || cp $1 ${target}${cmdDir}
}
libCopy() {
for lib in `ldd $1 | grep -o "/[^[:space:]]\{1,\}" `; do
libDir=` dirname $lib`
[ -d ${target}${libDir} ] || mkdir -p ${target}${libDir}
[ -f ${target}${lib} ] || cp $lib ${target}${libDir}
done
}
while true ; do
read -p "Enter a command: " cmd
if [ "$cmd" == 'quit' ] ; then
echo "quit"
exit 0
fi
clearCmd $cmd
[ $? - eq 5 ] && continue
cmdCopy $cmdPath

二、开始裁剪

1.创建文件分区并挂载

      把创建大小为20G的磁盘分区,分成500M和10G

   /dev/sdb1 :500M用来装引导程序

      /dev/sdb2 :10G是用来安装根文件系统

      创建目录/mnt/boot,/mnt/sysroot

# mkdir /mnt/{boot,sysroot}

      挂载sdb1至boot

# mount /dev/sdb1 /mnt/boot

      挂载sdb2至sysroot

# mount /dev/sdb2 /mnt/sysroot

2.安装引导文件grub

      如果像开机运行自己的linux必须,安装引导文件,安装引导文件常见有两个命令

# setup

# grub-install

      相比较来说setup比较简单一点,不过在这里我们不能偷懒!!!

# grub-install --root-directory=/mnt /dev/sdb

3.复制内核和init文件

内核和init一般都在/boot目录下

1
2
3
[root@147 grub] # ls /boot
config-2.6.32-358.el6.x86_64  grub                                 lost+found                        System.map-2.6.32-358.el6.x86_64
efi                           initramfs-2.6.32-358.el6.x86_64.img  symvers-2.6.32-358.el6.x86_64.gz  vmlinuz-2.6.32-358.el6.x86_64

让我们把内核和init复制到我们/mnt/boot目录下并改名

1
2
[root@147 grub] # cp /boot/vmlinuz-2.6.32-358.el6.x86_64 /mnt/boot/vmlinuz
[root@147 grub] # cp /boot/initramfs-2.6.32-358.el6.x86_64.img /mnt/boot/init

复制完之后,在/mnt/boot下创建grub的配置文件,并修改信息

1
2
3
4
5
6
7
[root@147 grub] # vim grub.conf
default=0
timeout=5
title   wang linux
root (hd0,0)
kernel /vmlinuz ro root= /dev/sda2 quiet selinux=0 init= /bin/bash
initrd /init

4.创建文件系统文件夹和命令

1
[root@147 sysroot] # mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}

创建完成后,开始复制命令和其库文件,在本文开头处有移动命令的脚本

# sh command.sh

  然后输入各种你需要的命令,就会自动转到/mnt/sysroot/bin下,注意记着输入bash

5.测试安装情况

wKiom1McdTqxH73MAAD1vpAdEpU967.jpg

6.试试输入命令

wKiom1McdWrzf7wvAADWZzeHSP4483.jpg


ok!!!。大功告成!


你可能感兴趣的:(linux,command,工作原理,target,精简版)