[Share Experiences] 使用ISO的Linux镜像启动虚拟机Docker
Tofloor
poster avatar
酷谷的谷子
deepin
2023-07-17 01:55
Author

此教程比较长 安装系统设计 主要是与移动硬盘为例

*台式机 笔记本 硬件要求 内存至少需要 4G *

弄这个的原因是 U盘无法直接安装Linux系统 然后就整出来这些,

U盘不支持EXIT 所以用不了Docker 不过可以使用虚拟机

资料下载https://cloud.189.cn/t/ZJVVVjmaM77f (访问码:pp4e)

使用ISO的Linux镜像启动 VM vbox Docker,应用场景-->便携式系统、直播推流、家用PC服务器、NAS

可以在 VM vbox 安装完整系统 比如 群晖NAS虚拟机版 Winedows Linux

使用方法 :**推荐 光驱 移动硬盘 [普通U盘不支持EXIT分区表] 或者使用大的 SD卡 待开关的可以只读模式,配合读卡器使用

  1. 把ISO的Linux镜像写入光盘,使用光驱加载 ISO的Linux镜像,进入 Linux live 系统
  2. 使用软碟通把ISO的Linux镜像写入U盘/移动硬盘,U盘/移动硬盘,进入 Linux live 系统
  3. 使用硬盘上的一个分区 使用引导文件 加载 ISO的Linux镜像,进入 Linux live 系统

ISO的Linux镜像 设计 ,考虑到在 进入 Linux live 系统 后需要脚本挂载存储设备,如硬盘某个分区

  1. filesystem.squashfs 文件不能大于4G不要很麻烦,这个就涉及到母盘虚拟系统盘这里先不讲
  2. 安装母盘虚拟机
  3. gparted 硬盘管理工具
  4. 脚本挂载存储设备

安装系统设计 主要是与移动硬盘为例

安装Linux虚拟机:此虚拟机称为母盘虚拟机 主要是使用轻量的Linux 发行版,我使用的是Mint 20.2版本

  1. 系统的目录 /
  2. 保存Docker数据的分区 /var/lib/docker
  3. 保存虚拟内存文件的分区 /opt/swapfile_KEY
  4. 保存虚拟机文件的分区 /opt/VM_DATA
  5. 其他 /opt/data

挂载脚本设计:

默认情况下启动ISO的Linux镜像设备名子 /dev/sda1,在挂载分区前需要先卸载分区其他分区,

还有其他设备硬盘就是 /dev/sdb1 /dev/sdb2 .... /dev/sdb N

1675881-20190515184305262-1383574110.png

具体操作是在 Windows 下使用 DiskGenius 简称 DG ,假设移动硬盘 500G

  1. 使用 DG 工具 把移动硬盘 快速分区
  2. 分区表类型 选 MBR 分5个分区
  3. 第一个分区 存放 ISO的Linux镜像 以及引导文件 分区格式 NTFS 大小 10G 第一个分区后面打勾设为主分区
  4. 第二个分区 存放 docker 数据 分区格式 exit4 大小 100G
  5. 第三个分区 存放 虚拟机文件 数据 分区格式 exit4 大小 300G
  6. 第四个分区 存放 虚拟内存文件 分区格式 exit4 大小 20G 不要太多
  7. 第5个分区 存放 其他数据 分区格式 NTFS 大小 剩余全部
  8. 挂载脚本如下

挂载脚本: 保存名字 OK-MONUT

#!/bin/bash
#开机密码
key='母盘虚拟机的开机密码'
shijian=`date +%Y年%m月%d日%H:%M:%S`
echo "${key}" | sudo -S $shijian
#母盘虚拟机的用户名
USRE_NAME='i8520'
sudo chown $USRE_NAME /media/$USRE_NAME
sudo chgrp $USRE_NAME /media/$USRE_NAME
sudo umount /dev/sda5 
sudo umount /dev/sda6 
sudo umount /dev/sda7 
sudo umount /dev/sda8 
echo "/dev/sda5  /var/lib/docker     ext4  defaults  0  2" | sudo tee -a /etc/fstab >/dev/null
echo "/dev/sda6  /opt/VM_DATA        ext4  defaults  0  2" | sudo tee -a /etc/fstab >/dev/null
echo "/dev/sda7  /opt/swapfile_KEY   ext4  defaults  0  2" | sudo tee -a /etc/fstab >/dev/null
echo "/dev/sda8  /opt/data  ntfs defaults,nls=utf8,umask=000,uid=1000,gid=1000 0 0" \
| sudo tee -a /etc/fstab >/dev/null
sudo chown $USRE_NAME /opt/swapfile_KEY
sudo chgrp $USRE_NAME /opt/swapfile_KEY
sudo chown $USRE_NAME /opt/data
sudo chgrp $USRE_NAME /opt/data
sudo chown $USRE_NAME /opt/VM_DATA
sudo chown $USRE_NAME /opt/VM_DATA
sudo chown root /opt/swapfile_KEY/swapfile
sudo chgrp root /opt/swapfile_KEY/swapfile
sudo chmod 600  /opt/swapfile_KEY/swapfile
sudo mount -a
sudo systemctl restart docker
sudo swapon -p 1 /opt/swapfile_KEY/swapfile
ln -s /opt/VM_DATA $HOME/桌面
ln -s /opt/data    $HOME/桌面
/opt/data/RUN

系统安装好以后进入 系统 【Mint 20.02】 升级内核到 5.15.0-76

安装 docker https://bbs.deepin.org/zh/post/258166

安装 vbox https://www.virtualbox.org/wiki/Downloads

安装 VM https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

制作虚拟内存 大小是按字节技术 1024x1024x18 【18表示18G】

具体看这里 https://bbs.deepin.org/zh/post/259196 把制作好的虚拟内存文件保存到 保存虚拟内存的分区

安装 qq obs vokoscreen 腾讯会议 谷歌浏览器 ,

把上面的挂载 脚本 OK-MONUT 母盘虚拟机的 /opt

使用一个启动器文件 来启动 /opt/OK-MONUT

/home/用户名/.config/autostart OK-MONUT.desktop

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=挂载
Name[zh_CN]=挂载
Comment=挂载
Terminal=false
Type=Application
Categories=Graphics;
StartupNotify=false
Actions=Configure;Capture;
Exec=/opt/OK-MONUT
Icon=conky-logomark-vio

关闭母盘虚拟机 使用 另外一个Linux 虚拟机系统添加 母盘虚拟机系统盘, 制作 filesystem.squashfs

然后在修改的这个Linux 系统 计算机 找到母盘系统分区点击一下就会自动挂载,具体操作看这里

https://bbs.deepin.org/zh/post/259196 剩余流程也看这里 ,最后得到一个可以启动的ISO镜像

把移动硬盘 分区 10G 那个 分区使用 BOOTICEx64 添加 主引导 GRUB4DOS,然后把引导文件复制进去

把制作好的镜像修改名字Linux-LIVE-Mint20.2-DOCKER-X64-bit 后也复制进去这样就结束

在启动以后需要卸载一次Docker 因外 我们的Docker分区还没有目录数据 然后在安装一次,下次就可以正常使用了

在本文开头分享了我制作好的ISO镜像 还有引导文件

Reply Favorite View the author
All Replies
阿尼樱奈奈
Moderator
2023-07-17 02:19
#1

applaud like

Reply View the author
jjcui8595
deepin
2023-07-17 02:44
#2

like

Reply View the author
l***[email protected]
deepin
2023-08-02 18:25
#3
The user is banned, and the content is hidden.