差不多得了

Signed-off-by: liushuncheng <2930054131@qq.com>
This commit is contained in:
liushuncheng 2024-08-13 03:05:09 +00:00 committed by Gitee
parent a68b4e2f85
commit 74d76ff10f
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,18 @@
我们在生成完initramfs之后,我们将打包我们的系统镜像
进入你的宿主系统(编译你的lfs所使用的系统),
之后我们可以挂载安装lfs的硬盘,当然你要是编译在一个目录里的话就不用管
之后你可以chroot进去你的lfs,做一些必要的清理或调整
例如调整:/etc/fstab /etc/profile之类的文件,然后清理/tmp,清理.la,去除调试符号,退出chroot
之后卸载虚拟文件系统(假设有lfs变量,且你挂载了虚拟文件系统)
umount $LFS/dev/shm
umount $LFS/dev/pts
umount $LFS/{dev,proc,sys}
umount $LFS/run #假如你挂载了/run
之后开始压缩squashfs,在你的宿主系统里,且设置了LFS变量
sudo mksquashfs $LFS ./squashfs.img -comp zstd
如果你要编译的内核不支持zstd压缩的话或者你宿主机的squashfs-tool不支持zstd的话,
去除-comp zstd这个选项

View File

@ -0,0 +1,30 @@
要生成iso之前,我们先要搞好你的livecd里有什么要用的文件
一般来讲,红帽系的livecd iso的目录布局一般是这样子的
boot/ EFI/ images/ LiveOS/
boot/ EFI/这两个目录是用来引导的
images/里有pxeboot这个目录,pxeboot是我们的vmlinuz initrd.img这两个文件
LiveOS这个目录里面放我们的squashfs.img文件
虽然红帽系的引导使用的是grub-bios和grub-efi,但我们这次要用的isolinux+grub-efi
首先创建我们的目录,名字就叫livecd-dir就好了
mkdir ./livecd-dir/{boot,EFI,images,LiveOS,isolinux}
mkdir ./livecd-dir/images/pxeboot
然后复制你lfs的vmlinuz和initrd.img
示例:
cp -rv $LFS/boot/vmlinuz-xxx ./livecd-dir/images/pxeboot/vmlinuz
cp -rv $LFS/boot/initramfs.ing-xxx ./livecd-dir/images/pxeboot/initrd.img
复制squashfs.img:
cp -rv ./squashfs.img ./livecd-dir/LiveOS/
我们这个仓库很贴心的为你们准备了isolinux以及EFI
假设你把这个仓库克隆到了lfs-livecd目录
cp -rv ./lfs-livecd/isolinux/* ./livecd-dir/isolinux/*
cp -rv ./lfs-livecd/livecd-efiboot-fedora/EFI/* ./livecd-dir/EFI/
解压livecd-efiboot-fedora下的bootefi-fedora.7z,得到bootefi.img
然后mkdir ./livecd-dir/boot/grub
cp bootefi.img ./livecd-dir/boot/grub

View File

@ -0,0 +1,52 @@
搞完你的livecd的目录之后,
唠叨唠叨isolinux/isolinux.cfg,
和EFI/BOOT/grub.cfg
你们已经会编译lfs了,所以大家也应该知道这两个文件是配置引导的文件,告诉引导程序怎么引导内核
示例:
isolinux.cfg
=========================================================================
default vesamenu.c32
MENU BACKGROUND syslinux_splash.jpg
MENU TITLE lfs-livecd
LABEL lfs
MENU LABEL boot lfs 12.1
kernel /images/pxeboot/vmlinuz
initrd /images/pxeboot/initrd.img
append root=live:CDLABEL=LFS rd.live.image vga=788
==========================================================================
grub.cfg
==========================================================================================================================
set default="1"
function load_video {
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
insmod chain
set timeout=60
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'lfs'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Start lfs 12.1 with safe graphics' --class lfs --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz root=live:CDLABEL=LFS rd.live.image vga=788 nomodeset
initrd /images/pxeboot/initrd.img
}
menuentry 'start lfs 12.1' --class lfs --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz root=live:CDLABEL=LFS rd.live.image splash vga=788
initrd /images/pxeboot/initrd.img
}
=========================================================================================================================

18
教程/09-生成iso.txt Normal file
View File

@ -0,0 +1,18 @@
好了大家,这个目录布局引导文件搞完了,就开始生成iso文件
如果你是debian系的用户,安装isolinux xorriso genisoimage(mkisofs)这三个软件
之后生成livecd
sudo xorriso -as mkisofs -R -r -J -joliet-long -l -cache-inodes -iso-level 3 \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -partition_offset 16 \
-A "LFS" -p "LFS" -publisher "myName" -V "LFS" \
--modification-date=2023121300000000 \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot \
--efi-boot boot/grub/efi.img -append_partition 2 0x01 livecd-dir/boot/grub/efi.img \
-o my.iso livecd-dir
首先,带livecd-dir这个字段的就是你iso目录
然后--modification-date就是修改日期,没必要改
-publisher "myName",myName可以替换成你的名字
-o my.iso my.iso就是你最后生成的iso

View File

@ -0,0 +1,5 @@
好了你自己的livecd已经搞完了,试试用qemu之类的虚拟机测试一下吧
大家有什么问题可以开个issues,或者认识我的给我发QQ
如果大家有什么linux系统安装程序想反馈给我的话,测试之后我就添加安装程序的教程,这样LFS livecd就有安装程序了