CentOS 6系統下自制小Linux

以CentOS 6爲基礎製作小Linux過程:

首先我們需要知道CentOS 6系統的啓動流程爲POST(加電自檢)-->BIOS(系統選擇啓動設備的先後順序,默認順序爲光盤、U盤、硬盤)-->Bootloader(系統引導程序,使用grub加載器)-->kernel(初始化內核)-->/sbin/init(運行init程序)。

首先需要一塊全新的硬盤來裝配製作一個啓動Linux系統最基本的啓動程序以及其配置文件:包括grub程序及其庫文件、複製內核文件以及ramdisk文件、將/bin/bash以及庫文件。

接下來詳細說明各個步驟具體實現:

在一個可使用的CentOS 6系統中創建一塊新硬盤,不需要太大,20GB即可,建議在虛擬機關機時添加硬盤以便省去熱插拔過程中echo '- - -' > /sys/class/scsi_host/host2/scan命令的操作。之後爲新添加的硬盤分區(sd[a-z]{1,2,3})並創建文件系統第一個分區掛載/boot以引導系統啓動,第二個分區作交換分區使用,第三個分區做根,因此掛載第一第三分區於/mnt/boot和/mnt/sysroot上。

之後安裝ygrub程序,使用grub-install --root-directory=/mnt(注意這裏位置爲/mnt因爲需要在boot的父目錄上) /dev/sd*。

接下來將內核文件以及ramdisk文件複製到目標系統的啓動分區/mnt/boot中,然後創建目錄層級機構於/mnt/sysroot中{bin,root,dev,lib,lib64,var,sur,proc,sys,mnt,tmp,etc,sbin}。再然後將/bin/bash及其共享庫文件複製到/mnt/sysroot下對應的目錄中(此處查看共享庫可用命令ldd查看,總共四個庫文件)。最後執行幾次sync命令,以保證內存中緩存或緩衝的數據被保存到磁盤上。這時我們自制的linux系統已經準備好了。

接下來新建一個虛擬機,將剛剛操作的硬盤作爲新虛擬機的硬盤使用(目的是在系統選擇啓動設備時選擇到硬盤啓動),準備好新建的虛擬機之後,將宿主系統掛起(如果不掛起,在啓動新建虛擬機時,會顯示硬件資源衝突,不能啓動。),啓動新建虛擬機,將進入grub命令行界面,鍵入命令:

root (hd0,0):指定磁盤,指定分區作爲grub程序的根設備

kernel /vmlinz ro root=/dev/sda3 selinux=0 init=/bin/bash single:設定內核文件的絕對路徑以及內核參數

initrd /initramfs.img:ramdisk文件路徑

boot:啓動

此時我們製作的小liunx已經跑起來了,只是最基本的linux系統,很多命令都沒有需要自行安裝。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章