这里母盘制作使用Linux Mint {#%E8%BF%99%E9%87%8C%E6%AF%8D%E7%9B%98%E5%88%B6%E4%BD%9C%E4%BD%BF%E7%94%A8linux-mint}
制作母盘需要安装的扩展脚本https://cloud.189.cn/t/quqQBfzEnmYf (访问码:0pyi)
cn.i8520.toolbox.deb cn.i8520.conky.deb根具你的需求安装这个
这是第一个帖子,制作 filesystem.squashfs 文件系统的教程 :
最简单制作LIVE CD的办法- Community - Deepin Technology
核心命令 {#%E6%A0%B8%E5%BF%83%E5%91%BD%E4%BB%A4}
#挂载母盘的路径
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
这里使用服务的方式启动挂载脚本 {#%E8%BF%99%E9%87%8C%E4%BD%BF%E7%94%A8%E6%9C%8D%E5%8A%A1%E7%9A%84%E6%96%B9%E5%BC%8F%E5%90%AF%E5%8A%A8%E6%8C%82%E8%BD%BD%E8%84%9A%E6%9C%AC}
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
创建服务: {#%E5%88%9B%E5%BB%BA%E6%9C%8D%E5%8A%A1%EF%BC%9A}
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} ]];thenecho "不存在" i8520_link_dir else echo "存在" fi
exit 0
grub.cfg {#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启动项 {#%E5%8C%85%E5%90%ABwindows%E5%90%AF%E5%8A%A8%E9%A1%B9}
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 视频