私人定制—linux系統

自制Linux系統:

1、分區并創建文件系統

[root@localhost6 ~]# fdisk  /dev/sdb

分兩個必要的分區

/dev/sdb1對應/boot /dev/sdb2對應根/

創建文件系統:

[root@localhost6 ~]# mkfs.ext4 /dev/sdb1
[root@localhost6 ~]# mkfs.ext4 /dev/sdb2

2、創建掛載點,并掛載boot

[root@localhost6 ~]# mkdir/mnt/boot
[root@localhost6 ~]# mount /dev/sdb1 /mnt/boot

3、安裝grub,生成grub文件

[root@localhost6 ~]# grub-install --root-directory=/mnt/ /dev/sdb

wKioL1fbXY3QWc0nAAAT2PlX1Bo997.png

4、建立grub.conf:

[root@localhost6 ~]# vim /mnt/boot/grub/grub.conf
default=0
timeout=3
title mylinux
    root (hd0,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

5、恢復內核和initramfs文件

[root@localhost6 ~]# cp /boot/vmlinuz-2.6.32-642.el6.x86_64  /mnt/boot/
[root@localhost6 ~]# cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot/

wKiom1fbX9Tj49aVAAAlhI0v-PM339.png

6、創建一級目錄

[root@localhost6 ~]# mkdir /mnt/sysroot/
[root@localhost6 ~]# mount /dev/sdb2 /mnt/sysroot/
[root@localhost6 ~]# mkdir –pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,
proc,opt,home,root,boot,dev,mnt,media}

wKioL1fbYPqCl9v3AAAR3lGTkto147.png

7、編輯fstab文件

[root@localhost6 ~]# vim /mnt/sysroot/etc/fstab
/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2  /    ext4 defaults 1 2

8、復制bash,相關命令和相關庫文件

由于文件較多,一個一個復制較為麻煩,所以建議使用腳本,來實現復制任務。

[root@localhost6 ~]# vim copycmd.sh
#!/bin/bash

ch_root="/mnt/sysroot"
[ ! -d $ch_root ] && mkdir $ch_root
 
bincopy() {
    if which $1 &>/dev/null; then
        local cmd_path=`which --skip-alias $1`
        local bin_dir=`dirname $cmd_path`
        [ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}
        [ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}
        return 0
    else
        echo "Command not found."
        return 1
    fi  
}
 
libcopy() {
    local lib_list=$(ldd `which --skip-alias $1` | grep -Eo '/[^[:space:]]+')
    for loop in $lib_list;do
        local lib_dir=`dirname $loop`
        [ -d ${ch_root}${lib_dir} ] || mkdir -p  ${ch_root}${lib_dir}
        [ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}
    done
}


read -p "Please input a command: " command

while [ "$command" != "quit" ];do
    if bincopy $command ;then
        libcopy $command
    fi
    read -p "Please input a command or quit: " command
done

wKiom1fbadmgy1XbAAAXEVfWgCo546.png

9,現在一個曉得linux已經制作完成,它只有很簡單的功能,但是,以后有需要可以再添加其他的功能。下面我們來開機看一下。

wKiom1fbfHeAKz5bAAtzUSuSnGw946.gif

這樣,一個簡單的小linux已經制作完成,可以將它放在U盤等便攜式設備上,可以隨時使用,修改等。。。

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

(0)
GrootGroot
上一篇 2016-09-26 07:44
下一篇 2016-09-26 08:06

相關推薦

  • Redis 3.0.0正式版發布,全新的分布式高可用數據庫

    Redis 3.0.0 正式版終于到來了!最重要的新特性是集群(Redis Cluster),提供Redis功能子集(比如不支持多數據庫)的分布式、容錯的實現(最多支持1000結點)。   Salvatore 'antirez' Sanfilippo在Google Groups里表示,這是Redis的重要時刻?!拔蚁嘈沤裉斓腞edis 3.0…

    Linux干貨 2015-04-03
  • 決不放棄

    堅持到底!

    Linux干貨 2017-11-17
  • linux目錄分類和各個目錄作用-2016-07-21

    linux目錄分類和各個目錄作用-2016-07-21 Linux安裝以后出現的文件目錄的作用:  文件系統的類型  LINUX有四種基本文件系統類型:普通文件、目錄文件、連接文件和特殊文件,可用file命令來識別。  普通文件:如文本文件、C語言元代碼、SHELL腳本、二進制的可執行文件等,可用cat、less、more、vi…

    Linux干貨 2016-08-04
  • 網絡N22期-第五周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@localhost ~]#egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7 /bin/bash 2、找出/etc…

    Linux干貨 2016-09-15
  • 文本處理工具應用練習

    練習:  1 、找出ifconfig 命令結果中本機的IPv4 地址 思路:我們使用ifconfig命令可知,ip地址是在第二行,所以我們先篩選出第二行,       第二行中的分隔符看起來很混亂,都是不規則的,有一個空格或多個空格的,沒有標準       所以我們最好是建立一個標準分隔,…

    Linux干貨 2016-08-08
  • 學習宣言

    娶媳婦!娶媳婦!娶媳婦有木有?。?! 請享受無法回避的痛苦!?。。。。?!

    Linux干貨 2016-12-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-26 11:56

    寫的不錯,操作性性很強,整個流程很順暢。

欧美性久久久久