Home  >  Article  >  System Tutorial  >  How to make a linux iso image from scratch (graphic tutorial)

How to make a linux iso image from scratch (graphic tutorial)

PHPz
PHPzforward
2024-01-06 22:21:462922browse

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镜像(图文教程)

6. Related links

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:jb51.net. If there is any infringement, please contact admin@php.cn delete