自制一个Linux live固件镜像ISO可引导系统

使用母盘镜像制作两个虚拟,来制作一个包含基本需求的filesystem.squashfs文件,具体看下面的链接

使用的安装镜像 是Linux Mint

制作好的成品 https://cloud.189.cn/t/U32Mvi7FnyA3 (访问码:2nbo)

最简单制作LIVE CD的办法- Community - Deepin Technology

自制LIVE ISO镜像系统内置分区挂载脚本- Community - Deepin Technology

引导文件:https://cloud.189.cn/t/y6FZ7jmqEFnu (访问码:peo2)

建议 :不要在Linux母盘安装太多的东西,毕竟启动引导分区fat32最大只支持4G文件实际4.3G的样子

建议只安装基本的比如 DOCKER VM SSH 

下面是制作 filesystem.squashfs 的命令,如果制作的镜像不能保存到fat32分区使用最大压缩

#挂载母盘的路径
ABC="/media/i8520/3c4ce3cc-b53e-48b9-bc37-e8c23fb295c6"
#标准压缩模式启动速度快
sudo mksquashfs ${ABC} filesystem.squashfs
#最大压缩模式,启动速度慢
sudo mksquashfs ${ABC} filesystem.squashfs -comp xz

使用 DiskGenius 制作fat32分区 然后使用BOOTICEx64制作启动 见图 01.png 和02.png
把BOOT文件夹和GRLDR放到 fat32分区 根目录

引导配置文件配置文件说明
\BOOT\GRUB 里面的 initrd.lz 和 vmlinuz 自己重制作好的,
filesystem.squashfs 文件提取改名成那样 见图Linux.png


menu.lst 文件是启动菜单文件把你里面的 
VM17-Mint-21.3-DOCKER-SMB 替换成你制作好的iso镜像的名字
把你制作到的镜像放到\BOOT\GRUB里面

由于是镜像系统,属于内存系统,docker 就需要启动后挂载这个分区

请结合desktop文件到/home/用户名/.config/autostart使用

比如我的挂载脚本

