目 录CONTENT

文章目录

linux live cd iso镜像构建

酷谷的谷子
2025-01-07 / 0 评论 / 0 点赞 / 6 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

下面介绍一下如何自己构建一个iso镜像

构建一个自定义的 Linux Live CD ISO 镜像通常涉及以下步骤。你可以使用工具如 Debian LiveUbuntu Customization Kit (UCK)Linux From Scratch (LFS) 等来完成这个任务。以下是使用 Debian Live 工具构建 Live CD 的基本步骤:

1. 安装必要的工具

首先,确保你的系统上安装了 live-build 工具包。live-build 是 Debian 和 Ubuntu 中用于构建 Live CD 的工具。

sudo apt-get update
sudo apt-get install live-build
​

2. 创建构建目录

创建一个新的目录来存放你的 Live CD 构建文件。

mkdir ~/live-cd
cd ~/live-cd
​

3. 初始化 Live CD 配置

使用 lb config 命令初始化 Live CD 的配置文件。

lb config
​

这将在当前目录下生成一些配置文件和目录结构。

4. 自定义配置

你可以编辑生成的配置文件来定制你的 Live CD。主要的配置文件包括:

  • config/package-lists/: 这里可以添加你想要包含在 Live CD 中的软件包列表。

  • config/chroot_local-includes/: 这里可以添加你想要包含在 Live CD 中的自定义文件。

  • config/bootloaders/: 这里可以配置引导加载器。

例如,你可以创建一个新的软件包列表文件:

echo "vim" > config/package-lists/my-packages.list.chroot
​

5. 构建 Live CD

使用 lb build 命令开始构建 Live CD。

sudo lb build
​

这个过程可能需要一些时间,具体取决于你选择的软件包和系统的性能。

6. 获取生成的 ISO 文件

构建完成后,生成的 ISO 文件将位于当前目录下,通常命名为 live-image-i386.hybrid.isolive-image-amd64.hybrid.iso,具体取决于你选择的架构。

7. 测试 Live CD

你可以使用虚拟机(如 VirtualBox)或将其烧录到 USB 驱动器来测试生成的 ISO 文件。

qemu-system-x86_64 -cdrom live-image-amd64.hybrid.iso
​

8. 进一步定制(可选)

如果你需要进一步定制 Live CD,可以修改配置文件并重新运行 lb build 命令。

9. 清理(可选)

如果你不再需要构建文件,可以清理生成的临时文件。

sudo lb clean
​

10. 分享或部署

一旦你对生成的 Live CD 满意,你可以将其分享给其他人或部署到多台机器上。

注意事项

  • 构建 Live CD 可能需要大量的磁盘空间和内存,确保你的系统有足够的资源。

  • 如果你在构建过程中遇到问题,可以查看生成的日志文件以获取更多信息。

通过以上步骤,你可以成功构建一个自定义的 Linux Live CD ISO 镜像。

[2025-01-06 17:29:29] user :
用 isolinux来制作

[2025-01-06 17:29:30] assistant :
使用 isolinux 来制作一个自定义的 Linux Live CD ISO 镜像是一种传统但非常灵活的方式。isolinux 是一个轻量级的引导加载器,通常用于创建可启动的 ISO 镜像。以下是详细的步骤:


1. 准备工作

确保你的系统上安装了必要的工具:

sudo apt-get update
sudo apt-get install isolinux syslinux genisoimage
​
  • isolinux:用于引导加载器。

  • syslinux:提供 isolinux 所需的文件。

  • genisoimage:用于生成 ISO 镜像。


2. 创建目录结构

创建一个工作目录,并设置所需的目录结构:

mkdir -p ~/custom-live-cd/{isolinux,boot/grub,live}
cd ~/custom-live-cd
​
  • isolinux/:存放 isolinux 引导加载器的配置文件。

  • boot/grub/:可选,用于支持 GRUB 引导。

  • live/:存放 Live 系统的文件系统(如 filesystem.squashfs)。


3. 准备 isolinux 引导文件

