一、前言对于一个极简化的linux系统而言,只需要三个部门就能组成,它们分别是一个linux内核、一个根文件系统和引导。以下是本文制作linux iso镜像所用到的系统和软件: OS: ubuntu 20 二、制作linux内核1、首先需要去官网选择一个需要的版本下载下来,官网下载地点:https://mirrors.edge.kernel.org/pub/linux/kernel/ 2、利用tar将其解压,然后进入其目录中,然后设置内核,常见的设置有以下几种: 3、然后利用[code]make bzImage[/code]命令编译出内核即可,如下图所示: 编译好的内核文件在[code]arch[/code]文件夹相应的架构文件夹下面,如下图所示: 三、制作根文件系统1、我们这里利用busybox来制作一个根文件系统,busybox可以简单理解为一个linux工具的集合。首先还是下载busybox,官网下载地点:https://busybox.net/downloads/ 2、编译busybox与编译内核步骤根本同等,将下载好的压缩包举行解压,然后进入文件夹中,利用make defconfig设置默认编译选项,这里需要留意的是,在生成的[code].config[/code]设置文件中,需要设置[code]CONFIG_STATIC=y[/code],假如没有,添加即可,如下图所示: 3、然后利用[code]make busybox install[/code]命令编译busybox,编译好后会在当前目录下面生产一个[code]_install[/code]文件夹,如下图所示:
4、然后创建一个[code]rootfs[/code]文件夹,并将[code]_install[/code]文件夹下面除[code]linuxxrc[/code]以外的全部文件及文件夹都拷贝到[code]rootfs[/code]文件夹下面,最后创建[code]dev[/code]等文件夹,最后在根目录下面创建[code]init[/code]文件即可,文件内容如下图所示: 5、最后利用命令[code]find . | cpio -R root:root -H newc -o | gzip > ../rootfs.gz[/code]将文件系统打包,至此,一个文件系统就创建完成了,如下图所示: 四、BIOS1、这里我们利用[code]syslinux[/code]来创建[code]bios[/code]引导的一个linux iso镜像,[code]syslinux[/code]官方下载地点如下:https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/ 2、将下载好的[code]syslinux[/code]解压,然后创建文件夹[code]isobios[/code],将解压后的[code]syslinux[/code]文件夹下面的[code]bios/core/isolinux.bin[/code]、[code]bios/com32/elflink/ldlinux/ldlinux.c32[/code]复制到[code]isobios[/code]文件夹下面,如下图所示: 3、在[code]isobios[/code]文件夹下面创建设置文件[code]isolinux.cfg[/code],文件内容如下所示: 4、最后,在[code]isobios[/code]文件夹下面利用命令[code]xorriso -as mkisofs -o ../testbios.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./[/code]生成iso镜像文件,如下图所示: 5、利用假造机[code]vmware[/code]创建一个假造机,如下图所示,便是我们创建的一个linux iso镜像跑起来的样子。 五、UEFI1、uefi这里采用[code]system-boot[/code]和[code]syslinux[/code]共同来制作,首先,创建两个文件夹[code]isouefi[/code]和[code]tmp[/code],此中,[code]isouefi[/code]用来挂载设备,[code]tmp[/code]文件夹用来临时存放文件以盘算大小,然后在[code]tmp[/code]文件夹下面创建[code]EFI/BOOT[/code]和[code]loader/entries[/code]目录,接着,将解压后的[code]systemboot[/code]下面的[code]uefi_boot/EFI/BOOT/BOOTx64.EFI[/code]文件拷贝到[code]tmp/EFI/BOOT[/code]目录下面,如下图所示: 2、接着,在[code]tmp/loader[/code]目录下面,创建文件[code]loader.conf[/code]设置文件,第一行体现默认设置是[code]entries[/code]目录下谁人文件,第二行设置默认超时时间;然后在[code]entries[/code]文件夹下面创建相应的设置文件,这里是[code]mll-x86_64.conf[/code],文件内容和[code]bios[/code]的差不多,不在单独细说,最后再将前面准备好的内核和文件系统拷贝到[code]tmp[/code]目录下面,如下图所示: 3、此时就可以根据[code]tmp[/code]文件夹的总大小创建一个雷同大小的[code]img[/code]文件了,这里的[code]tmp[/code]是[code]11M[/code],为了稳妥起见,这里创建一个[code]12M[/code]的[code]img[/code]文件,命令为[code]truncate -s 12M uefi.img[/code],然后利用[code]losetup -f[/code]命令探求一个当前未利用的逻辑设备,然后利用[code]losetup[/code]命令将我们前面创建的[code]img[/code]文件假造成改逻辑设备,接着利用[code]mkfs.vfat[/code]将该设备格式化成[code]vfat[/code]系统,接着利用[code]mount[/code]命令将其挂载到[code]isouefi[/code]文件夹下面,最后将[code]tmp[/code]文件夹下面全部文件及其文件夹拷贝到[code]isouefi[/code]目录下面,如下图所示: 4、接着利用[code]umount[/code]命令取消挂载,这样我们就得到一个包含[code]内核[/code]、[code]文件系统[/code]等的[code]img[/code]文件,接着创建一个[code]iso[/code]文件夹,并且在该文件夹下面将创建一个[code]boot[/code]文件夹,然后将[code]img[/code]复制到[code]iso/boot[/code]下面,最后利用[code]xorriso[/code]工具生成[code]iso[/code]文件即可,如下图所示: 5、最后,新建一个假造机,引导选择uefi,启动即可,如下图所示: 六、干系链接github链接:https://github.com/windy-purple/make_linux_iso 到此这篇关于怎样从零开始制作一个linux iso镜像(图文教程)的文章就介绍到这了,更多干系linux iso镜像内容请搜索脚本之家以前的文章或继承欣赏下面的干系文章,盼望各人以后多多支持脚本之家! 来源:https://www.jb51.net/LINUXjishu/798229.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 18:47 , Processed in 0.034519 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.