1. 程式人生 > >CentOS 6系統下自制小Linux

CentOS 6系統下自制小Linux

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系統,很多命令都沒有需要自行安裝。


CentOS 6系統下自制小Linux