isolinux 所需的文件复制到 isolinux/ 目录:

cp /usr/lib/ISOLINUX/isolinux.bin isolinux/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 isolinux/
​
  • isolinux.binisolinux 的核心引导文件。

  • ldlinux.c32isolinux 的模块文件。


4. 创建 isolinux.cfg 配置文件

isolinux/ 目录下创建一个名为 isolinux.cfg 的配置文件,用于定义引导菜单:

nano isolinux/isolinux.cfg
​

添加以下内容:

DEFAULT live
PROMPT 0
TIMEOUT 300

LABEL live
  MENU LABEL Start Custom Live CD
  KERNEL /live/vmlinuz
  APPEND initrd=/live/initrd.img boot=live components quiet splash

LABEL memtest
  MENU LABEL Memory Test
  KERNEL /boot/memtest86+.bin
​
  • DEFAULT live:默认引导选项。

  • KERNEL /live/vmlinuz:指定内核文件路径。

  • APPEND:传递给内核的参数。

  • initrd=/live/initrd.img:指定初始 RAM 磁盘文件。


5. 准备 Live 系统文件

将你的 Live 系统文件(如 vmlinuzinitrd.imgfilesystem.squashfs)复制到 live/ 目录。

例如,如果你有一个现成的 Live 系统,可以从其 ISO 中提取这些文件:

sudo mount -o loop /path/to/original-live.iso /mnt
cp /mnt/casper/vmlinuz live/
cp /mnt/casper/initrd.img live/
cp /mnt/casper/filesystem.squashfs live/
sudo umount /mnt
​

6. 生成 ISO 镜像

使用 genisoimage 工具生成 ISO 镜像:

genisoimage -o custom-live-cd.iso \
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -J -r -V "CUSTOM_LIVE_CD" \
  .
​
  • -b isolinux/isolinux.bin:指定引导加载器文件。

  • -c isolinux/boot.cat:生成引导目录文件。

  • -no-emul-boot:禁用模拟模式。

  • -boot-load-size 4:设置引导加载大小。

  • -boot-info-table:添加引导信息表。

  • -J -r:启用 Joliet 和 Rock Ridge 扩展。

  • -V "CUSTOM_LIVE_CD":设置卷标。


7. 测试 ISO 镜像

使用虚拟机(如 qemuVirtualBox)测试生成的 ISO 镜像:

qemu-system-x86_64 -cdrom custom-live-cd.iso
​

8. 可选:添加 GRUB 支持

如果你希望同时支持 isolinuxGRUB,可以在 boot/grub/ 目录下添加 GRUB 配置文件,并在生成 ISO 时包含 GRUB 引导文件。


9. 清理

完成后,你可以删除工作目录以释放空间:

rm -rf ~/custom-live-cd
​

总结

通过以上步骤,你可以使用 isolinux 制作一个自定义的 Linux Live CD ISO 镜像。这种方法非常适合需要高度定制的场景,例如嵌入特定的工具或配置文件。如果你需要更高级的功能(如 UEFI 支持),可以考虑结合 GRUB 或其他引导加载器。

[2025-01-06 17:32:13] user :
加入grub efi

[2025-01-06 17:32:14] assistant :
要在自定义的 Linux Live CD ISO 镜像中同时支持传统的 BIOS(通过 isolinux)和 UEFI(通过 GRUB),需要额外配置 GRUB 的 EFI 引导部分。以下是详细的步骤:


1. 准备工作

确保你的系统上安装了必要的工具:

sudo apt-get update
sudo apt-get install isolinux syslinux genisoimage grub-efi-amd64-bin
​
  • grub-efi-amd64-bin:用于生成 GRUB 的 EFI 引导文件。


2. 创建目录结构

创建一个工作目录,并设置所需的目录结构:

