題外:自制小linux

自制小linux 系統

制作環境的概述

首先你的有VMware的虛擬機軟件,其次安裝了centos6/centos7linux系統

而且你需要寫一個復制相關命令以及依賴庫文件的的腳本(主要是為了省時間,腳本寫法會在后面備注)
準備好以上環境,便可以制作一個小linux系統了,具體步驟如下

1)  在虛擬機設置中,在原有基礎上在掛載一個20G大小的硬盤

2)  開機啟動原有linux系統,我們可以簡稱原系統為“SL”

3)  使用如下命令:

echo “- – -” > /sys/class/scsi_host/host2/scan 可以識別之前安裝好的小硬盤,利用lsblk查看,確認設備已經識別

4)  對該硬盤進行分區

fdisk  /dev/sdb

分為兩個區

/dev/sda1—à/boot

/dev/sda2–à/

加載文件系統統一為ext4

Mkfs.ext4  /dev/sda1

Mkfs.ext4
/dev/sda

5)  掛載 boot

mkdir /mnt/boot

mount /dev/sdb1 /mnt/boot

6)  安裝grub

grub-install –root-directory=/mnt /dev/sdb

7)  恢復內核和initramfs文件

cp /boot/vmlinuz-2.6.32-642.el6.x86_64  /mnt/boot/

cp
/boot/initramfs-2.6.32-642.el6.x86_64.img 
/mnt/boot

8)  建立grub.conf:

vim /mnt/boot/grub.conf

default=0

timeout=3

title customlinux

root (h0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2  selinux=0 init=/bin/bash

initrd /initramfs-2.6.32-642.el6.x86_64.img

9) 創建一級目錄

         mkdir
/mnt/sysroot

mount 
/dev/sdb2   /mnt/sysroot

mkdir–pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc
,opt,home,root,boot,dev,mnt,media}

 

9)  復制bash和所需命令及相關庫文件

ls,cat, vim,reboot,hostname等等~這里用之前提到的腳本即可快速實現

這有一個不錯的腳本大家可以參考一下,雖然有些復雜,但是主要借鑒前面的判斷語句的寫法。

Vim copycmd .sh

#!/bin/bash

TargetDir=/mnt/sysroot

[ ! -d
$TargetDir ] && mkdir -p $TargetDir

#定義函數

CopyLib(){

 

for Lib in `ldd $1 | egrep -o
“/[^[:space:]]+”`

do

           LibDirName=`dirname $Lib`

           [ ! -d $TargetDir/$LibDirName ]
&& mkdir -p $TargetDir/$LibDirName

           [ ! -f $TargetDir/$Lib ] &&
cp $Lib $TargetDir/$LibDirName

done

return 0

 

}

#定義函數

CopyCmd(){

 

CmdDirName=`dirname $1`

[ ! -d $TargetDir/$CmdDirName ] &&
mkdir -p $TargetDir/$CmdDirName

[ ! -f $TargetDir/$CmdDirName ] && cp
$1 $TargetDir/$CmdDirName

return 0

}

 

read -p
“Please input a comand: ” Cmd

while
true

do

 

[[ $Cmd =~ ^[Qq]$|^[Qq][Uu][Ii][Tt]$ ]]
&& exit

[[ $Cmd =~ ^[Ee]$|^[Ee][Xx][Ii][Tt]$ ]]
&& exit

if which $Cmd &>/dev/null

then

           CmdPath=`which $Cmd`

           if [ -f $TargetDir/$CmdPath ]

           then

                    echo -e “\e[31mTarget
command\e[0m \e[1;31m$Cmd\e[0m \e[31mis exist!\e[0m”

                    read -p “Please input a
comand [quit|exist]:” Cmd

                    continue

           fi

           else

                    echo -e “\e[31mSource
command\e[0m \e[1;31m$Cmd\e[0m \e[31mis exist!\e[0m”

                    read -p “Please input a
comand [quit|exist]:” Cmd

                    continue

           fi

                   

           CopyCmd $CmdPath && CopyLib
$CmdPath && echo -e “\e[1;32m$Cmd\e[0m \e[32mis copy
successed!\e[0m”

           [ $? -ne 0 ] && echo -e
“\e[1;31m$Cmd\e[0m \e[32mis copy failured!\e[0m”

           read -p “Please input a comand
again [quit|exist]: ” Cmd

 

done

 

考完后,關閉系統,新建虛擬機,將之前的20G小硬盤去掉,放入新建虛擬機中,即可安全啟動(改該系統未考慮網絡的問題,需要網絡,首先需要安裝網絡模塊 ,也可全路徑拷貝網絡模塊,在復制相關網絡管理命令和依賴庫文件,即可具備網絡功能)

如此,自制小linu大功告成,

題外:自制小linux

 

話說玩玩就好,有時間追加全自主編譯安裝的linux,能夠更加深入的了解linux,詳細可以參考LFS6.2中文版

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

(0)
oranixoranix
上一篇 2017-04-04 15:18
下一篇 2017-04-04 18:44

相關推薦

  • 馬哥教育21期網絡班—第11周課程+練習—-成長進行時–不退步–下

    3、描述DNS查詢過程以及DNS服務器類別。 DNS查詢過程主機—>查找互聯網上的主機 www.magedu.com—>聯系到自己指向的DNS服務器—>DNS服務器—>找根 .—>根返回給DNS服務器—>DNS找.com—>com返回給DNS—->DNS找ma…

    Linux干貨 2016-09-19
  • 虛擬機的三種網絡模式

    前言     虛擬機的網絡模式,是環境部署時的重要環節。不同的運行環境對網絡的要求也是不用的,本章節重點介紹虛擬機的三種網絡模式、以及他們之間的區別 虛擬機網絡模式      無論是vmware,virtual box,virtual pc等虛擬機軟件,一般來說,虛擬機有三種網絡模式: 1.橋接 2…

    2017-07-11
  • 三步走進行IP大揭秘

    跟隨博主三步走進行IP大揭秘! 一、IP簡介 1.ip地址:可以分為合法ip地址(公網ip地址)和私有ip地址, 合法ip地址主要應用于internet上的主機訪問,而私有ip地址應用于局域網中計算機的相互通信。 2.ip地址的表示形式:分為二進制表示和點分十進制表示。 一般使用點分十進制表示,現在通常使用的ip地址長度均為32位,由四個八位域組成,可稱為八…

    2017-09-02
  • 使用安裝光盤恢復rpm軟件包

    rpm作為linux最重要的軟件管理工具,有著不可或缺的地位,連yum都要依賴于rpm的存在才能正常使用,所以掌握rpm的恢復還是很重要的,下面就來看一下如何恢復rpm。       卸載rpm軟件包 [root@localhost ~]$ rpm -e rpm err…

    Linux干貨 2016-08-25
  • 第六周作業補充-vim簡介及其使用方法詳細介紹

    What       Vim是由Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在Unix& Unix Like操作系統中被廣泛使用。和Emacs并列成為Unix& Unix Like操作系統中最受歡迎的文本編輯器 When& Who  &nb…

    Linux干貨 2016-09-26
  • shell腳本之測試命令(test、[])

    話不多說,直接開車 在編寫shell腳本中,我們經常需要判斷命令執行的正確與否,從而進行不同的操作。首先我們來介紹下條件性的執行操作符:根據退出狀態而定,命令可以有條件地運行。其中,利用echo的話方便我們對測試結果的查看。 (1)&& 代表條件性的AND THEN 可以理解為短路與:當&&前面命令為真時,執行&am…

    Linux干貨 2017-08-05
欧美性久久久久