mirror of
https://gitee.com/liushuncheng-lsc/lfs-livecd.git
synced 2025-01-23 16:12:12 +08:00
差不多得了
Signed-off-by: liushuncheng <2930054131@qq.com>
This commit is contained in:
parent
a68b4e2f85
commit
74d76ff10f
18
教程/06-生成squashfs.txt
Normal file
18
教程/06-生成squashfs.txt
Normal 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这个选项
|
30
教程/07-livecd目录布置.txt
Normal file
30
教程/07-livecd目录布置.txt
Normal 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
|
52
教程/08-引导配置文件.txt
Normal file
52
教程/08-引导配置文件.txt
Normal 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
18
教程/09-生成iso.txt
Normal 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
|
5
教程/10-收尾工作.txt
Normal file
5
教程/10-收尾工作.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
好了你自己的livecd已经搞完了,试试用qemu之类的虚拟机测试一下吧
|
||||||
|
|
||||||
|
大家有什么问题可以开个issues,或者认识我的给我发QQ
|
||||||
|
|
||||||
|
如果大家有什么linux系统安装程序想反馈给我的话,测试之后我就添加安装程序的教程,这样LFS livecd就有安装程序了
|
Loading…
Reference in New Issue
Block a user