自製乙個mini 的Linux系統

2021-08-20 11:37:14 字數 2282 閱讀 5414

(2)給硬碟劃分至少兩個分割槽,乙個為boot引導分割槽,乙個為/根分割槽

(3)為分割槽建立檔案系統,並掛載到兩個不同目錄

(4)在掛載boot的分割槽建立grub引導目錄

(5)複製核心vmlinux與initrd檔案到boot目錄下,然後根據檔案編寫grub下的引導配置檔案

(6)建立根檔案系統

(7)移植bash等命令到根目錄下

(8)啟動測試

(一)劃分磁碟

製作linux系統,就需要有硬碟來裝載它。所以我們就需要劃分一塊硬碟來裝製作的linux檔案系統。這個硬碟不需要太大,這裡我就劃分乙個20g的硬碟來裝載它吧!先用lsblk來看看這個分割槽

(二)劃分分割槽

既然是乙個mini系統,那這裡就給它劃分兩個分割槽吧!乙個boot用來引導核心啟動,乙個為真正的根分割槽

建立分割槽用fdisk這個命令、

(三)建立檔案系統

分割槽建立完成,但是想要它可以裝檔案就要為它建立檔案系統。那就把它建立為ext4的檔案系統吧!

mkfs  -t  ext4  /dev/sdb1

mkfs  -t  ext4  /dev/sdb2

完成這兩步後,分割槽已經建立完成。就可以把它們掛載到指定目錄下了

(四)建立grub引導目錄

linux的啟動需要載入核心,而核心的載入就需要grub裡的配置檔案來定義

grub-install  –root-directory=/mnt/  /dev/sdb(這條命令就是用來生成grub引導檔案的,它會根據centos6的核心檔案來生成grub。然後把生成的檔案指定到目標磁碟上)

(五)複製核心與initrd到boot目錄下

複製完成後就可以來編寫grub下的引導配置檔案了,它會根據配置檔案來逐步引導各個程式的啟動。如下圖:1、所表示這個系統的預設的啟動核心,0就是我們所製作的這個核心。2、表示如果在三秒內未指定為哪個核心,則系統就會啟動預設核心。3、表示核心的名字。4、指明啟動時的硬碟為哪一塊硬碟。5、kernel 指明核心檔案放置的相對位置,root 指明根目錄的位置,selinux 表示把selinux這個安全策略關閉,init 表示我們要用的shell環境,這裡我們用的是bash。

注意:編寫時需要注意要把根目錄的分割槽名更改為sda,因為當硬碟去引導系統時系統裡只有一塊硬碟,它會被自動識別為/dev/sda

(六)建立根檔案系統

啟動分割槽準備好後就需要準備根分割槽了。這個分割槽的作用就是整個系統的真正的分割槽,整個系統的配置檔案、資料都會放置在這個分區內。所以我們就需要在這個分割槽內建立目錄來分別存放各個資料檔案。而有些系統所必須的檔案目錄我們就可以在這裡建立完畢。

建立目錄的命令如下:

cd /mnt/sysroot

mkdir -pv ,var/,tmp,mnt,sys}

(七)移植命令到根下

系統建立完成後還需要複製一些基本的命令到根下,如bash、ls、cat、cd、hostname、vim等以這些命令來完成某些操作,實現基本的shell環境。所以我們需要編寫乙個指令碼完成這些命令的配置檔案的複製以及所依賴的庫檔案的複製。

下面這個指令碼就可以幫我們完成這個任務

這些命令複製完成後。到這裡乙個mini的linux系統已經基本建立完成了。為了看它是否能啟動我們可以先切根看看能否切進這個系統裡去

chroot  /mnt/sysroot  (如果切入成功,則說明系統已經基本建立完成)

(八)啟動測試

最後,我們就需要把硬碟解除安裝下來。然後用虛擬機器用這塊硬碟來重新啟動,啟動成功後執行複製的

幾個簡單的命令證明製作成功。

乙個玩具 自製人臉識別

自己動手 opencv提供了一些人臉識別的工具,比如facerecognizer。但自製乙個人臉識別器是件挺好玩的事情,我 用knn實現了乙個。三步實現 資料預處理 train predict 資料 資料使用 at t facedatabase。另外還需要生成一 個 label檔案。可以cd到資料存...

自製乙個滾動條

參考文章 1 html 2 head 3 title 自定義滾動條 title 4 style 5 parent 1112 child 18 box 23style 24head 25 body 26 div id parent 27 div id child div 28div 29 div id...

SC Create 建立乙個Windows系統服務

c users sophiax sc 描述 sc 是用於與服務控制管理器和服務進行通訊的命令列程式。用法 sc command service name 選項 的格式為 servername 鍵入 sc command 可以獲得有關命令的進一步幫助 命令 query 查詢服務的狀態,或列舉服務型別的...