自制 mini linux


思路


先裝載一塊硬盤,按照上面兩個實驗的部分結果,創建各個目錄

在/boot 里面添加內核 ,添加initramfs.img文件添加grub組件  ,創建grub.conf  
然后復制bash  ,ls  ,cp  等,命令和響應的庫文件,并在啟動的時候指定第一個進程為/bin/bash
順便加載一個網卡驅動,復制ping命令和ifconfig命令,測試能否ping通

步驟

(1)添加一個硬盤20G,分區 格式化  掛載
     echo ‘- – -‘ >  /sys/class/scsi_host/host2/scan
     分兩個區,一個/boot     一個/root  大小分別為 100M 和 10G
      格式化為ext4
      在/mnt下面創建兩個目錄,一個叫/mnt/boot  另外一個叫 /mnt/root
     將兩個分區掛載
(2)分別復制內核文件和initramfs.img文件到/mnt/boot目錄下面安裝grub文件 ,配置grub.conf 
     配置的時候需要注意的是寫root路徑的時候不要寫
     成了當前磁盤在本機上的分區標號,應該寫成/dev/sda,因為啟動的時候只有一塊硬盤
     grub-install  –root-directory=/mnt/   /dev/sdb
(3)創建需要的目錄(FHS),拷貝必要的文件至/mnt/root下面
     mkdir  /mnt/root/{bin,sbin,root,boot,lib,lib64,home,etc,dev,mnt,var,usr,proc,sys,tmp}
     利用腳本來復制各種需要的命令和庫文件  ls   cp  mount  vim  insmod  mkdir  ping  ifconfig
     umount  ip  reboot   mv  rm  bash  tree  kill  cat  df  
     復制所需要的網卡驅動,
     dmesg  | grep eth  找到網卡驅動的名字 
     locate   網卡驅動的名字          找到網卡驅動的路徑
     cp /path/to/file    /mnt/root/lib/  
(4)確定第一個進程
     在grub.conf配置文件中內核參數那一欄確定第一啟動的進程為/bin/bash
(5)切換硬盤,進行測試,配置IP,測試ping命令

操作流程

(1)添加硬盤,分區,格式化,掛載

     要求/boot為  +100M  /root為  +1G

自制 mini  linux


2)分別復制內核文件和initramfs.img文件到/mnt/boot目錄下面安裝grub文件 ,配置grub.conf

     cp /boot/initramfs.img    /mnt/boot
     cp /boot/vmlinuz   /mnt/boot
     cd  /boot    
     grub-install  –root-directory=/mnt/  dev/sdb(本次測試的為/dev/sdb)
     vim  /mnt/boot/grub/grub.conf
     編寫配置文件:
 
defaults=0
timeout=3
title  yang linux
     kernel    /vmlinuz   ro  root=/dev/sda2  init=/bin/bash
     initrd  /initrdramfs.img  

 查看里面的目錄結構 

自制 mini  linux


(3)創建需要的目錄(FHS),拷貝必要的文件至/mnt/root下面
     由于這里復制的條目很多,編寫一個腳本來完成相應的功能

#!/bin/bash
#
#Author:Double.f
#Date:2017-5-9
cpcmd()
 {
    path_root=/mnt/root/
    DIR=$(echo $1 | egrep -o '^/.*/')
    [ -z $DIR ] || mkdir -p ${path_root}${DIR}   &> /dev/null
    [ -z $1 ] && echo "$1 is existed" || cp $1 ${path_root}$1   

}

read -p "please input a command: "  CMD
if which $CMD &> /dev/null;then
    until [ $CMD == 'quit'  ];do
        path_command=`which $CMD | grep -oE '/[[:alnum:]].*/?[[:alnum:]]'`
        REV=`ldd $path_command | egrep -o '/.*/?.*[[:space:]]'`
        cpcmd $path_command   
        for I in `echo $REV`;do
            cpcmd $I
        done
        read -p "please input command or quit :" CMD
    done
else
    echo "Command  not  found"
    exit 1 fi

復制網卡驅動模塊
cd /lib/mop /lib/modules/2.6.32-642.el6.x86_64/kernel/drivers/net/e1000/e1000.ko   /mnt/root/lib
(4)進入調試
進入之后首先裝載網卡驅動模塊
insmod  /lib/eth1000.ko
然后給網卡配一個ip   172.16.0.5,將虛擬機的網絡調為橋接,用ping命令來測試

自制 mini  linux

原創文章,作者:Double f,如若轉載,請注明出處:http://www.www58058.com/75528

(1)
Double fDouble f
上一篇 2017-05-14 14:53
下一篇 2017-05-14 19:59

相關推薦

  • 馬哥教育網絡班18期+第10周課程練習

    博客作業10周.md—E:\Documents CentOS啟動流程 1. 加電自檢 2. 引導加載次序:BOOT Sequence 3. bootloader: 4. GRUB引導加載器 5. 進入Kernel 6. 運行init 7. 運行初始化腳本 8.啟動系統服務 9. 設置登陸終端 整體總結 習題 習題1 習題2 習題3 習題4 習題5 習題6 練…

    Linux干貨 2016-06-23
  • linux下VMware Tools安裝方法

    關于VMware Tools 是虛擬機里面的驅動,和各種實用工具,安裝了vmware tools,你的虛擬機就可以打開DX3D的支持,鼠標想移出虛擬機也不需要按組合鍵,文件可以從主機直接拖動復制到虛擬機里面,虛擬機的分辨率也會自動跟隨窗口調整而變化,還能解決圖形界面下的卡頓,總之就是拓展了虛擬機的功能,方便使用。     &nb…

    Linux干貨 2016-08-04
  • Linux用戶與組之權限管理

    權限(rwx、sst、umask) chown chmod ACL(見下篇) 試驗環境:CentOS 7.2 與CentOS 6.8,具體會在應用場景明確指出 權限 Linux系統對用戶與組的管理,其具體操作手段就是對于權限的分配,而常見的權限分配工具有 rwx, sst, umask, ACL. 跟用戶與組有uid和gid一樣,權限也有…

    Linux干貨 2016-08-07
  • Linux中/etc/passwd、/etc/shadow文件字段的含義以及用處

        今天本人學習到了兩個個Linux中非常重要的文件,它們承載著Linux用戶的相關信息,如果在賬號方面出現一些密碼相關的問題,就可以來找這兩個文件查看和分析一番。     他們分別是/etc/passwd和/etc/shadow兩個文件,他們都存放于/etc目錄中,都可以使用cat命令來查看其內容。  …

    Linux干貨 2016-01-14
  • N28-第一周

    1. 描述計算機的組成及其功能。
    2. 按系列羅列Linux的發行版,並描述不同發行版之間的聯繫與區別。
    3. 描述Linux的哲學思想,並按照自己的理解對其進行解釋性描述。
    4.說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述。
    5.如何在Linux系統上獲取命令的幫助信息,請詳細列出,並描述man文檔的章節是如何劃分的?
    6.請羅列Linux發行版的基礎目錄名稱命名法則及功能規定。

    Linux干貨 2017-12-04
欧美性久久久久