使用chroot定制系统

news2024/9/22 19:35:13

        假设下载的桌面系统为ubuntu.iso。

一、进入iso并安装软件包

        首先创建一个目录,如my-ubuntu,然后将ubuntu.iso挂载到这个目录上,或者不用挂载,直接解压也行,总之要能进入到iso里面去:

sudo mount -o loop /path/to/ubuntu.iso /home/it8343/my-ubuntu

        然后cd到my-ubuntu这个目录中,通过tree命令找到filesystem.squashfs这个文件,将它拷贝到其它普通目录,并解压它:

sudo unsquashfs filesystem.squashfs

        当然,你可能在此之前需要安装解压工具:

sudo apt-get install squashfs-tools

        解压之后就可以得到一个有完整文件系统的子系统,我们可以直接使用chroot进入该系统:

sudo chroot squashfs-root

        进入之后就可以在里面自定义安装/卸载软件包了,就和操作普通的Linux系统一样。

        进入之后可能没有网络,你可能还需要配置dns或者IP等,视具体情况而定:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

二、重新生成iso文件

        将修改后的文件夹重新压缩,并将压缩文件拷贝到iso的文件夹里面去替换原文件:

sudo mksquashfs squashfs-root/ filesystem.squashfs

        然后更新iso文件夹里面的md5文件:

cd openkylin-0.9.5-x86_64/
find . -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt

        最后就可以将目录重新压缩为iso文件,没有这个工具的也可以使用其它工具或者自行安装即可:

mkisofs -o ubuntu.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V "Ubuntu 20.04.2 LTS amd64" ./openkylin-0.9.5-x86_64

        这个命令使用 -o 选项指定输出的ISO文件名为 ubuntu.iso-b isolinux/isolinux.bin 选项指定启动扇区的引导程序文件。-c isolinux/boot.cat 选项指定引导目录的引导表。-no-emul-boot 选项指定使用硬盘的启动方式。-boot-load-size 4 选项指定引导程序的加载大小为4扇区。-boot-info-table 选项指定生成引导信息表。-R-J 选项分别指定使用Rock Ridge和Joliet文件系统格式。-V "Ubuntu 20.04.2 LTS amd64" 选项指定卷标。最后的路径表示将镜像目录下的所有文件都添加到ISO中。

        使用vm虚拟机可以直接安装这个iso镜像来进行安装系统。

效果如下:

 

        我在镜像当中安装了d-feet,直接打开就能用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年宜昌市中职组“网络安全”赛项竞赛任务书-2

2023年宜昌市中职组“网络安全”赛项 竞赛任务书-2 一、竞赛时间 总计:180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 Windows操作系统渗透测试 100分钟 700分 任务二 Linux操作系统渗透测试…

【三十天精通Vue 3】第三十天 Vue 3中的Nuxt.js框架详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录 引言一、Nuxt.js框架详解1.1 什么是Nuxt.js框架1.2 Nuxt.js的优点和特点1.3 Nuxt.js与Vue.js的关系二、Nuxt.js项目的搭建2.1 安…

【三维CAD软件】上海道宁为您带来国际一流的国产自主可控的三维CAD软件——天工CAD

天工CAD©融合了 新迪数字收购的 国际一流三维CAD软件技术和 十几年CAD软件研发积累 是一款国产自主可控的三维CAD软件 产品成熟度和技术能力比肩国际先进水平 满足工业企业研发设计需求 软件功能强大、运行稳定、 易学易用、兼容性强 可以显著提升产品设计质量和效…

k8s pv pvc的使用

k8s pv pvc的使用 安装nfs服务器 yum install rpcbind nfs-utils -y systemctl enable rpcbind systemctl enable nfs systemctl start rpcbind systemctl start nfsmkdir -p /root/data/sc-data [rootmaster sc-data]# cat /etc/exports /root/data/sc-data 192.168.1.0/24(…

搜索、添加、删除均为O(logn)的数据结构——跳表

文章目录 有序数组和链表的对比有序数组有序链表 跳表跳表的搜索跳表的插入跳表的删除 跳表完整Java实现代码(包含上面介绍的所有功能模块) 有序数组和链表的对比 有序数组 有序数组支持高效随机访问,可以使用二分查找使得查找的时间复杂度…

SEO外包是为了省钱还是为了更好的效果呢?我们的探讨!

SEO是指优化网站以获得更高的自然搜索引擎排名的一系列技术和方法,它可以提高网站的可见性、流量和收入。随着互联网的不断发展,越来越多的企业意识到了SEO的重要性,但是,由于技术难度和人力成本的限制,许多企业选择将…

