search
HomeSystem TutorialLINUXHow to make a linux iso image from scratch (graphic tutorial)

I. Introduction

For a very simplified Linux system, it only requires three parts, which are a Linux kernel, a root file system and boot. The following are the systems and software used in this article to create linux iso images:

OS: ubuntu 20
Software: xorriso

2. Making linux kernel

1. First, you need to go to the official website to select a required version and download it. The official website download address: https://www.php.cn/link/293835c2cc75b585649498ee74b395f5

2. Use tar to decompress it, then enter its directory, and then configure the kernel. Common configurations include the following:
a.make defconfig - default configuration
b. make allyesconfig - Create a configuration that allows you to select yes
c. make allnoconfig - Create a configuration that allows you to select no.
d. make menuconfig - ncurser-based graphical interface configuration
Here you can use the command make defconfig to use the default one, as shown in the figure below:

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

3. Then use the make bzImage command to compile the kernel, as shown in the figure below:

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

The compiled kernel file is under the corresponding architecture folder of the arch folder, as shown in the following figure:

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

3. Create root file system

1. We use busybox to create a root file system. busybox can be simply understood as a collection of Linux tools. First, download busybox, official website download address: https://www.php.cn/link/890ff058169b5a1d1a7f07d467f1f57b

2. The steps for compiling busybox are basically the same as compiling the kernel. Unzip the downloaded compressed package, then enter the folder and use make defconfig to configure the default compilation options. What needs to be noted here is that in the generated . configIn the configuration file, you need to set CONFIG_STATIC=y. If not, just add it, as shown in the figure below:

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

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

3. Then use the make busybox install command to compile busybox. After compilation, a _install folder will be generated under the current directory, as shown in the following figure:

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

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

4. Then create a rootfs folder and copy all files and folders under the _install folder except linuxxrc to ## Under the #rootfs folder, finally create folders such as dev, and finally create the init file under the root directory. The file content is as shown below:

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

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

5. Finally, use the command

find . | cpio -R root:root -H newc -o | gzip > ../rootfs.gz to package the file system. At this point, a file system is created Completed, as shown below:

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

4. BIOS

1. Here we use syslinux to create a linux iso image guided by bios. The official download address of syslinux is as follows: https:// www.php.cn/link/364c32263dd3f0df5095b65321f3cd79

2. Unzip the downloaded syslinux, then create the folder isobios, and put the bios/ under the unzipped syslinux folder core/isolinux.bin, bios/com32/elflink/ldlinux/ldlinux.c32 are copied to the isobios folder, as shown below:

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

3. Create the configuration file isolinux.cfg under the isobios folder. The file content is as follows:

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

4. Finally, use the command xorriso -as mkisofs -o ../testbios.iso -b isolinux.bin -c boot.cat -no-emul- under the isobios folder boot -boot-load-size 4 -boot-info-table ./Generate iso image file, as shown below:

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

5. Use virtual machine vmware to create a virtual machine. As shown in the figure below, this is how the Linux iso image we created looks like when it is running.

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

5. UEFI

1. uefi is made here using system-boot and syslinux. First, create two folders isouefi and tmp, among them, isouefi is used to mount the device, the tmp folder is used to temporarily store files to calculate the size, and then create ## under the tmp folder #EFI/BOOT and loader/entries directories, then, unzip the systemboot file below uefi_boot/EFI/BOOT/BOOTx64.EFI Copy to the tmp/EFI/BOOT directory, as shown in the figure below:

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

2. Next, create the file

loader.conf configuration file under the tmp/loader directory. The first line indicates that the default configuration is under the entries directory. In that file, the second line sets the default timeout; then create the corresponding configuration file under the entries folder, here is mll-x86_64.conf, the file content and bios is almost the same, so I won’t go into details separately. Finally, copy the kernel and file system prepared previously to the tmp directory, as shown in the following figure:

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

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

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

3. At this point, you can create an

img file of the same size based on the total size of the tmp folder, where tmp is 11M, for the sake of safety, create a img file of 12M, the command is truncate -s 12M uefi.img, and then use The losetup -f command finds a currently unused logical device, then uses the losetup command to virtualize the img file we created earlier into a logical device, and then uses mkfs .vfatFormat the device into the vfat system, then use the mount command to mount it under the isouefi folder, and finally Copy all files and folders under the tmp folder to the isouefi directory, as shown in the following figure:

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

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

