私人定制—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
下一篇 2016-09-26

相關推薦

  • 文本處理sed

    文本處理sed Sed介紹:          處理文本的工具sed ,Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,…

    Linux干貨 2017-05-04
  • Linux命令學習

    閱讀目錄 Linux cat命令 file命令 dd命令 hexdump命令 cat命令   cat三大功能:      1.一次顯示整個文件:cat filename      2.從鍵盤創建一個文件:cat > filename 注意只能創建新文件,…

    Linux干貨 2017-07-16
  • N22-第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 sort -u 在輸出結果中去除重復行 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 uniq -c 在輸出行前面加上每行在輸入文件中出現的次數。 sort -rn : -n  …

    Linux干貨 2016-08-29
  • Java中的Map List Set等集合類

    Map List Set等集合類: 一、概述 在JAVA的util包中有兩個所有集合的父接口Collection和Map,它們的父子關系: +Collection 這個接口extends自 –java.lang.Iterable接口 ├+List(接口 代表有序,可重復的集合。列表) │├ ArreyList   &…

    Linux干貨 2015-04-07
  • MySQL備份與恢復

    備份與恢復 數據備份就是將數據以某種方式加以保留,以便在系統需要時重新恢復和利用。其作用主要體現在如下兩個二方面: 在數據遭到意外事件破壞時,通過數據恢復還原數據 數據備份是歷史數據保存歸檔的最佳方式 數據恢復就是把遭到破壞、刪除和修改的數據還原為可使用的數據的過程 為什么要備份數據? 在生產環境中我們數據庫可能會遭遇各種各樣的不測從而導致數據丟失, 大概分…

    Linux干貨 2016-11-25
  • N21_第四周

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 # cp -a /etc/skel/ /home/user1/ && chmod -R 7000 /home/user…

    Linux干貨 2016-08-02

評論列表(1條)

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

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

欧美性久久久久