自制Linux系统

自制Linux系统

1.首选准备一台Linux虚拟机并添加一块新硬盘

[TU]T5__6KRAT[6RAR6S2RR.png

2.分区并创建文件系统,创建两个必要的分区根分区和boot分区

fdisk /dev/sdb  分区
mke2fs -t ext4 /dev/sdb1    创建boot文件系统
mke2fs -t ext4 /dev/sdb2    创建根分区

WZQD[H`A4772AKE45QJO)CX.png

Z`7%]@N)]DQ}Z8AMCMLHNQG.png

3.挂载boot分区

VEHV30QA@%0%)6KXYIG}N0X.png

4.在boot分区上安装grub

S(G~@0W3)O4V8RL2QH)6{~5.png

]0DZW5Q6C0S{7{PLEBYY`_X.png

5.恢复内核和initramfs文件

G8RB@}$H_PH4UJ]Y]NI1~YP.png

6.在grub目录下手动定义grub.conf配置文件

P%RHQRS~T]M85A3G8S{U)SS.png

7.创建根目录下的一级目录

)R~%LRXUU{JL3TEV$AK9IAQ.png

P}`KRWIF5BGUXVZ8S)FM(KM.png

8.复制bash程序相关库文件以及其他命令程序(ls,pwd,cat,df,free…),脚本如下

[root@CentOS6 ~]# cat 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
[root@CentOS6 ~]#

9.定义/mnt/sysroot/etc/fstab文件

Y~}ZKXMNITY)J64KZ60YT]B.png

至此,我们的Linux系统就已经制作完成了,接下来创建一个虚拟机测试是否能启动


1.新建一个虚拟机,将磁盘指向我们自建的Linux系统磁盘

_]Y8[@6{YR%Y5VLS%B_KVAS.png

YP{MRX4O@O[O15I_2]FT}1R.png

2.启动

[{0(V}MJ)}HGW1M~8)0[L)T.png

V[}V3@`$CPU5VK90NT3@FTS.png

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/46776

(0)
zhai796898zhai796898
上一篇 2016-09-16
下一篇 2016-09-16

相关推荐

  • 第一周 计算机/Linux基础入门

    1、描述计算机组成及其功能 计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等 Output:输出数据加工的结果         &…

    2017-12-02
  • Linux破解root口令

    Centos5、6版本破解口令方法 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按a键 3 在行尾输入 1(或s或S或single)— 按回车键 4 使用passwd命令修改口令即可   Centos7版本破解口令方法 方法1 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按e键…

    Linux干货 2018-01-08
  • 第二周作业

    第一、文件管理类命令     cp、mv、rm                  cp命令:copy 源文件;目标文件;     &nbsp…

    Linux干货 2016-12-12
  • Linux基础目录名称及功用

    FHS目录规则 Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。   FHS定义了两层规范,第一层是,…

    Linux干货 2016-10-30
  • 编程能力与编程年龄

    程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希…

    Linux干货 2016-08-15
  • N26-第一周作业

    1、计算机主要由硬件部分和软件部分组成。     硬件部分:         (1)、CPU:包括运算器、控制器、寄存器、缓存。CPU的核心部件是运算器和控制器,它的功能主要是解释计算机指令以及处理计算机软件中的数据。         (2…

    Linux干货 2016-12-27

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 12:39

    从图可以看出作者很用心,赞一个