做一个自己的小Linux

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做一个自己的小Linux相关的知识,希望对你有一定的参考价值。

实战操作自制一个小Linux


  概述:通过前面的系统启动流程,我们大致知道了Linux系统启动时都需要哪些文件和步骤,知道了这些理论内容,现在我们可以自己动手制作一个自己的小Linux。


实践步骤:

1、在已有的Linux添加新的硬盘

2、对此新的硬盘进行分区,两个分区分别为/boot和/分区( 为自制的Linux下所准备的)

3、将刚刚的分区格式化并挂载至两个目录上(我这里为/mnt/boot和/mnt/sysroot)

4、在此新硬盘上安装grub并且编写grub配置文件

5、将vmlinuz文件和initramfs文件拷贝至/mnt/boot目录下

6、在/mnt/sysroot下创建小Linux的根文件系统

7、拷贝bash以及一些常用的命令及其对应的库文件至/mnt/sysroot下对应的目录下

8、新开一个Linux并使用刚刚那块磁盘启动测试


具体操作:

1、在已有的Linux添加新的硬盘

技术分享


2、对此新的硬盘进行分区,两个分区分别为/boot和/分区( 为自制的Linux下所准备的) 技术分享

3、将刚刚的分区格式化并挂载至两个目录上(我这里为/mnt/boot和/mnt/sysroot)

技术分享


4、在此新硬盘上安装grub并且编写grub配置文件(grub配置文件可copy本机的grub.conf文件,将内容改为以下内容即可)

技术分享

技术分享5、将vmlinuz文件和initramfs文件拷贝至/mnt/boot目录下

技术分享

6、在/mnt/sysroot下创建小Linux的根文件系统

技术分享 7、拷贝bash以及一些常用的命令及其对应的库文件至/mnt/sysroot下对应的目录下

技术分享

[[email protected] ~]# cat copycmd.sh 
#!/bin/bash
ch_root="/mnt/sysroot"        //此目录与上面的/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

8、新开一个Linux并使用刚刚那块磁盘作为新的Linux的启动硬盘

技术分享

                                                                                                                    谢谢浏览...



本文出自 “学無止境” 博客,请务必保留此出处http://dashui.blog.51cto.com/11254923/1853375

以上是关于做一个自己的小Linux的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

如何做一个小程序?

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

利用爬虫做一个自己的小词典

ACM_开挂的小G

创建自己的代码片段(CodeSnippet)