• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    如何从零开始制作一个linux iso镜像(图文教程)

    发布者: 雪落无声 | 发布时间: 2025-6-17 08:03| 查看数: 60| 评论数: 0|帖子模式

    一、前言

        对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核、一个根文件系统和引导。以下是本文制作linux iso镜像所用到的系统和软件:
        OS: ubuntu 20
        软件: xorriso
    二、制作linux内核

        1、首先需要去官网选择一个需要的版本下载下来,官网下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
        2、利用tar将其解压,然后进入其目录中,然后配置内核,常见的配置有以下几种:
          a、make defconfig - 默认配置
          b、make allyesconfig - 创建能选yes就选yes的配置
          c、make allnoconfig - 创建能选no就选no的配置
          d、make menuconfig - 基于ncurser的图形化界面配置
          这里采用命令make defconfig使用默认的即可,如下图所示:

        3、然后使用
    1. make bzImage
    复制代码
    命令编译出内核即可,如下图所示:

        编译好的内核文件在
    1. arch
    复制代码
    文件夹相应的架构文件夹下面,如下图所示:

    三、制作根文件系统

        1、我们这里利用busybox来制作一个根文件系统,busybox可以简单理解为一个linux工具的集合。首先还是下载busybox,官网下载地址:https://busybox.net/downloads/
        2、编译busybox与编译内核步骤基本一致,将下载好的压缩包进行解压,然后进入文件夹中,使用make defconfig配置默认编译选项,这里需要注意的是,在生成的
    1. .config
    复制代码
    配置文件中,需要设置
    1. CONFIG_STATIC=y
    复制代码
    ,如果没有,添加即可,如下图所示:


        3、然后使用
    1. make busybox install
    复制代码
    命令编译busybox,编译好后会在当前目录下面生产一个
    1. _install
    复制代码
    文件夹,如下图所示:




        4、然后创建一个
    1. rootfs
    复制代码
    文件夹,并将
    1. _install
    复制代码
    文件夹下面除
    1. linuxxrc
    复制代码
    以外的所有文件及文件夹都拷贝到
    1. rootfs
    复制代码
    文件夹下面,最后创建
    1. dev
    复制代码
    等文件夹,最后在根目录下面创建
    1. init
    复制代码
    文件即可,文件内容如下图所示:


        5、最后利用命令
    1. find . | cpio -R root:root -H newc -o | gzip > ../rootfs.gz
    复制代码
    将文件系统打包,至此,一个文件系统就创建完成了,如下图所示:

    四、BIOS

        1、这里我们使用
    1. syslinux
    复制代码
    来创建
    1. bios
    复制代码
    引导的一个linux iso镜像,
    1. syslinux
    复制代码
    官方下载地址如下:https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/
        2、将下载好的
    1. syslinux
    复制代码
    解压,然后创建文件夹
    1. isobios
    复制代码
    ,将解压后的
    1. syslinux
    复制代码
    文件夹下面的
    1. bios/core/isolinux.bin
    复制代码
    1. bios/com32/elflink/ldlinux/ldlinux.c32
    复制代码
    复制到
    1. isobios
    复制代码
    文件夹下面,如下图所示:

        3、在
    1. isobios
    复制代码
    文件夹下面创建配置文件
    1. isolinux.cfg
    复制代码
    ,文件内容如下所示:

        4、最后,在
    1. isobios
    复制代码
    文件夹下面使用命令
    1. xorriso -as mkisofs -o ../testbios.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./
    复制代码
    生成iso镜像文件,如下图所示:

        5、使用虚拟机
    1. vmware
    复制代码
    创建一个虚拟机,如下图所示,便是我们创建的一个linux iso镜像跑起来的样子。

    五、UEFI

        1、uefi这里采用
    1. system-boot
    复制代码
    1. syslinux
    复制代码
    配合来制作,首先,创建两个文件夹
    1. isouefi
    复制代码
    1. tmp
    复制代码
    ,其中,
    1. isouefi
    复制代码
    用来挂载设备,
    1. tmp
    复制代码
    文件夹用来临时存放文件以计算大小,然后在
    1. tmp
    复制代码
    文件夹下面创建
    1. EFI/BOOT
    复制代码
    1. loader/entries
    复制代码
    目录,接着,将解压后的
    1. systemboot
    复制代码
    下面的
    1. uefi_boot/EFI/BOOT/BOOTx64.EFI
    复制代码
    文件拷贝到
    1. tmp/EFI/BOOT
    复制代码
    目录下面,如下图所示:

        2、接着,在
    1. tmp/loader
    复制代码
    目录下面,创建文件
    1. loader.conf
    复制代码
    配置文件,第一行表示默认配置是
    1. entries
    复制代码
    目录下那个文件,第二行设置默认超时时间;然后在
    1. entries
    复制代码
    文件夹下面创建相应的配置文件,这里是
    1. mll-x86_64.conf
    复制代码
    ,文件内容和
    1. bios
    复制代码
    的差不多,不在单独细说,最后再将前面准备好的内核和文件系统拷贝到
    1. tmp
    复制代码
    目录下面,如下图所示:



        3、此时就可以根据
    1. tmp
    复制代码
    文件夹的总大小创建一个相同大小的
    1. img
    复制代码
    文件了,这里的
    1. tmp
    复制代码
    1. 11M
    复制代码
    ,为了稳妥起见,这里创建一个
    1. 12M
    复制代码
    1. img
    复制代码
    文件,命令为
    1. truncate -s 12M uefi.img
    复制代码
    ,然后使用
    1. losetup -f
    复制代码
    命令寻找一个当前未使用的逻辑设备,然后使用
    1. losetup
    复制代码
    命令将我们前面创建的
    1. img
    复制代码
    文件虚拟成改逻辑设备,接着利用
    1. mkfs.vfat
    复制代码
    将该设备格式化成
    1. vfat
    复制代码
    系统,接着使用
    1. mount
    复制代码
    命令将其挂载到
    1. isouefi
    复制代码
    文件夹下面,最后将
    1. tmp
    复制代码
    文件夹下面所有文件及其文件夹拷贝到
    1. isouefi
    复制代码
    目录下面,如下图所示:


        4、接着利用
    1. umount
    复制代码
    命令取消挂载,这样我们就得到一个包含
    1. 内核
    复制代码
    1. 文件系统
    复制代码
    等的
    1. img
    复制代码
    文件,接着创建一个
    1. iso
    复制代码
    文件夹,并且在该文件夹下面将创建一个
    1. boot
    复制代码
    文件夹,然后将
    1. img
    复制代码
    复制到
    1. iso/boot
    复制代码
    下面,最后利用
    1. xorriso
    复制代码
    工具生成
    1. iso
    复制代码
    文件即可,如下图所示:

        5、最后,新建一个虚拟机,引导选择uefi,启动即可,如下图所示:


    六、相关链接

        github链接:https://github.com/windy-purple/make_linux_iso
    到此这篇关于如何从零开始制作一个linux iso镜像(图文教程)的文章就介绍到这了,更多相关linux iso镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/LINUXjishu/798229.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表