今天我帶你們作一下簡單的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}
檢查一下沒有問題,咱們就關閉此虛擬機,而後把硬盤放到另外一個空白的虛擬機中,點擊使用現有磁盤,開機。
今天分享到此結束,請你們多多指教。