mkdir -p ~/custom-live-cd/{isolinux,boot/grub,EFI/boot,live}
cd ~/custom-live-cd
​
  • isolinux/:存放 isolinux 引导加载器的配置文件。

  • boot/grub/:存放 GRUB 的 BIOS 引导文件。

  • EFI/boot/:存放 GRUB 的 UEFI 引导文件。

  • live/:存放 Live 系统的文件系统(如 filesystem.squashfs)。


3. 准备 isolinux 引导文件

isolinux 所需的文件复制到 isolinux/ 目录:

cp /usr/lib/ISOLINUX/isolinux.bin isolinux/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 isolinux/
​

4. 创建 isolinux.cfg 配置文件

isolinux/ 目录下创建一个名为 isolinux.cfg 的配置文件,用于定义引导菜单:

nano isolinux/isolinux.cfg
​

添加以下内容:

DEFAULT live
PROMPT 0
TIMEOUT 300

LABEL live
  MENU LABEL Start Custom Live CD (BIOS)
  KERNEL /live/vmlinuz
  APPEND initrd=/live/initrd.img boot=live components quiet splash

LABEL memtest
  MENU LABEL Memory Test (BIOS)
  KERNEL /boot/memtest86+.bin
​

5. 准备 GRUB 的 BIOS 引导文件

将 GRUB 的 BIOS 引导文件复制到 boot/grub/ 目录:

cp /usr/lib/grub/i386-pc/* boot/grub/
​

6. 创建 GRUB 的 BIOS 配置文件

boot/grub/ 目录下创建一个名为 grub.cfg 的配置文件:

nano boot/grub/grub.cfg
​

添加以下内容:

set timeout=10
set default=0

menuentry "Start Custom Live CD (BIOS)" {
  linux /live/vmlinuz boot=live components quiet splash
  initrd /live/initrd.img
}

menuentry "Memory Test (BIOS)" {
  linux16 /boot/memtest86+.bin
}
​

7. 准备 GRUB 的 UEFI 引导文件

生成 GRUB 的 UEFI 引导文件,并将其复制到 EFI/boot/ 目录:

grub-mkstandalone -O x86_64-efi -o EFI/boot/bootx64.efi --locales="" --fonts="" "boot/grub/grub.cfg=./boot/grub/grub.cfg"
​
  • -O x86_64-efi:指定目标平台为 x86_64 UEFI。

  • -o EFI/boot/bootx64.efi:输出文件路径。

  • --locales="" --fonts="":禁用不必要的语言和字体支持。


8. 创建 GRUB 的 UEFI 配置文件

EFI/boot/ 目录下创建一个名为 grub.cfg 的配置文件:

nano EFI/boot/grub.cfg
​

添加以下内容:

set timeout=10
set default=0

menuentry "Start Custom Live CD (UEFI)" {
  linux /live/vmlinuz boot=live components quiet splash
  initrd /live/initrd.img
}

menuentry "Memory Test (UEFI)" {
  linux16 /boot/memtest86+.bin
}
​

9. 准备 Live 系统文件

将你的 Live 系统文件(如 vmlinuzinitrd.imgfilesystem.squashfs)复制到 live/ 目录。

例如,如果你有一个现成的 Live 系统,可以从其 ISO 中提取这些文件:

sudo mount -o loop /path/to/original-live.iso /mnt
cp /mnt/casper/vmlinuz live/
cp /mnt/casper/initrd.img live/
cp /mnt/casper/filesystem.squashfs live/
sudo umount /mnt
​

10. 生成 ISO 镜像

使用 genisoimage 工具生成 ISO 镜像,并确保包含 BIOS 和 UEFI 引导文件:

genisoimage -o custom-live-cd.iso \
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -eltorito-alt-boot \
  -e EFI/boot/bootx64.efi \
  -no-emul-boot \
  -J -r -V "CUSTOM_LIVE_CD" \
  .
​
  • -eltorito-alt-boot:启用第二个引导项(UEFI)。

  • -e EFI/boot/bootx64.efi:指定 UEFI 引导文件。


11. 测试 ISO 镜像

使用虚拟机(如 qemuVirtualBox)测试生成的 ISO 镜像,确保 BIOS 和 UEFI 引导都正常工作。

  • 测试 BIOS 引导:

    qemu-system-x86_64 -cdrom custom-live-cd.iso
    ​
  • 测试 UEFI 引导:

    qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -cdrom custom-live-cd.iso
    ​

12. 清理

完成后,你可以删除工作目录以释放空间:

rm -rf ~/custom-live-cd
​

总结

通过以上步骤,你可以制作一个同时支持 BIOS 和 UEFI 引导的自定义 Linux Live CD ISO 镜像。isolinux 用于传统 BIOS 引导,而 GRUB 用于 UEFI 引导。这种方法适用于需要兼容多种硬件环境的场景。

[2025-01-06 17:38:40] user :
filesystem.squashfs 需要自己构建 以 deepin v23为例子

[2025-01-06 17:38:41] assistant :
要构建 filesystem.squashfs 文件,通常需要从现有的 Deepin V23 系统中提取文件系统,并将其压缩为 SquashFS 格式。以下是详细的步骤,以 Deepin V23 为例:


1. 准备工作

确保你的系统上安装了必要的工具:

sudo apt-get update
sudo apt-get install squashfs-tools
​
  • squashfs-tools:用于创建和操作 SquashFS 文件系统。


2. 获取 Deepin V23 的文件系统

方法 1:从现有的 Deepin 系统中提取

如果你已经在运行 Deepin V23,可以直接从当前系统中提取文件系统。

  1. 创建一个临时目录用于挂载文件系统:

    mkdir -p ~/deepin-fs
    ​
  2. 挂载根文件系统到临时目录:

    sudo mount --bind / ~/deepin-fs
    ​
  3. 排除不需要的文件(如 /proc/sys/dev 等):

    sudo rm -rf ~/deepin-fs/proc/*
    sudo rm -rf ~/deepin-fs/sys/*
    sudo rm -rf ~/deepin-fs/dev/*
    ​

方法 2:从 Deepin ISO 中提取

如果你有 Deepin V23 的 ISO 文件,可以从 ISO 中提取文件系统。

  1. 挂载 ISO 文件:

    sudo mount -o loop /path/to/deepin-v23.iso /mnt
    ​
  2. 复制文件系统到临时目录:

    mkdir -p ~/deepin-fs
    cp -a /mnt/casper/filesystem.squashfs ~/deepin-fs/
    sudo umount /mnt
    ​
  3. 解压 filesystem.squashfs

    sudo unsquashfs -d ~/deepin-fs ~/deepin-fs/filesystem.squashfs
    ​

3. 自定义文件系统(可选)

在构建 filesystem.squashfs 之前,你可以对文件系统进行自定义修改。例如:

  • 添加或删除软件包:

    sudo chroot ~/deepin-fs
    apt-get install <package-name>
    apt-get remove <package-name>
    exit
    ​
  • 修改配置文件:

    sudo nano ~/deepin-fs/etc/some-config-file
    ​
  • 清理不必要的文件:

    sudo rm -rf ~/deepin-fs/var/cache/apt/archives/*
    sudo rm -rf ~/deepin-fs/tmp/*
    ​

4. 构建 filesystem.squashfs

使用 mksquashfs 工具将文件系统压缩为 SquashFS 格式:

sudo mksquashfs ~/deepin-fs filesystem.squashfs -comp xz -b 1M
​
  • -comp xz:使用 XZ 压缩算法(推荐)。

  • -b 1M:设置块大小为 1MB。


5. 验证 filesystem.squashfs

解压生成的 filesystem.squashfs 文件,验证其内容是否正确:

unsquashfs -l filesystem.squashfs
​

6. 将 filesystem.squashfs 放入 Live CD 目录

将生成的 filesystem.squashfs 文件复制到你的 Live CD 工作目录中:

cp filesystem.squashfs ~/custom-live-cd/live/
​

7. 继续构建 ISO 镜像

按照之前的方法,继续构建支持 BIOS 和 UEFI 的 ISO 镜像。


8. 清理

完成后,删除临时目录以释放空间:

sudo rm -rf ~/deepin-fs
​

总结

通过以上步骤,你可以从 Deepin V23 系统中提取文件系统,并构建自定义的 filesystem.squashfs 文件。结合之前的 ISO 构建方法,你可以制作一个完全自定义的 Deepin Live CD。

[2025-01-06 17:42:23] user :
还有其他方法吗,如 debootstrap

[2025-01-06 17:42:24] assistant :
是的,除了从现有系统中提取文件系统外,你还可以使用 debootstrap 工具从头开始构建一个全新的文件系统。debootstrap 是一个强大的工具,可以从网络或本地镜像中安装一个基本的 Debian/Ubuntu/Deepin 系统。以下是使用 debootstrap 构建 Deepin V23 文件系统的详细步骤:


1. 安装 debootstrap

首先,确保你的系统上安装了 debootstrap

sudo apt-get update
sudo apt-get install debootstrap
​

2. 创建目标目录

创建一个目录,用于存放新构建的文件系统:

sudo mkdir -p ~/deepin-fs
​

3. 使用 debootstrap 构建文件系统

Deepin 基于 Debian/Ubuntu,因此可以使用 debootstrap 来安装一个基本的 Deepin 系统。以下是具体步骤:

方法 1:从网络安装

如果 Deepin V23 的仓库支持 debootstrap,可以直接从网络安装:

sudo debootstrap --arch=amd64 <deepin-version> ~/deepin-fs <repository-url>
​
  • <deepin-version>:Deepin 的版本号(例如 v23unstable)。

  • <repository-url>:Deepin 的软件源地址(例如 https://community-packages.deepin.com/deepin/)。

方法 2:从本地镜像安装

如果你有 Deepin V23 的本地镜像,可以使用本地路径作为仓库:

sudo debootstrap --arch=amd64 <deepin-version> ~/deepin-fs file:///path/to/deepin-mirror
​

4. 配置新文件系统

安装完成后,进入新文件系统进行配置:

sudo chroot ~/deepin-fs
​

设置语言和时区

export LANG=C.UTF-8
export DEBIAN_FRONTEND=noninteractive
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
dpkg-reconfigure --frontend noninteractive tzdata
​

配置软件源

编辑 /etc/apt/sources.list,添加 Deepin 的软件源:

nano /etc/apt/sources.list
​

示例内容:

deb https://community-packages.deepin.com/deepin/ apricot main contrib non-free
​

更新软件包

apt-get update
apt-get upgrade -y
​

安装必要的软件包

apt-get install -y systemd-sysv deepin-desktop-base network-manager
​

设置 root 密码

passwd
​

退出 chroot 环境

exit
​

5. 清理不必要的文件

在构建 SquashFS 之前,清理不必要的文件以减小文件系统大小:

sudo rm -rf ~/deepin-fs/var/cache/apt/archives/*
sudo rm -rf ~/deepin-fs/tmp/*
​

6. 构建 filesystem.squashfs

使用 mksquashfs 工具将文件系统压缩为 SquashFS 格式:

sudo mksquashfs ~/deepin-fs filesystem.squashfs -comp xz -b 1M
​

7. 将 filesystem.squashfs 放入 Live CD 目录

将生成的 filesystem.squashfs 文件复制到你的 Live CD 工作目录中:

cp filesystem.squashfs ~/custom-live-cd/live/
​

8. 继续构建 ISO 镜像

按照之前的方法,继续构建支持 BIOS 和 UEFI 的 ISO 镜像。


9. 清理

完成后,删除临时目录以释放空间:

sudo rm -rf ~/deepin-fs
​

总结

使用 debootstrap 构建文件系统的方法更加灵活,适合从头开始构建一个干净的系统。结合之前的 ISO 构建方法,你可以制作一个完全自定义的 Deepin Live CD。如果你需要更高级的定制(例如预装软件、修改默认配置等),可以在 chroot 环境中完成。

回复点赞1收藏只看作者


0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区