4. Then use the umount command to cancel the mount, so that we get an img containing kernel, file system, etc. file, then create a iso folder, and a boot folder will be created under the folder, and then copy img to iso/ Under boot, finally use the xorriso tool to generate the iso file, as shown in the figure below:

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

5. Finally, create a new virtual machine, select uefi for boot, and start it, as shown in the figure below:

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

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

github link: https://www.php.cn/link/e32c6c0d76c602ec48a1ec030982eb85

The above is the detailed content of How to make a linux iso image from scratch (graphic tutorial). For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:脚本之家. If there is any infringement, please contact admin@php.cn delete
Warehouse: A GUI for Effortlessly Handling Flatpak AppsWarehouse: A GUI for Effortlessly Handling Flatpak AppsMay 09, 2025 am 11:30 AM

A GUI for Effortless Flatpak Management: Introducing Warehouse Managing a growing collection of Flatpak applications can be cumbersome using only the command line. Enter Warehouse, a user-friendly graphical interface designed to streamline Flatpak a

8 Powerful Linux Commands to Identify Hard Drive Bottlenecks8 Powerful Linux Commands to Identify Hard Drive BottlenecksMay 09, 2025 am 11:03 AM

This article provides a comprehensive guide to identifying and resolving hard drive bottlenecks in Linux systems. Experienced server administrators will find this particularly useful. Slow disk operations can severely impact application performance,

4 Best QR Code Generators for Linux Users4 Best QR Code Generators for Linux UsersMay 09, 2025 am 10:27 AM

Efficient QR code generation tool under Linux system In today's digital world, QR codes have become a way to quickly and conveniently share information, simplifying data access from URLs, texts, contacts, Wi-Fi credentials, and even payment information. Linux users can use a variety of tools to create QR codes efficiently. Let's take a look at some popular QR code generators that can be used directly on Linux systems. QRencode QRencode is a lightweight command line tool for generating QR codes on Linux. It is well-received for its simplicity and efficiency and is popular with Linux users who prefer direct methods. Using QRencode, you can use the URL,

elementary OS 8: A User-Friendly Linux for macOS and Windowselementary OS 8: A User-Friendly Linux for macOS and WindowsMay 09, 2025 am 10:19 AM

Elementary OS 8 Circe: A Smooth and Stylish Linux Experience Elementary OS, a Ubuntu-based Linux distribution, has evolved from a simple theme pack into a fully-fledged, independent operating system. Known for its user-friendly interface, elegant de

40  Linux Commands for Every Machine Learning Engineer40 Linux Commands for Every Machine Learning EngineerMay 09, 2025 am 10:06 AM

Mastering Linux is crucial for any machine learning (ML) engineer. Its command-line interface offers unparalleled flexibility and control, streamlining workflows and boosting productivity. This article outlines essential Linux commands, explained fo

Arch Linux Cheat Sheet: Essential Commands for BeginnersArch Linux Cheat Sheet: Essential Commands for BeginnersMay 09, 2025 am 09:54 AM

Arch Linux: A Beginner's Command-Line Cheat Sheet Arch Linux offers unparalleled control but can feel daunting for newcomers. This cheat sheet provides essential commands to confidently manage your system. System Information & Updates These com

How to Install Scikit-learn for Machine Learning on LinuxHow to Install Scikit-learn for Machine Learning on LinuxMay 09, 2025 am 09:53 AM

This guide provides a comprehensive walkthrough of installing and using the Scikit-learn machine learning library on Linux systems. Scikit-learn (sklearn) is a powerful, open-source Python library offering a wide array of tools for various machine l

How to Install Kali Linux Tools in UbuntuHow to Install Kali Linux Tools in UbuntuMay 09, 2025 am 09:46 AM

This guide explains how to leverage Docker for accessing Kali Linux tools, a safer and more efficient alternative to outdated methods like Katoolin. Katoolin is no longer actively maintained and may cause compatibility problems on modern systems. Do

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version