TikTok选品思路你真的知道吗

TikTok是一款非常流行的短视频社交应用程序,用户群体广泛,主要集中在年轻人之间,越来越多跨境商家布局TikTok。那么在TikTok上进行选品时,要采用什么思路和方法才能让自己的产品比较出众吸睛并且让自己财源滚滚呢? 一、…

阿里云服务器镜像是什么?镜像系统怎么选择?

阿里云服务器镜像是云服务器的装机盘,镜像是为云服务器安装操作系统的。云服务器镜像系统怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心…

BI 数字化转型对央企和中小企业的利好

数字化产品和服务的大规模应用也让数字经济、数据价值得到了众多企业的重视。先说数字经济,据统计,2020年全球数字经济规模达到32.61万亿美元,与GDP总量比例为43.7%,其中中国数字经济规模达到了5.4万亿美元,并维持着9.…

手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能

手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能 术前管理模块主要有手术排班、手术申请单、手术通知单、手术知情同意书、输血血液同意书、术前查房记录、术前访视、风险评估、手术计划等功能。 功能: 手术排班:…

免费换电池还倒塞用户200,iPhone惨遭“耐用”反噬

多年来 iPhone 最为诟病的几个缺点之一肯定少不了电池。 在 Android 已经普及4、5000mAh 大电池加快充组合的情况下,iPhone 仅有 Pro Max(Plus)勉强及格。 更难受的是今年3月,官方换电池还迎来了幅度不小的涨价。 苹果这是在建议我…

STM32F4_RTC实时时钟

目录 1. RTC实时时钟简介 2. RTC框图 3. RTC初始化和配置 3.1 RTC和低功耗模式 3.2 RTC中断 4. RTC相关寄存器 4.1 时间寄存器:RTC_TR 4.2 日期寄存器:RTC_DR 4.3 亚秒寄存器:RTC_SSR 4.4 控制寄存器:RTC_CR 4.5 RTC初…

【LoadRunner】教你快速编写一个性能测试脚本 demo

目录 LoadRunner 工具介绍 UI性能测试步骤 编写性能测试脚本(VUG) 创建测试场景(Controller) 生成测试报告(Analysis) LoadRunner 工具介绍 我们使用以上三个工具针对我们的项目进行性能测试。 a&am…

3U VPX 总线架构+ 2片国防科大银河飞腾 FT-M6678 多核浮点运算 DSP 设计资料--VPX303

板卡概述 VPX303 是一款基于 3U VPX 总线架构的高性能信号处理板,板载 2 片国防科大银河飞腾 FT-M6678 多核浮点运算 DSP,可以实现各 种实时性要求较高的信号处理算法。 板卡每个 DSP 均支持 5 片 DDR3 SDRAM 实现数据缓存,两片 DSP 之…

( 位运算 ) 268. 丢失的数字 ——【Leetcode每日一题】

❓268. 丢失的数字 难度:简单 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: 输入:nums [3,0,1] 输出:2 解释:n 3,因为有 3 个数…

正则表达式 - 匹配 Unicode 和其他字符

目录 一、匹配 Unicode 字符 1. 匹配 emoji 符号 (1)确定 emoji 符号的 Unicode 范围 (2)emoji 符号的存储 (3)正则表达式匹配 2. 匹配中文 (1)确定中文的 Unicode 范围 &am…

PostgreSQL-HA 高可用集群在 Rainbond 上的部署方案

PostgreSQL 是一种流行的开源关系型数据库管理系统。它提供了标准的SQL语言接口用于操作数据库。 repmgr 是一个用于 PostgreSQL 数据库复制管理的开源工具。它提供了自动化的复制管理,包括: 故障检测和自动故障切换:repmgr 可以检测到主服…

二叉搜索树中的插入操作

1题目 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入…

YOLOv3论文解读/总结

本章论文: YOLOv3论文(YOLOv3: An Incremental Improvement)(原文+解读/总结+翻译) 系列论文: YOLOv1论文解读/总结_yolo论文原文_耿鬼喝椰汁的博客-CSDN博客 YOLOv2论文解读/总…

try(){}用法try-with-resources、try-catch-finally

属于Java7的新特性。 经常会用try-catch来捕获有可能抛出异常的代码。如果其中还涉及到资源的使用的话,最后在finally块中显示的释放掉有可能被占用的资源。 但是如果资源类已经实现了AutoCloseable这个接口的话,可以在try()括号中可以写操作资源的语句(…