歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核管理--之定制一個屬於自己的小型系統

Linux內核管理--之定制一個屬於自己的小型系統

日期:2017/2/28 14:35:22   编辑:Linux內核

一、linux系統啟動流程介紹

我們來了解下linux系統的啟動流程:

首先linux要通過POST自檢過程(BIOS)-->如果想要做多塊啟動盤的話,還需要在bios中選擇啟動磁盤-->引導MBR(bootloader引導程序)-->加載initrd文件-->執行進程init-->顯示歡迎界面;

需要注意:

在linux的啟動流程中,加載內核文件時還需要借助別外兩個文件:

1)initrd,CentOS5上是用內存模擬的磁盤設備;

2)initramfs,CentOS6上是用內存模擬的文件系統;

在啟程的流程中,init主要通過調用/etc/inittab這個配置文件,然後再去執行/etc/rc.d/rc.sysinit的系統初始化腳本.

二、制作的詳細步驟

在宿主機上添加塊新磁盤,並將其命名:1111111111.vmdk,這是宿主機上的第二塊磁盤(/dev/sdb),而等到時候掛載到目標主機的時候,因為那裡只有這宿主機上(/dev/sdb)的這一塊磁盤,所以在目標主機上應該是/dev/sda這個名字,這是必須要清楚的。弄清楚之後在來做其它操作,第一個分區500M,用來裝引導程序;第二個分區15G,用來裝根文件系統。格式化完成後要將其掛載,將/dev/sdb1掛載到/mnt/boot下,將、dev/sda2掛載到/mnt/sysroot下.

1).給目標機磁盤分區:

2).將分區格式化:

1 2 [root@xiaomazi ~]# mke2fs -t ext4 /dev/sdb1 [root@xiaomazi ~]# mke2fs -t ext4 /dev/sdb2

3).創建掛載目錄並將其掛載至/mnt/sysroot、/mnt/boot目錄下:

4). 安裝grub至目標磁盤(注意:boot在哪裡就在哪裡安裝grub.):

5). 復制內核和initrd文件:

6). 創建目標主機的根文件系統:

7).接著去移植bash、ls等命令至目標主機的根文件系統:

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 33 34 35 [root@xiaomazi sysroot]# vim bincp.sh #!/bin/bash # target=/mnt/sysroot clearCmd() { ifwhich $cmd &> /dev/null; then cmdPath=`which--skip-alias$cmd` else echo"No such command" return5 fi } cmdCopy() { cmdDir=`dirname$1` [ -d ${target}${cmdDir} ] || mkdir-p ${target}${cmdDir} [ -f ${target}${1} ] || cp$1 ${target}${cmdDir} } libCopy() { forlib 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 } whiletrue; do read-p "Enter a command: "cmd if[ "$cmd"== 'quit'] ;then echo"quit" exit0 fi clearCmd $cmd [$? -eq5 ] && continue cmdCopy $cmdPath libCopy $cmdPath done

執行腳本:

1 2 3 4 5 6 7 [root@xiaomazi ~]# chmod +x bincp.sh 給執行權限 [root@xiaomazi ~]# sh -n bincp.sh 測試語法錯誤 [root@xiaomazi ~]# sh bincp.sh Enter a command: bash給目標機一個bash命令 Enter a command: quit quit [root@xiaomazi ~]#

8).使用tree /mnt/sysroot 命令,查看庫文件等文件是否存在:

I.執行bincp.sh腳本給目標機可執行命令:ls,cat,vi,cp,mv,mkdir,touch.

II.給bash創建個軟連接:

Copyright © Linux教程網 All Rights Reserved