實驗思路:
CentOS6的啟動流程如下
1.加載BIOS的硬件信息,進行POST加電自檢
2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息
3.加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備
4.核心執行init程序,并獲取默認的運行信息
5.init程序執行/etc/rc.d/rc.sysinit文件
6.啟動核心的外掛模塊
7.init執行運行的各個批處理文件(scripts)
8.init執行/etc/rc.d/rc.local
9.執行/bin/login程序,等待用戶登錄
10.登錄之后開始以Shell控制主機
其中與啟動相關最重要的幾個文件有:內核vmlinuz文件、虛擬文件系統initramfs文件、grub文件以
及init啟動程序,接下來就圍繞這幾個重要文件,來制作一個能夠簡單啟動的自制Linux系統
準備環境:
CentOS6虛擬服務器1臺,準備一個硬盤或者U盤,本實驗我們以一塊20G的虛擬硬盤為例制作一個簡單的
Linux系統
具體步驟:
第一步:針對新增加的20G硬盤創建兩個分區dev/sdb1,dev/sdb2
fdisk /dev/sdb
第二步:創建文件系統,將/dev/sdb1,/dev/sdb2兩個分區文件系統設置為ext4格式
mkfs.ext4 ?/dev/sdb1
mkfs.ext4 ?/dev/sdb2
第三步:掛載/boot目錄
mkdir /mnt/boot ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?此處掛載子目錄必須為boot
mount /dev/sdb1 /mnt/boot
第四步:安裝gurb
grub-install –root-director=/mnt /dev/sdb
hexdump -C /dev/sdb -n 512 -v ? ? ? ? ? ? ? ? 查看一階段是否創建成功,446字節已生成
ls /mnt/boot ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看二階段是否創建成功,grub目錄已生成
第五步:拷貝內核vmlinuz文件及虛擬文件系統initramfs文件
cp /boot/vmlinuz-VERSION /mnt/boot/vmlinuz
cp /boot/initramfs-VERSION.img /mnt/boot/initramfs.img
第六步:設置grub.conf文件
vim /grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-VERSION??root=/dev/sda2 init=/bin/bash
initrd /initramfs.img
第七步:掛載根目錄
mkdir /mnt/rootfs
mount /dev/sdb2 /mnt/rootfs
第八步:復制相關命令和庫文件
如:ifconfig,insmod,ping,mount,ls cat,df,lsblk,blkid等
第九步:準備根目錄下必要目錄
mkdir /mnt/rootfs/{dev,etc,proco,sys,usr,var,lib,mnt.home,root,tmp,lib64} -v
sync;sync;sync; 確保寫入硬盤
第十步:安裝必要的模塊,如網絡模塊等
第十一步:關機此服務器,并將20G硬盤安裝到一臺無硬盤啟動的虛擬機服務器上
我們看到系統已經可以正常啟動了,一臺可以快速、簡單完成啟動的Linux系統就制作完成了
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98532