自己DIY製作精簡版Centos系統

來源:互聯網
上載者:User

我們都知道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系統就製作成功了,當然我們可以根據需要隨意添加應用和修改指令碼


本文出自 “xiaoxiaozhou” 部落格,請務必保留此出處http://xiaoxiaozhou.blog.51cto.com/4681537/1280158


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.