#!/bin/bash
sleep 2
#-----------------------------
# 在mint无法使用开机脚本也就是当前脚本启动docker,其他系统未知
#-----------------------------
# 自动响应sudo密码
# key 的直是密码
#-----------------------------
key='3PudTWAfagCJdSmU8F'
shijian=`date +%Y年%m月%d日%H:%M:%S`
echo "${key}" | sudo -S $shijian > /dev/null 2>&1
#预处理
USRE_NAME=`/opt/i8520/MY-USER-PWD`
sudo /opt/i8520/CCCX /media/$USRE_NAME
sudo /opt/i8520/CCCX 750 /media/$USRE_NAME
MY_OK_MONUT="/tmp/MY_OK_MONUT"
sudo rm -rf ${MY_OK_MONUT}
mkdir -p ${MY_OK_MONUT}
#docker的一些配置文件,执行sudo systemctl restart docker会重新生成
sudo rm -rf /var/lib/docker/*#-----------------------------
# 导出硬盘设备名字
# SATA nvme
#-----------------------------
sudo blkid | grep "/dev/sd" | awk '{print $1}' | sed 's/://g' > ${MY_OK_MONUT}/SATA.log
sudo blkid | grep "/dev/nvme" | awk '{print $1}' | sed 's/://g' > ${MY_OK_MONUT}/nvme.log
#-----------------------------
# 遍历卸载 机械硬盘的脚本
#-----------------------------
MYSATA(){
filename="${MY_OK_MONUT}/SATA.log"  
while IFS= read -r line
doecho "umount $line" >> ${MY_OK_MONUT}/SATA.log.x
done < "$filename"
sed '1i\#!/bin/bash' ${MY_OK_MONUT}/SATA.log.x > ${MY_OK_MONUT}/SATA.log.sh
sudo /opt/i8520/CCCX 750 ${MY_OK_MONUT}/SATA.log.sh
}
MYSATA
#-----------------------------
# 遍历卸载 nvme硬盘的脚本
#-----------------------------
MYNVME(){
filename="${MY_OK_MONUT}/nvme.log"  
while IFS= read -r line
doecho "umount $line" >> ${MY_OK_MONUT}/nvme.log.x
done < "$filename"
sed '1i\#!/bin/bash' ${MY_OK_MONUT}/nvme.log.x > ${MY_OK_MONUT}/nvme.log.sh
sudo /opt/i8520/CCCX 750 ${MY_OK_MONUT}/nvme.log.sh
}
MYNVME
#-----------------------------
# 执行卸载硬盘
#-----------------------------
sudo ${MY_OK_MONUT}/SATA.log.sh
sudo ${MY_OK_MONUT}/nvme.log.sh
#-----------------------------
# 挂载分区
#-----------------------------
MYTumount(){
#挂载分区,具体自己魔改一下就可以
echo "UUID=c4f7099f-b57f-4baf-9d7d-2417f933fe1a /var/lib/docker ext4 defaults 0  2"   | sudo tee -a /etc/fstab > /dev/null 2>&1
echo "UUID=aeb78a7a-31d3-413f-9388-127ea0d72cfe /opt/data/shell ext4 defaults 0  2"   | sudo tee -a /etc/fstab > /dev/null 2>&1
echo "UUID=24ea6448-1b9a-46ef-a2b7-7f24e440036c /opt/data/Weather ext4 defaults 0  2" | sudo tee -a /etc/fstab > /dev/null 2>&1
echo "UUID=8848285b-e13e-49c2-85c3-25978ac518f9 /opt/data/SmbFile ext4 defaults 0  2" | sudo tee -a /etc/fstab > /dev/null 2>&1
echo "UUID=883dd58e-61cf-4184-9c63-5059af2b156f none    swap    sw          0      0" | sudo tee -a /etc/fstab > /dev/null 2>&1
#激活挂载
sudo mount -a
sleep 1
}
MYTumount
#------------------------
sudo /opt/i8520/CCCX /opt/data/SmbFile
sudo /opt/i8520/CCCX 777 /opt/data/SmbFile
sudo /opt/i8520/CCCX 755 /opt/data/Weather
sudo /opt/i8520/CCCX /opt/data/shell
sudo /opt/i8520/CCCX 750 /opt/data/shell
rm -rf /home/${USRE_NAME}/.cache/vmware/drag_and_drop
ln -s /opt/data/SmbFile $HOME/桌面/SMB共享目录
ln -s /opt/data/SmbFile /home/${USRE_NAME}/.cache/vmware/drag_and_drop
ln -s /opt/data/shell $HOME/桌面
cp -r /opt/data/shell/desktop/*.desktop $HOME/桌面#----
#外置脚本,挂载 /opt/data/Weather ,开机后把RUN脚本放到里面,脚本首行代码需要延迟8秒
#卡BUG,不然后面的脚本可能执行不了
#docker无法在脚本内启动,原因不知道,所以需要进去系统手动重启
bash /opt/data/Weather/RUN
#web
/opt/i8520/PythonWww start &
exit 0

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

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

相关文章

Python编程语言学习高阶:解决在 Python 项目中跨目录导入模块的问题的多种方法教程实战及其优劣对比

Python编程语言学习高阶:解决在 Python 项目中跨目录导入模块的问题的多种方法教程实战及其优劣对比 目录 解决在 Python 项目中跨目录导入模块的问题的多种方法教程实战及其优劣对比 T1、修改 sys.path:适用于简单的脚本开发和调试,灵活但不适合大规模项目 实现代码 T2…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第十一周) - 自然语言处理扩展研究

自然语言处理扩展研究 1. 多语言研究2. 语言锚定3. 伦理问题 1. 多语言研究 多语言(Multilinguality)是NLP的一个重要研究方向&#xff0c;旨在开发能够处理多种语言的模型和算法。由于不同语言在语法、词汇和语义结构上存在差异&#xff0c;这成为一个复杂且具有挑战性的研究…

【Android】文本服务器获取内容

链接web服务器&#xff0c;打开apaquee 收到数据 public void getNewsIndexData() throws Exception{String sUrl"http://10.107.24.12:8080/newsIndex.json";URL urlnew URL(sUrl);HttpURLConnection urlConn(HttpURLConnection) url.openConnection();InputStrea…

Web前端经验:探索、挑战与成长的奇幻之旅

Web前端经验&#xff1a;探索、挑战与成长的奇幻之旅 在数字世界的广阔天地中&#xff0c;Web前端技术犹如一把神奇的钥匙&#xff0c;打开了通往无限创意与可能的大门。身为一名Web前端开发者&#xff0c;我积累了丰富的经验&#xff0c;这些经验既是我成长的见证&#xff0c…

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】

LeetCode-2779. 数组的最大美丽值【数组 二分查找 排序 滑动窗口】 题目描述&#xff1a;解题思路一&#xff1a;滑动窗口与排序解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k 。 在一步操…

RAG工作流在高效信息检索中的应用

介绍 RAG&#xff08;Retrieval Augmented Generation&#xff09;是一种突破知识限制、整合外部数据并增强上下文理解的方法。 由于其高效地整合外部数据而无需持续微调&#xff0c;RAG的受欢迎程度正在飙升。 让我们来探索RAG如何克服LLM的挑战&#xff01; LLM知识限制大…

【docker】如何修改已有容器的端口映射

本文首发于 ❄️慕雪的寒舍 docker修改已有容器的端口映射 参考 https://www.jb51.net/article/257510.htm 1.需求 之前我在我的绿联nas上部署了一个centos容器&#xff0c;当时脑子抽了&#xff0c;没想起来要多映射几个端口。只映射了容器的22端口&#xff08;ssh&#xff0…

Bigtable: A Distributed Storage System for Structured Data

2003年USENIX&#xff0c;出自谷歌&#xff0c;开启分布式大数据时代的三篇论文之一&#xff0c;底层依赖 GFS 存储&#xff0c;上层供 MapReduce 查询使用 Abstract 是一种分布式结构化数据存储管理系统&#xff0c;存储量级是PB级别。存储的数据类型和延时要求差异都很大。…

【数学】【机器学习】什么是隐马尔可夫模型 (HMM)?

文章目录 隐马尔可夫模型 (HMM)背景公式示例题目详细讲解Python代码求解实际生活中的例子 什么是隐变量背景隐含变量的意义举例说明HMM的三个基本问题示例 隐马尔可夫模型 (HMM) 背景 隐马尔可夫模型&#xff08;Hidden Markov Model, HMM&#xff09;是一种统计模型&#xf…

有监督学习——梯度下降

1. 梯度下降 梯度下降&#xff08;Gradient Descent&#xff09;是计算机计算能力有限的条件下启用的逐步逼近、迭代求解方法&#xff0c;在理论上不保证下降求得最优解。 e.g. 假设有三维曲面表达函数空间&#xff0c;长(x)、宽(y)轴为子变量&#xff0c;高(z)是因变量&…

大模型企业落地:汽车行业知识大模型应用

前言 在当今这个信息爆炸的时代&#xff0c;知识管理成为了企业提升核心竞争力的关键。特别是在汽车行业这样一个技术密集、信息量庞大的领域&#xff0c;如何高效管理和利用知识资源&#xff0c;成为了每个企业必须面对的挑战。 汽车行业的知识管理痛点 汽车行业作为现代工…

10.错误处理

标题 一、概述二、panic!与不可恢复错误2.1 出错时2.2 示例2.3 panic!的 backtrace 三、Result 与可恢复的错误3.1 引入3.2 错误示例3.3 传播错误1&#xff09;概念2&#xff09;传播错误示例3&#xff09;传播错误的简写&#xff1a;&#xff1f;运算符 一、概述 Rust将错误分…

springboot网上书店管理系统-计算机毕业设计源码03780

摘 要 网上书店管理系统采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分&#xff0c;管理员管理主要功能包括&#xff1a;首页、站点管理&#xff08;轮播图&#xff09;用户管理&#xff08;管理员、注册用户&#xff09;内容管理&#x…

NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -2

概要 CAN测试源码&#xff1a; https://download.csdn.net/download/qq_35671135/89425377 根据fsl_flexcan.h文件从文件末尾往前面梳理&#xff0c;总共30个基础CAN函数&#xff1b; 该文章只梳理常规CAN&#xff0c;增强型CAN后面再单独梳理。 使用的是RT1064开发板进行测试…

深入理解ReentrantLock

深入理解ReentrantLock 在Java并发编程中&#xff0c;锁&#xff08;Lock&#xff09;是控制多个线程对共享资源访问的重要工具。虽然Synchronized关键字是实现锁的常用方式&#xff0c;但它在功能上比较有限。ReentrantLock是java.util.concurrent.locks包中提供的一个更加灵…

FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《02》

系列文章 FreeRTOS移植&#xff1a;STM32L476 nucleo-L476RG 开发板《01》 说明 上一篇 FreeRTOS移植&#xff1a;STM32L476 nucleo-L476RG 开发板《01》 主要讲了一下如何快速搭建一个 STM32 裸机工程&#xff0c;其实 STM32CubeMX 可以生成 FreeRTOS 的工程&#xff0c;这就…

python连接mysql数据库、FastAPI、mysql-connector-python

方法工具一、FastAPI 建议使用fast api中的pymysql pip3 install fastapi pip3 install pydantic pip3 install "uvicorn[standard]" pip3 中的3是 Python 3 版本的包管理器命令&#xff0c;用于安装和管理 Python 3 版本的第三方库。在某些系统中&#xff0c;同时…

Linux host映射 设置主机名并通过主机名找到指定系统

一、windows ping linux 1.windows进入到 C:\Windows\System32\drivers\etc\hosts 内&#xff0c;使用edit with notepad打开hosts文件&#xff0c;在下面添加需要寻找的ip以及其主机名。该ip以及主机名即linux的一致。需要查看linux主机名的在终端使用 hostname进行查看&#…

spring boot3登录开发-邮箱登录/注册接口实现

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 上文衔接 内容简介 功能分析 所需依赖 邮箱验证登录/注册实现 1.创建交互对象 2.登录注册业务逻辑实…

JDK17 你的下一个白月光

JDK版本升级的非常快&#xff0c;现在已经到JDK20了。JDK版本虽多&#xff0c;但应用最广泛的还得是JDK8&#xff0c;正所谓“他发任他发&#xff0c;我用Java8”。 但实际情况却不是这样&#xff0c;越来越多的java工程师拥抱 JDK17&#xff0c;于是了解了一下 JDK17新语法&a…