內核編譯及制作Linux系統

    用自己編譯的linux內核自己制作一個很簡單的啟動盤,能夠成功啟動且能有簡單的shell環境。

    第一步:從內核官網www.kernel.org 下載相應的內核版本,現在到本地后,將它解壓(我是解壓到/usr/src目錄下),解壓后進入目錄。由于編譯的選項太多,為了簡化設置編譯選項,直接將本地的/boot/config-*文件復制到目錄下并改名為.config,使用命令“make menuconfig”進入編譯設置界面:

blob.png     進入“General setup”設置編譯的版本號:blob.png

    進入“File Systems”設置ntfs文件格式為“M”,將其編譯成模塊:

blob.png

    完成相應的相關設置后,保存退出。使用命令“make”開始編譯(這需要很長的是時間)。注意:在使用make命令之前要確保系統已經安裝了“Server Platform Development”和“Development Tools”兩個包組,如果沒有安裝,編譯會因為卻庫文件報錯。完成后要安裝相關模塊使用命令“make modules_install”。最后使用“make install”完成編譯。

    編譯完成后,可以在/boot目錄下看見編譯的內核和initramfs文件:

blob.png

    并且在/lib/modules目錄下面也有相應版本的模塊:blob.png

    為了驗證編譯時候成功,將系統重啟。

blob.png

    如上圖,啟動的時候已經有了對應的啟動命令,選擇并啟動。

blob.png

    能夠正常啟動,編譯完成。

    下面將做好的內核遷移至一塊新的磁盤,做成一個及其簡易的系統,能夠啟動起來并且能夠運行一些簡單的bash命令。

    首先在剛才編譯內核的機器上新增一塊磁盤,大小120G(盡量設置大點),如下圖的方式讓機器找到設備:

blob.png    將/dev/sdf設備分區,這里簡單點,分成兩個分區,一個作為/boot的分區,一個作為/的分區。格式化為ext4格式的文件系統。將作為/boot的/dev/sdb1掛載到/mnt/boot目錄下,注意,這個掛載點的基名一定要為boot,否則不能將grub安裝進去:

blob.png

    將剛才編譯好的內核和initramfs文件復制進入/mnt/boot目錄下,編輯/mnt/boot/grub/grub.conf文件如下:

blob.png

    由于啟動設置的直接使用bash,不用init程序程序用戶空間,因此指定init為/bin/bash,并且要停用selinux。然后在另一個分區將/mnt/sysroot下面建立根文件系統應該有的目錄:

blob.png

    并從宿主機上面復制bash、ls、ip等命令及其依賴的庫文件到/mnt/sysroot下面,復制完后的目錄如下:

blob.png

blob.png

    完成后,新建一臺虛擬機,使用該磁盤,啟動結果:

blob.png

    成功進入grub,開始引導:

blob.png

    成功啟動,并且能使用幾個簡單的命令,整個過程完成。

原創文章,作者:王更生,如若轉載,請注明出處:http://www.www58058.com/60609

(1)
王更生王更生
上一篇 2016-11-24 11:36
下一篇 2016-11-24 15:19

相關推薦

  • iptables

    iptables簡介 netfilter/iptables(簡稱為iptables)組成Linux平臺下的包過濾防火墻,與大多數的Linux軟件一樣,這個包過濾防火墻是免費的,它可以代替昂貴的商業防火墻解決方案,完成封包過濾、封包重定向和網絡地址轉換(NAT)等功能。 iptables基礎 規則(rules)其實就是網絡管理員預定義的條件,規則一般的定義為“…

    2017-05-02
  • 計算機相關簡介和linux相關簡介

    一、計算機相關簡介與linux的一些概念 計算機系統 由硬件(Hardware)系統和軟件(Software)系統兩大部分構成: 硬件系統 :CPU(控制器、運算器),內存儲器(RAM、ROM),外存儲器(硬盤等),輸入設備(鍵盤、鼠標等),輸出設備(顯示器等),其他設備相關設備。  軟件系統 :系統軟件(操作系統,數…

    Linux干貨 2017-02-18
  • n25第二周

    linux文件管理類命令     mkdir,rmdir,cp,mv,rm,chwon,chmod     1.mkdir->make directories(創建目錄)     用法:    &nbsp…

    Linux干貨 2016-12-11
  • Linux命令date命令詳解

    在linux環境中,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便,下面是詳細的使用說明和示例 在linux環境中,不管是編程還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。 1.命令格式:date[參數]… [+格式] 2.命…

    2017-07-18
  • PHP數組實際占用內存大小的分析

    我們在前面的php高效寫法提到,盡量不要復制變量,特別是數組。一般來說,PHP數組的內存利用率只有 1/10, 也就是說,一個在C語言里面100M 內存的數組,在PHP里面就要1G。下面我們可以粗略的估算PHP數組占用內存的大小,首先我們測試1000個元素的整數占用的內存: <?php      &nb…

    系統運維 2015-05-28
  • vim編輯器

                                                      &nbsp…

    Linux干貨 2015-12-19
欧美性久久久久