桌面应用【免费下载链接】deepin-boot-maker项目地址https://gitcode.com/gh_mirrors/de/deepin-boot-maker点击查看免费下载deepin-boot-maker启动盘制作工具是一款将系统 ISO 镜像写入 U 盘等安装介质的轻量级小工具界面简洁、操作流程短。本文以官方帮助手册为主线完整讲解运行/关闭方式、镜像选择与校验、分区选择与格式化、制作进度与失败原因排查、主菜单主题切换等全部操作细节并结合开源仓库源码说明每一步背后的实现机制如checkfile镜像校验线程、ProgressStatus制作流水线、BMHandler::ErrorType错误码帮助读者既会用工具也能看懂其底层原理与源码结构。概述官方帮助手册见 启动盘制作工具英文手册中文版本见 启动盘制作工具中文手册对工具的定位是将系统镜像文件写入 U 盘等安装介质的小工具界面简洁、操作简单。从源码结构看应用采用「前端界面 后台制作引擎 可选后台服务」的分层组织位于src/目录src/app/界面层。主窗口 bmwindow.cpp 使用QStackedLayout串联四个页面镜像选择、U 盘选择、制作进度、结果展示并以DPageIndicator指示当前步骤src/libdbm/核心制作库。backend/bootmaker.cpp定义制作流程installer/qtbaseinstaller.cpp实现写入流水线util/sevenzip.cpp负责 ISO 的校验与解压src/service/D-Bus 后台服务com.deepin.bootmaker.xml 定义了DeviceList、CheckFile、Install、ReportProgress等接口使界面操作以独立服务进程执行。理解这一结构后下文每个操作步骤都能找到对应的源码依据。使用入门运行、固定与关闭运行启动盘制作工具按照手册的操作步骤单击任务栏上的启动器图标进入启动器界面上下滚动鼠标滚轮浏览或通过搜索找到启动盘制作工具图标单击运行右键单击启动盘制作工具图标可以单击发送到桌面在桌面创建快捷方式单击发送到任务栏将应用程序固定到任务栏单击开机自动启动将应用程序添加到开机启动项在电脑开机时自动运行该应用。从源码结构看这些快捷入口依赖 deepin-boot-maker.desktop 桌面入口文件注册到 deepin 桌面环境应用图标与名称由QIcon::fromTheme(deepin-boot-maker)从主题资源加载见 bmwindow.cpp。关闭启动盘制作工具手册给出三种退出方式在界面右上角单击关闭按钮退出启动盘制作工具在任务栏右键单击应用图标选择关闭所有来退出在界面单击主菜单按钮选择退出来退出。值得注意的是进入制作流程后界面会主动禁用关闭能力deviceSelected信号触发后bmwindow.cpp 中调用setQuitMenuDisabled(true)并隐藏关闭按钮DWindowManagerHelper::FUNC_CLOSE置为false这正是手册「制作时请不要移除 U 盘或关机」提示在 UI 层面的保障——制作过程中窗口无法被意外关闭。操作介绍准备工作手册要求的准备工作有三项到官网下载最新的系统镜像文件.iso准备一个至少 8GB的 U 盘获取启动盘制作工具系统预装了启动盘制作工具在启动器中查找访问官网下载指定版本的启动盘制作工具Windows 系统可以从光盘镜像中解压xxx_boot_maker.exe到电脑中。源码中 usselectview.cpp 显示设备列表为空时界面提示 “No disk available”说明 U 盘必须被系统正确识别为可移动设备。从 utils.cpp 的 Linux 分支可以看到设备枚举以/dev/disk/by-id/下匹配usb-*或mmc-*前缀的节点为准同时过滤nfs-、cifs-、smbfs-、sshfs-、ftpfs-、davfs-等网络挂载设备再结合lsblk与df命令输出汇总分区、容量与文件系统信息。这意味着如果 U 盘走的是网络存储形式或设备名不符合usb-/mmc-前缀将不会出现在选择列表中。选择镜像文件手册提供两种方式选择镜像文件单击请选择镜像文件选中已下载的镜像文件后单击下一步直接将镜像文件拖拽到制作工具界面然后单击下一步。对应源码在 isoselectview.cpp两条路径的行为如下文件对话框点击「请选择镜像文件」链接后弹出DFileDialog文件过滤器为ISO (*.iso)默认目录为用户主目录见 isoselectview.cpp拖拽界面中的放置区域是自定义控件DropFramedropframe.h拖入文件时触发fileDrop信号视觉效果上会显示放大的磁盘图标动画选择后校验无论是哪种方式选中文件后都会调用onFileSelected()见 isoselectview.cpp界面提示「检测镜像文件请稍候…」并启动独立线程ThreadCheckFile在后台线程中执行BMInterface::ref().checkfile(m_file)避免阻塞 UI校验结果校验通过则图标恢复并启用「下一步」按钮校验失败则图标变为暗色光盘样式显示红色提示 “Illegal ISO image file”且「下一步」保持禁用见 isoselectview.cpp。需要说明的是从当前仓库源码看BootMaker::checkfile()的完整完整性校验逻辑目前处于注释状态并直接返回true见 bootmaker.cpp即前端「文件检测」步骤在当前版本实现中基本是快速通过的占位流程而真正有实质作用的 ISO 完整性检查发生在制作流水线的checkISOIntegrity()阶段见下文制作流水线小节那里通过 SevenZip 对 ISO 执行check操作失败会报CheckImageIntegrityFailed错误。选择分区手册的说明是选中制作启动盘的 U 盘如果 U 盘有多个分区只能选择第一个分区然后单击开始制作或返回开始制作建议勾选格式化分区制作前请保存好 U 盘的数据返回返回到选择镜像界面。界面实现位于 usbselectview.cpp设备列表通过BMInterface的deviceListChanged信号实时更新U 盘热插拔时列表自动增删若当前选中的设备被拔出会自动清空选中状态与格式化勾选每个设备条目显示标签、设备路径如/dev/sdb1、容量使用情况usageString()以 GB 或 MB 显示used/total与使用率百分比勾选格式化分区m_formatDiskCheck时界面显示橙色警示文案“格式化分区将清除分区上的所有数据但可以提高成功率请在继续前确认”见 usbselectview.cpp点击开始制作后触发deviceSelected(partition, format)信号由主窗口接管并发起安装见 bmwindow.cpp。从 utils.cpp 的设备整理逻辑可以推断「多分区 U 盘只取第一个分区」这一约束的来源枚举时对每个可移动磁盘读取其children分区集合无分区时把整块磁盘作为一条设备记录展示isDisk true有分区时按分区遍历并以文件系统类型判断是否需要格式化——vfat分区标记为无需格式化其余均标记needFormat true。结合 usbselectview.cpp 中选中项按路径排序、界面仅以磁盘为粒度发起制作的调用方式实际生效的就是每块可移动磁盘的第一个分区/整盘。「格式化分区」选项在底层的作用很直接在 qtbaseinstaller.cpp 的hasEnoughSpace()中勾选格式化时比较的是ISO 大小与分区总容量未勾选时比较的是ISO 大小与分区空闲空间。这就是手册建议勾选格式化的原因——格式化后按整盘容量计算可用空间最大化成功率更高。制作过程与制作成功手册提醒制作过程需要一定的时间请耐心等待制作时请不要移除 U 盘或关机。待进度条满格出现制作成功的提示表明启动盘已经制作完成。进度页面 progressview.cpp 中界面标题为 “Burning”使用水波进度控件DWaterProgress展示进度并带有提示文案 “Do not remove the disk or shut down the computer during the process”。进度来自BMInterface::reportProgress(current, error, title, description)信号见 progressview.cppcurrent 70进度条直接跟随真实进度70 current 100进度条进入「缓升」模式由 1 秒定时器每次 1避免长时间解压阶段进度条停住current 100即 101 完成码向主窗口发出finish切换到结果页。这些进度数字与源码中 qtbaseinstaller.cppbeginInstall()的流水线一一对应完整的写入流程为步骤源码阶段ProgressStatus进度值失败错误码检查空间CHECKSPACE/hasEnoughSpace()5USBSizeError检查 ISO 完整性CHECKINTEGRITY/checkISOIntegrity()10CheckImageIntegrityFailed格式化 U 盘FORMATUSB/formatUsb()15USBFormatError安装引导加载器INSTALLBOOTLOADER/installBootload()20InstallBootloaderFailed解压 ISO含获取安装目录GETINSTALLDIREXTRACTISO/extractISO()20 → 80解压进度映射GetUsbInstallDirFailed/ExtractImgeFailed同步 IOSYNCIO/syncIO()90SyncIOFailed配置 syslinux / 引导文件configSyslinux()、modifyBootGrubFile()——弹出磁盘EJECTDISK/ejectDisk()101 完成—其中几个细节值得展开格式化formatUsb()见 qtbaseinstaller.cpp先卸载分区如果目标是整块磁盘节点如/dev/sdb路径末尾没有数字分区号会先调用CreatePartition()创建分区再对新分区执行FormatPartion()。未勾选格式化时该阶段跳过实际格式化动作但仍会执行卸载解压extractISO()会先执行partprobe让内核重新同步分区表然后轮询等待自动挂载点出现最多重试 3 次、每次间隔 2 秒再清空目标目录后由SevenZip进程将 ISO 内容逐文件解压到 U 盘解压过程中通过progressChanged信号上报逐文件进度映射为 20–80 的区间见 bootmaker.cpp引导配置syncIO()之后调用configSyslinux()写入 syslinux 引导配置模板见 syslinux.cfg随后needAddRepo()用isoinfo检查镜像内是否含有anaconda安装器特征文件若是 deepin/UOS 类镜像还会向/EFI/BOOT/grub.cfg与/syslinux/syslinux.cfg中的linux/append行追加inst.repohd:UUID分区UUID使安装器直接从 U 盘读取软件源见 qtbaseinstaller.cpp成功页ResultView在NoError时显示成功图标与 “Successful” 标题按钮变为Done点击即退出应用见 resultview.cpp。制作失败手册列出的失败原因有四种磁盘格式错误Incorrect disk format磁盘空间不足Insufficient disk space磁盘挂载错误Disk mount error镜像解压错误Image decompression error当出现未知错误时制作失败窗口会出现提交反馈按钮单击后跳转到相关论坛进行问题反馈。这四类原因在源码中一一对应BMHandler::ErrorType枚举定义于 bmhandler.h及 bmhandler.cpp 的errorString()用户可读文案手册中的失败原因错误码界面提示文案源码errorString()磁盘格式错误USBFormatError“Disk Format Error: Please reformat it”专业版/家庭版额外提示或在安全中心中关闭「自动扫描 U 盘」磁盘空间不足USBSizeError“Insufficient disk Space: Ensure that the disk has enough free space”磁盘挂载错误USBMountFailed“Disk Mount Error: Insert the disk again or reboot to retry”镜像解压错误ExtractImgeFailed“Image Decompression Error: Verify md5 checksum of the image to ensure its integrity”其他/未知其余错误码走default“Internal Error”失败分支的处理逻辑在 resultview.cppupdateResult()中SyscExecFailed、InstallBootloaderFailed等严重错误非专业版系统显示 “The error log will be uploaded automatically with the feedback…” 提示按钮文案变为Submit Feedback点击后根据系统版本社区版/家庭版/专业版打开对应论坛页面或拉起deepin-feedback反馈客户端专业版则显示After-Sale Services并通过 D-Bus 调用com.deepin.dde.ServiceAndSupport服务支持会话其余已知错误码直接显示errorString()文案按钮为Close点击退出应用。也就是说手册中「未知错误 → 提交反馈」的行为是真实存在的代码路径严重错误时反馈按钮会连同自动上传的错误日志一起引导用户到社区论坛。主菜单手册说明在主菜单中可以切换窗口主题、查看帮助手册等。主菜单入口即界面右上角的菜单按钮包含主题、帮助、关于、退出四项。主题窗口主题包含浅色主题、深色主题和系统主题三种在启动盘制作工具界面单击主菜单按钮单击主题选择一个主题颜色。源码上主题切换通过DGuiApplicationHelper的themeTypeChanged信号分发主窗口bmwindow.cpp与各页面ISOSelectView、UsbSelectView、ProgressView、ResultView分别连接该信号在slot_ThemeChange()中为浅色白底#FFFFFF与深色深灰底#292929两套调色板设置背景色、文字色与图标资源如浅色用media-optical-96px.svg、深色用disc_bg.png。由于每个页面都实现了独立的主题适配函数切换主题时整窗口所有元素会即时更新。帮助在界面单击主菜单按钮单击帮助查看帮助手册进一步了解和使用启动盘制作工具。本文所依据的手册内容即对应仓库中src/help/deepin-boot-maker/boot-maker/目录下按语言组织的文档如 en_US/p_boot-maker.md、zh_CN/p_boot-maker.md另有 zh_TW、zh_HK 版本及各语言说明文件d_boot-maker.md。关于在界面单击主菜单按钮单击关于查看启动盘制作工具的版本和介绍。「关于」页面展示的版本信息以仓库debian/与rpm/下的打包元数据为准见 debian/changelog、rpm/deepin-boot-maker.spec应用名与图标由 deepin-boot-maker.desktop 声明。退出在界面单击主菜单按钮单击退出。退出路径与「使用入门 → 关闭启动盘制作工具」一致。需要再次强调的约束是一旦进入制作流程进度页主菜单的退出项会被禁用setQuitMenuDisabled(true)这是为了防止制作中途误退出导致 U 盘数据不完整。小结围绕这份操作手册deepin-boot-maker 的完整使用链路为启动器运行工具 → 拖拽或选择 ISO 并自动校验 → 选择 U 盘多分区时取第一个分区建议勾选格式化→ 开始制作进度页不可关闭、不可拔盘→ 成功页 Done / 失败页按错误码提示排查。底层对应QtBaseInstaller::beginInstall()的八步流水线与BMHandler::ErrorType错误码体系界面四页面由 bmwindow.cpp 通过QStackedLayout 滑动动画组织。如需进一步阅读实现建议按以下源码路径深入界面src/app/view/isoselectview.cpp、src/app/view/usbselectview.cpp、src/app/view/progressview.cpp、src/app/view/resultview.cpp制作引擎src/libdbm/installer/qtbaseinstaller.cpp、src/libdbm/backend/bootmaker.cpp、src/libdbm/backend/bmhandler.h设备枚举与 D-Bus 服务src/libdbm/util/utils.cpp、src/service/data/com.deepin.bootmaker.xml测试src/tests/ 下的bootmakertest、qtbaseinstallertest、sevenziptest等单元测试可帮助验证镜像校验与制作流程行为。赞分享桌面应用【免费下载链接】deepin-boot-maker项目地址https://gitcode.com/gh_mirrors/de/deepin-boot-maker点击查看免费下载相关推荐Deepin Boot Maker启动盘制作工具完整使用指南Deepin Boot Maker启动盘制作工具完整使用指南 Deepin Boot Maker是一款专为深度操作系统设计的启动盘制作工具能够帮助用户快速创建桌面应用Cherry MX键帽3D打印完整指南36款免费模型从读懂参数到打样成功四步走Cherry MX键帽3D打印完整指南36款免费模型从读懂参数到打样成功四步走 键盘上的键帽突然弹飞的那一刻轴体顶部的十字柱裸露在空气里越找替换件越发现硬件开发3D建模Deepin Boot Maker 启动盘制作工具使用指南Deepin Boot Maker 启动盘制作工具使用指南 Deepin Boot Maker 是一款由 Linux Deepin 团队开发的免费开源启动盘制作桌面应用上一篇Cursor AI Pro破解终极指南如何简单快速绕过试用限制免费使用下一篇Typha 架构深度解析Calico 大规模集群的扇出代理Fan-out Proxy设计创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考