当前位置: 首页 > article >正文

使用chroot预安装软件到ubuntu22中


 

1、安装依赖

# 安装依赖工具

sudo apt update && sudo apt install -y \

squashfs-tools \

genisoimage \

xorriso \

isolinux \

syslinux-utils \

p7zip-full

sudo apt update

sudo apt install grub-pc-bin grub-efi-amd64-bin -y

# 创建工作目录

mkdir -p ./custom-iso/{original,edit}

2、提取ISO内容

# 挂载原始ISO

sudo mount -o loop ubuntu-22.04.5-live-server-amd64.iso /mnt

# 复制文件到工作目录

sudo rsync -a /mnt/ ./custom-iso/original/

sudo umount /mnt

cd ./custom-iso

3、 解压系统文件

# 解压squashfs文件

sudo unsquashfs -f -d ./edit ./original/casper/ubuntu-server-minimal.squashfs

4、配置Chroot环境

# 进入chroot环境

sudo chroot ./edit

# ---------- 在Chroot环境中操作,以下是安装nginx的例子 ----------

# 配置基础环境

apt update

apt install -y debconf-utils

export DEBIAN_FRONTEND=noninteractive

# 添加自定义软件(示例安装nginx)

apt install -y nginx

# 清理缓存

apt clean

rm -rf /var/lib/apt/lists/*

rm -rf /tmp/*

# ---------- 在Chroot环境中操作,以下是安装nginx的例子 ----------

# 退出chroot

exit

5、重新打包系统文件

# 生成新squashfs文件

rm -rf original/casper/ubuntu-server-minimal.squashfs

sudo mksquashfs edit original/casper/ubuntu-server-minimal.squashfs \

-comp xz \

-b 1M \

-noappend

#生成md5

cd original

find -type f -exec md5sum {} \; > md5sum.txt

cd ..


 

xorriso -as mkisofs -iso-level 3 -full-iso9660-filenames \

-volid "Custom Ubuntu" \

-eltorito-boot boot/grub/i386-pc/eltorito.img \

-no-emul-boot -boot-load-size 4 -boot-info-table \

-eltorito-alt-boot -e EFI/boot/grubx64.efi -no-emul-boot \

-isohybrid-gpt-basdat \

-o ./custom-ubuntu-22.04.5-fixed.iso ./original

6、验证

qemu-system-x86_64 -m 2G -cdrom ./custom-ubuntu-22.04.5-fixed.iso -curses


http://www.kler.cn/a/579381.html

相关文章:

  • 【学习笔记】【DeepSeek AI 医生】2-2 AI家庭医生课程内容介绍
  • vscode的终端无法运行vue或者node等命令解决方案
  • 在uni-app中使用SQLite实现离线下数据同步:从封装到实践
  • 框架基本知识总结 Day15
  • 字母异位词分组 力扣49
  • UI自动化测试Selenium安装教程(1)
  • 解决VScode 连接不上问题
  • Python Flask 使用不同的 HTTP 方法类型处理请求
  • 华为OD机试-数组去重和排序(Java 2024 C卷 100分)
  • React 项目中 SVG 图标的调试和预览方法
  • Go红队开发—格式导出
  • 2025年最值得尝试的 8 个 AI 开源大模型
  • 嵌入式工控机在汽车制造中的卓越表现
  • Taro React组件开发 —— RuiNoticeBar 通知栏
  • 视觉图像处理
  • 读取 Resource 目录下文件内容
  • deepseek 3FS编译
  • TCP协议与包头格式
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(1)知识基础
  • 用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