自定义Linux ISO live 启动(PE)镜像总结

这里母盘制作使用Linux Mint

制作母盘需要安装的扩展脚本https://cloud.189.cn/t/quqQBfzEnmYf (访问码:0pyi)

cn.i8520.toolbox.deb   cn.i8520.conky.deb根具你的需求安装这个

这是第一个帖子,制作 filesystem.squashfs 文件系统的教程 :

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

核心命令

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

这是使用GURB2引导Linux iso镜像的(Linux iso本身不需要可引导) :

grub引导LinuxMint iso镜像- Community - Deepin Technology

修改UUID的帖子:修改Linux 分区 UUID- Community - Deepin Technology


这里使用服务的方式启动挂载脚本

User=i8520  i8520是用户名 是在制作filesystem.squashfs时候的用户名

OK-MONUT.service

[Unit]
Description=OK-MONUT

[Service]
Type=simple
User=i8520
ExecStart=/opt/i8520/OK-MONUT
KillMode=process
ExecStop=

[Install]
WantedBy=multi-user.target

创建服务:

sudo ln -s /opt/i8520/OK-MONUT.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable OK-MONUT.service

挂载脚本OK-MONUT

#!/bin/bash
#-----------------------------
# 在mint无法使用开机脚步也就是当前脚本启动docker,其他系统未知
# 为了容易获取UUID建议在分配分区时,候使用 GParted 设置卷标 分区选择exit4
# 卷标不能是中文否则会乱码
#-----------------------------
# 自动响应sudo密码
# key 的直是密码
#-----------------------------
#最外面的一个函数
i8520_link_dir(){
#在制作filesystem.squashfs设在的密码
key='lcs520..!'
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
do
    echo "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
do
    echo "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(){
sudo rm -rf /home/*
#挂载用户目录,可以理解为桌面,这样可以在桌面保存东西
echo "UUID=7eb8c958-65af-4cc2-8946-261d7096bb0a /home             ext4 defaults 0  2" | sudo tee -a /etc/fstab > /dev/null 2>&1
#挂载docker目录
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
#挂载SMB共享目录
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
#重启桌面管理器
sudo service lightdm restart
sleep 1
}
MYTumount

}

#-----------------------------
# 避免重复挂载
#-----------------------------
ReadFstabUuid="c4f7099f-b57f-4baf-9d7d-2417f933fe1a"
CatFsta=`cat /etc/fstab|grep "${ReadFstabUuid}"|wc -l`
Quantity='1'
if [[ ! X${Quantity} = X${CatFsta} ]];then

   echo "不存在"
   i8520_link_dir
 else
   echo "存在"
fi

exit 0

grub.cfg

set timeout=0
set default=0
set fallback=1
set color_normal=white/black
set menu_color_normal=white/black
set color_highlight=black/light-gray
export color_normal menu_color_normal color_highlight;
#----------------------
#加载文件系统支持
insmod part_gpt
insmod part_msdos
insmod fat
insmod ntfs
insmod ext2
insmod exfat
insmod btrfs
insmod gfxterm
insmod png
insmod all_video
insmod iso9660
insmod udf
#------------------------
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
  fi
}
#设置显示模式
insmod font
if loadfont ${prefix}/Fonts/unicode.pf2; then
	set gfxmode=auto
    set gfxpayload=keep
	export gfxmode
    load_video
	insmod all_video
	insmod video_bochs
	insmod video_cirrus
	insmod font
	insmod gfxterm
	insmod gfxmenu
	insmod gettext
	insmod jpeg
	insmod png
	if terminal_output gfxterm; then
	
		set locale_dir=/boot/grub/Locale/
		set lang=zh_CN
		export lang
	fi
fi
#------------------------
#设置背景图片 boot/gurb/image
terminal_output  gfxterm
background_image $prefix/image/TETER.png
#------------------------
#启动镜像
menuentry "Mint 21.2 镜像系统" -class gnu-linux -class gnu -class os {
  echo ""
  echo "正在启动 Mint 21.2 镜像系统......"
  set gfxpayload=keep
  insmod xzio
  set isofile=/pe/LinuxMint21.2/VM17-Mint-21.3-DOCKER-SMB.iso
  #/boot/grub/MYi8520 创建的空文件
  search --file --no-floppy --set=root /boot/grub/MYi8520
  loopback loop $isofile
  # username=mint 用户名,如果使用制作 filesystem.squashfs一样的用户名就免密码
  # quiet splash --
  linux (loop)/casper/vmlinuz boot=casper hostname=DOCKER iso-scan/filename=$isofile
  locales=zh_CN.UTF-8
  initrd (loop)/casper/initrd.lz
}

 包含Windows启动项目

set timeout=30
set default=0
set fallback=1
set color_normal=white/black
set menu_color_normal=white/black
set color_highlight=white/black
export color_normal menu_color_normal color_highlight;
#----------------------
#加载文件系统支持
insmod part_gpt
insmod part_msdos
insmod fat
insmod ntfs
insmod ext2
insmod exfat
insmod btrfs
insmod gfxterm
insmod png
insmod all_video
insmod iso9660
insmod udf
#------------------------
if [ "$grub_platform" = "pc" ]; then
    insmod all_video
    insmod vbe
    insmod vga
    
elif [ "$grub_platform" = "efi" ]; then
    insmod efi_gop
    insmod efi_uga

fi
#设置显示模式
insmod font
if loadfont ${prefix}/Fonts/unicode.pf2; then
	set gfxmode=auto
    set gfxpayload=keep
	export gfxmode
	insmod all_video
	insmod video_bochs
	insmod video_cirrus
	insmod font
	insmod gfxterm
	insmod gfxmenu
	insmod gettext
	insmod jpeg
	insmod png
	if terminal_output gfxterm; then
	
		set locale_dir=/boot/grub/Locale/
		set lang=zh_CN
		export lang
	fi
fi
#------------------------
#设置背景图片 boot/gurb/image
terminal_output  gfxterm
background_image $prefix/image/TETER.png
#------------------------
#启动linux
    menuentry "Mint 21.2 镜像系统" -class gnu-linux -class gnu -class os {
      echo ""
      echo "正在启动 Mint 21.2 镜像系统......"
      set gfxpayload=keep
      insmod xzio
      set isofile=/pe/LinuxMint21.2/VM17-Mint-21.3-DOCKER-SMB.iso
      search --file --no-floppy --set=root /boot/grub/MYi8520
      loopback loop $isofile
      linux (loop)/casper/vmlinuz boot=casper hostname=DOCKER iso-scan/filename=$isofile
      locales=zh_CN.UTF-8
      initrd (loop)/casper/initrd.lz
    }
    
#启动Windows
if [ "$grub_platform" = "pc" ]; then
    # BIOS 引导配置
    menuentry "USM 系统总裁PE" --class=windows --class=os --hotkey=1 {
      echo ""
      echo "正在启动 USM 系统总裁PE....."
      insmod ntldr
      search --file --no-floppy --set=root /boot/grub/MYi8520
      ntldr ($root)/boot/grub/BOOTMGR
    }
elif [ "$grub_platform" = "efi" ]; then
    # EFI 引导配置
    menuentry "USM 系统总裁PE" --class=windows --class=os --hotkey=1 {
      echo ""
      echo "正在启动 USM 系统总裁PE....."
      search --file --no-floppy --set=root /boot/grub/MYi8520
      terminal_output console
      chainloader ($root)/EFI/MICROSOFT/BOOT/bootmgfw.efi
    }
fi

以上代码是在制作母盘时候的要主要的是 filesystem.squashfs打包完成后记得修改OK-MONUT文件的名字,以免对母盘系统需要修改时造成无法进入桌面


使用制作好的Linux ISO live  视频

【自定义Linux ISO live 启动(PE)镜像】

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值