自制 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
下一篇 2017-05-14

相關推薦

  • 一張圖認識開源世界

    開源精神:自由,創新,團結,互助,友愛,積極,進取。在開源環境下也產生了很多優秀的軟件,讓我們通過一幅圖認識一下開源世界里的大咖們! 看圖識物     墻上掛的牛頭:偉大的開源計劃GNU Wiki:http://zh.wikipedia.org/zh-cn/GNU     墻上日歷上的信封標志:經典的linux下的郵件…

    Linux干貨 2015-03-20
  • ?mysql備份之lvm

    mysql備份之lvm 新建一個lvm磁盤,這里我建的lv為mydatalv,掛載到了/data下 [root@localhost ~]# lvs   LV       VG     Attr&nbs…

    Linux干貨 2016-07-19
  • awk用法二

      3、awk的printf命令     格式:printf format, item1 item2…     要點:      (1) 要指定format;      (2) 輸出時不會自動換行,如需換行則…

    Linux干貨 2015-12-24
  • 用戶組和權限管理知識總結

    在介紹本期內容之前呢,有一個小插曲.就是由于昨天晚上我沒有正常關閉虛擬機,今天早上打開的時候一直顯示正在使用中,彈 出來個小框框,如下圖,馬賽克部分呢就是提示的路徑,安裝路徑不一樣,提示的就也不一樣. 此虛擬機似乎正在使用中。 如果此虛擬機已在使用中,請按“取消”按鈕,以免損壞它。如果此虛擬機未使用,請按“取得所有權(T)”按鈕以獲取它的所有權。&…

    2017-07-28
  • 安裝LNMP + 搭建WordPress個人博客

    安裝LNMP + 搭建Wordpress個人博客 前言 來到馬哥教育也有幾個月了,學了很多知識?,F在想要把這些知識能夠存儲在一個地方,隨時隨地的都能看到,于是乎我就想到了博客,以下我搭建Wordpress的過程。 安裝LNMP 一、關掉防火墻 # chkconfig iptables off 二、安裝開發包和庫文件 #&nbsp…

    Linux干貨 2016-05-31
  • MBR&GPT分區基本原理

    1、磁盤系統為什么要分區?     ?     優化I/O性能     ?     實現磁盤空間配額限制       &…

    Linux干貨 2016-08-30
欧美性久久久久