今天我带你们作一下简单的linux小系统,属于本身定制的系统哦。linux
实验环境:centos6.9虚拟机系统
shell
首先,咱们在VMware上给虚拟机添加一个新的硬盘,不须要太大的空间,20G就妥妥够了,咱们只是能把系统跑动,有简单的基本命令就好了,而后把硬盘的位置保存在咱们便于找到的地方,我放在了个人文档之中,取名为linux,固然名字是随便起的,而后咱们开启此虚拟机。
vim
因为个人虚拟机开始上面就有两块硬盘,很好分辨出咱们20G的小硬盘,是/dev/sdc,咱们先使用lsblk来查看一下是否硬盘已经被启用
centos
而后咱们一顿分区格式化(基本操做就是fdisk /dev/sdc--->mkfs.ext4 /dev/sdc),这里咱们就分出了两个区,sdc1,sdc2,其中sdc1只有100M,剩下的全都分给了sdc2,以下图bash
而后就是把这两个分区挂载到目录上,就能够在该磁盘上添加东西了,我分别挂载/dev/sdc1--->/mnt/boot/,/dev/sdc2--->/system,而后咱们先针对/mnt/boot/下的目录开始搞事情,咱们知道,咱们的boot下都有什么呢?initramfsxxx,伪根系统,vmlinuzxxxx,linux内核,grub,启动相关的文件。咱们可使用mkinitrd initramfs-`uname -r` `uname -r`生成咱们须要的initramfs文件,而vmlinuz文件呢,在咱们挂载的光盘的下isolinux下也有vmlinuz或者本身手动强制安装在/mnt/boot目录,为省事咱们直接从光盘挂载(mount /dev/sr0 /media)的目录下cp过来,而后就剩grub了,生成grub的方法有不少种,最简单的就是grub-install --root-directory=/mnt /dev/sdc 这种!ide
至此咱们的boot文件基本解决,而后就缺grub.conf这个文件了,而这个配置文件也不是很复杂,就是一些默认开机选项,等待时间自动进入,内核信息,伪根信息
函数
有人会好奇了,那么长一串的UUID,是怎么弄上去?只是利用了咱们vim的一些小技巧,咱们:以后会进入模式,而后r!COMMAND就好了,好比,咱们的UUID,:r! blkid /dev/sdc2而后回车就会自动显示在咱们的屏幕上。spa
而后就是咱们的/system这个目录,这个目录至关于咱们在系统中的根目录,目录中有不少的文件夹命令函数库啥的,而咱们须要从现有的系统中拷贝一些经常使用的命令,和对应的函数库。咱们编写了以一个shell脚原本实现,而这个脚本我是直接拿来同窗的直接用了,代码以下:
blog
#!/bin/baship
#===============================================================
#做者:cheyue
#文件名:copycmd.sh
#版本:
#做用:
#===============================================================
cjlu () {
if [ -f $2 ];then
echo " $1 已存在 "
else
mulu $1 $2
fi
}
mulu () {
mdmulu=$(echo $2 |sed -r "s/(.*\/)[^\/]*$/\1/")
if [ -d $mdmulu ];then
cp $1 $2
else
mkdir -p $mdmulu
cp $1 $2
fi
}
i=0;sys=/system
while [ $i == 0 ];do
while [ $i == 0 ];do
read -p "请输入一个命令: " cmd
which $cmd &>/dev/null
pd=$(echo $?)
if [ $pd -ne 0 ];then
echo "你输入的是内部命令或不是命令。"
read -p "输入no退出不退出回车: " b
if [[ $b =~ n ]];then
exit
fi
else
let i+=1
fi
done
cmdlj=$(which $cmd |tail -1 |grep -o "[^[:space:]]\+")
cjlu $cmdlj $sys$cmdlj
for i in $(ldd $cmdlj |sed -nr "s/.*[[:space:]](\/.*) .*/\1/p");do
cjlu $i $sys$i
done
i=0
done
而后我大约拷贝了,ls、ifconfig、ip、mount、cat、vi、insmod、modprobe、bash、ping.....还有一个网卡驱动模块经过locate e1000查找到的以.ko结尾的文件拷贝到这里。
接着就是完善整个目录体系,mkdir {etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}
检查一下没有问题,咱们就关闭此虚拟机,而后把硬盘放到另外一个空白的虚拟机中,点击使用现有磁盘,开机。
今天分享到此结束,请你们多多指教。