歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

如何制作精簡linux系統

我們都知道linux系統具有無比強大的功能,但是有時候功能強大並不一定是我們想要的,有些情況下我們想要的恰恰就是一個簡潔、消耗資源少、能運行一些基本的功能和基本指令的系統,這時候就需要我們手動來制作一個精簡的linux系統。

如下圖所示:我們有一台待安裝的主機(主機B)和一台功能完備的主機(主機A),首先把待安裝主機的硬盤拆下來放到主機A上,然後在主機A把內核、驅動、進程、庫文件等一些系統必備的東西放到空的硬盤上做成系統硬盤,最後把做好的硬盤放到主機B上直接啟動就行了。

下面我們在虛擬機上來模擬這個實驗:

1、在宿主機上創建一個空的硬盤

2、打開主機A進行硬盤分區

(1)利用fdisk /dev/adb對空的硬盤進行分區,分區大小分別為主分區一(作為引導分區)100M、主分區二(作為根分區)1G(根分區不能太小)和主分區三(作為虛擬分區)500M

(2)對分區做標識

(3)分別對第一第二分區做格式化

(4)新建兩個掛載點,把新硬盤的前兩個分區分別掛載到兩個掛載點上

3、為新硬盤創建grub引導程序引導的第一、第二階段建

(1)創建grub引導程序引導的第二階段,如下所示,參數DIR既是指/mnt   /dev/adb

如下圖所示在boot目錄下生成了grub菜單,進入grub目錄查看,除了grub.conf的配置文件沒有外其他說明文件和描述文件都有,這裡需要說明的是配置文件需要我們手動創建。

(2)創建grub引導第一階段

首先輸入grub,然後開始創建

4、拷貝內核

5、拷貝驅動

(1)在家目錄下創建一個臨時工作空間,在該目錄下把主機A的驅動解壓縮到該目錄

在temp目錄下有些比較重要的目錄或文件,比如bin(放置庫文件)、init(init程序調用的相關信息)。下面我們來查看一下init文件,如圖所示,我們要根據實際情況做相應的調整。

(2)把temp目錄下的文件重新打包成一個文件,並輸送到新硬盤的引導分區下

6、切換到/mnt/boot/grub目錄,創建grub.conf文件,文件內容如下

7、在新硬盤的根分區下建設文件系統(下面建設的是必要的目錄,可根據實際情況設置哦)

8、拷貝可執行程序和其所依賴的庫文件

(1)這裡我們先拷貝init的可執行程序和所依賴的庫

首先查看可執行文件的具體位置,再進行拷貝

然後進行查看庫文件並拷貝

如上圖所示,凡是帶有/lib目錄的都要拷貝

(2)根據上邊的方法再分別把bash、ls、cat進行拷貝

9、配置inittab文件

(1)切換到/mnt/sysroot/etc目錄下,建個inittab文件。

(2)打開/etc/inittab文件

(3)因為不需要太多的功能,在inittab文件裡我們只留下0、6級別和初始化的文件,也就是上圖中21、23和29行。

10、在/mnt/sysroot/rc.d目錄下配置初始化文件rc.sysinit

11、然後運行多次sync命令,把設置的所有參數同步到要寫入的新的磁盤上

12、在虛擬機上添加一個虛擬主機(也就是主機B),並把其中的硬盤卸下,把剛才我們建的那塊硬盤添加到這台主機上

13、完成後暫停主機A,啟動主機B,進入系統,我們試著去完成添加的幾個可執行程序,ls可以完成,關機指令和重啟指令卻不能完成

(1)查看/mnt/sysroot/etc目錄下inittab文件我們就不難發現,要進入0級別的話,依賴於名為rc的腳本,而rc的腳本又需要相應的指令,相應的指令又需要相應的庫文件的支持。我們都把這些拷過來的話實在是太麻煩了,那應該怎樣做呢,下面我們來做一下講解。

(2)如下圖所示,我們來為關機和重啟分別做sysshutdown和sysreboot兩個腳本

分別制作關機腳本和重啟腳本,並把相應的可執行程序和庫文件拷到對應的目錄下

 

把腳本權限改為可執行

(3)進行同步後,暫停主機A,主機B,再進行相應的關機、重啟命令就ok了

14、當然了,我們還想要有機器的主機名另外還要具備基本的網絡功能,下面就來一一實現

(1)關閉主機B,啟動主機A。分別把名為ping、hostonly以及ifconfig的可執行程序和所依賴的庫文件拷到相應的目錄下

(2)編輯初始化配置文件/mnt/sysroot/etc/rc.d/rc.sysinit

如上圖所示,想要讓腳本發揮作用,還需要一個名為network的文件,我們把主機A上的文件拷到主機B的硬盤上,然後做改動

(3)同步之後暫停主機A,開啟主機B,測試一下

15、要實現網絡功能的話首先需要內核的支持,但是內核中只有那些最常見的驅動,而其它的都被做成內核的模塊,當然網卡也不例外。

(1)查看網卡參數

(2)查看PCnet的模塊

(3)分別查看PCnet模塊和mii模塊的詳細信息,從中可以看到模塊的路徑

(4)在主機B的硬盤上建一個存放驅動的目錄,再把驅動拷進去

(5)加載驅動需要相應工具的支持,這裡我們用insmod,在宿主機把相應的可執行程序和庫文件拷到新硬盤相應的目錄下

(6)為了在初始化的時候引用相應的模塊,編輯初始化的文件/mnt/sysroot/etc/rc.d/rc.sysinit

(7)同步之後,暫停主機A並開啟主機B,進行驗證

至此,一個簡易linux系統就制作成功了,當然我們可以根據需要隨意添加應用和修改腳本

作者署名:51cto博客 xiaoxiaozhou

Copyright © Linux教程網 All Rights Reserved