miniLinux的制作(图文)

来源:互联网 发布:股票利润怎么算法 编辑:程序博客网 时间:2024/05/18 00:40

1、解压Linux内核源码包至/usr/src/目录下,并软连接至linux中。


2、进入linux文件夹中,使用make  help获取帮助。执行make  allnoconfig关闭所有可选的配置。


3、执行make  menuconfig对内核进行编译前的功能模块进行配置。以下的配置选项是根据自己的需要和对主机适配信息选择。可通过lsmod、lscpu、lspci等进行查看。



4、进行编译。编译的最终的结果在当前目录下的arch/x86/boot/bzImage。


5、前面四步完成后,为主机添加一个新的硬盘。


6、为新的硬盘创建sdb1和sdb2两个分区,并格式化成ext4文件系统。


7、将sdb1挂载到/mnt/boot/作为新系统的boot分区,sdb2挂载到/mnt/sysroot/作为新系统的根目录。


8、在sdb设备上安装grub,并在boot下配置grub.conf文件,然后创建一些必须的文件夹。


9、使用编写的shell脚本复制本机的一些常用命令至sdb中的相应文件夹中。(shell脚本命令代码在文末)


10、可以增加额外init脚本实现开机挂载文件系统。


11、一切准备就绪之后,将上述编译好的内核系统 bzImage 复制到/mnt/boot/下之后执行sync命令。


12、新建虚拟机,注意的一项是到 选择现有磁盘 这一步时需要找到相应的新建磁盘设备。miniLinux启动成功并且发现复制过来的命令也可以执行生效了。(宿主机需要挂起或者关闭)


通过上述的实验基本上可以实现一个自定制的miniLinux系统,但是实际应用中我们需要与busyBox相互结合实现一个具有实质应用的系统。在上述的基础上:

1、我们需要以静态的方式对busyBox进行编译,首先安装glibc-static模块。


2、解压busyBox后,在解压目录下执行 make  menuconfig对其进行配置。详情:https://www.busybox.net


3、编译安装busyBox。


4、编译安装完成后,生成的文件在_install目录下,并将其全部复制到/mnt/sysroot/目录下。(前面步骤所创建的文件夹和命令可全部删除,使用busyBox代替即可)


附-复制命令脚本:

  #!/bin/bash#target=/mnt/sysroot[ -d $target ] || mkdir /mnt/sysrootread -p "A command: " commandlibcp() {    for lib in $(ldd $1 |  grep -o "[^[:space:]]*/lib[^[:space:]]*"); do        libdir=$(dirname $lib)        [ -d $target$libdir ] || mkdir -p $target$libdir        [ -f $target$lib ] || cp $lib $target$lib    done}while [ "$command" != 'quit' ]; do    if ! which $command &> /dev/null; then        read -p "No such command, enter again: " command        continue    fi    command=$(which --skip-alias $command)    cmnddir=$(dirname $command)    [ -d $target$cmnddir ] || mkdir -p $target$cmnddir    [ -f $target$command ] || cp $command $target$command    libcp $command    read -p "Another command(quit): " commanddone


原创粉丝点击