当前位置: 首页 > news >正文

# 把 ISO 写入 U 盘(相关了解)

把 ISO 写入 U 盘的目的与底层原理


📌 为什么要把 ISO 写入 U 盘?

  • 创建可启动安装媒体:ISO 文件包含操作系统的完整镜像(引导程序、内核、文件系统等),写入 U 盘后,就能让电脑从 U 盘启动,进入安装或 Live 环境。
  • 保持一致性:原始块级(block-level)拷贝确保写入后 U 盘上的文件和结构与 ISO 完全一致,避免手动复制文件遗漏引导信息。
  • 方便携带与多平台:使用 USB 接口,兼容大多数现代主板,同时支持 BIOS 和 UEFI 双模式启动。

🚀 底层原理详解

  1. ISO 的本质
    • ISO 文件通常是 ISO 9660 文件系统的完整扇区镜像,其中已包含:
      1. 主引导记录(MBR)或 GPT 保护 MBR
      2. 分区表(对于 Hybrid ISO,会在 ISO 头部伪装分区表)
      3. 引导扇区(Boot Sector):比如 El Torito 标准里的引导映像
      4. 文件系统数据区:ISO 9660 目录结构及文件内容

在这里插入图片描述

  1. 原始写入(Raw Write)
  • 工具(如 dd、Rufus、Etcher)对优盘进行原始块级复制(raw copy):

    • 将 ISO 镜像的每个扇区逐一写入 U 盘对应扇区(offset 0 开始)
    • 不做任何文件系统转换或提取,仅做“扇区到扇区”的拷贝
    sudo dd if=system.iso of=/dev/sdX bs=4M status=progress && sync
    
    • if:输入 ISO;of:目标 U 盘设备;bs=4M:加快吞吐,确保分区对齐;sync:写入完成后刷新缓存。
  1. 引导扇区与加载流程
    • Legacy BIOS 模式

      1. BIOS 读取第 0 扇区(MBR)→ 加载其中的 446 byte 引导代码 → 解析分区表
      2. 跳转到 El Torito 引导映像扇区 → 执行 Bootloader (如 isolinux)
    • UEFI 模式

      1. UEFI 固件识别 EFI 系统分区(ESP,FAT32 格式)
      2. 在 ISO 镜像里,ESP 被打包为 El Torito EFI 镜像 → 挂载后执行 \EFI\BOOT\BOOTX64.EFI

在这里插入图片描述

💡 关键点补充

  • Hybrid ISO

    • 同时兼容光盘和块设备启动,ISO 头部伪装了分区表,让 U 盘像硬盘一样被识别。
  • 对齐与性能

    • 推荐使用 bs=4M 参数,保证大扇区对齐,提升写入速度并减少磨损。
  • 校验与安全

    • 多数工具写入后会自动校验 ISO 校验和(MD5/SHA256),确保扇区无误。

小结
写入 ISO 到优盘,本质是把镜像文件当扇区序列原样复制到 U 盘,保留其中的引导记录和文件系统结构,启动时让 BIOS/UEFI 直接读取并执行已有的引导代码完成安装环境加载。


📌u盘启动原理概述

在这里插入图片描述

启动 U 盘中的安装程序——详细流程

  1. 📺 固件初始化

    • BIOS:执行 Power‑On Self Test (POST),初始化 CPU、内存、南北桥、显卡等。
    • UEFI:加载驱动(如 NVMe、USB 3.0),建立设备树(Device Tree)。
  2. 🔍 枚举启动设备

    • 固件扫描所有已连接的存储设备(SATA、NVMe、USB)。
    • 识别设备类型,加载相应驱动,列入“启动列表”。
  3. 🥇 按启动顺序选择 USB

    • 用户或默认设置中,将 U 盘置于首选项。
    • 固件跳过其他设备,准备从 U 盘启动。
  4. 📀 读取第 0 扇区

    • 使用 Int 13h(BIOS)或 Block I/O(UEFI)服务读取扇区 0。

    • 扇区 0 包含:

      • MBR(Legacy)或 保护性 MBR + GPT 头(Hybrid)。
      • 首段引导代码(bootstub)。
  5. ⚙️ 解析分区表与 Boot Catalog

    • Legacy BIOS:MBR 引导代码找到 El Torito Boot Catalog,确定 BIOS 引导映像位置。
    • UEFI:固件直接识别 GPT 中的 EFI 系统分区(ESP,FAT32),挂载其中的 \EFI\BOOT\BOOTX64.EFI
  6. 🚀 加载引导加载程序

    • Windows:执行 bootmgr,读取 BCD(Boot Configuration Data)。
    • Linux:执行 ldlinux / isolinux.bin / grubx64.efi,加载 grub.cfg 或 isolinux 配置。
  7. 🐧/🪟 加载内核与初始映像

    • Linux:加载 vmlinuzinitrd/initramfs,将临时根文件系统解压到内存。
    • Windows:加载 WinPE 映像(boot.wim),在内存中构建 Windows 预安装环境。
  8. 🔧 初始化安装环境

    • 装载临时根(RAMDisk / WinPE),加载必要的驱动(存储、网络、USB)。
    • 启动图形或文本安装界面,等待用户输入(语言、分区、账号)。
  9. 🎉 进入系统安装程序

    • 安装程序读取 ISO9660/UDF 中的文件,执行分区、格式化、复制文件、写入引导。
    • 完成后提示重启,用户拔出 U 盘,进入新安装的系统。

相关文章:

  • 《深度学习:基础与概念》第一章 学习笔记与思考
  • VBA使用字典统计
  • 键盘按键枚举 Key 说明文档
  • [创业之路-418]:经济学 - 凯恩斯主义的需求管理与西方供应侧理论、供需关系理论详解以及对创者者的启示
  • 【leetcode】78. 子集
  • 湖北理元理律师事务所债务规划方法论:法律框架下的可持续还款体系
  • 义乌购商品详情接口开发指南
  • 详解Java的启动参数-Dfile.encoding、System.getProperty(“file.encoding“)、该参数影响哪些行为
  • Atcoder Beginner Contest 410 题解报告
  • 生产者消费者消息流转和基本实操
  • Golang 在 Linux 平台上的并发控制
  • Vue3 + TypeScript + Element Plus 表格实例null检查方法
  • 18.vue.js的scoped样式隔离?原理和使用?(1)
  • c++总结-05-模板与泛型编程
  • 大IPD之——学习华为市场洞察,为战略找到方向(四)
  • 层压板选择、信号完整性和其他权衡
  • 日常开发工作流程梳理
  • 16 celery集成其他工具
  • 【论文解读】AgentThink:让VLM在自动驾驶中学会思考与使用工具
  • 【Python 爬虫 防盗链】
  • 外贸英文网站建设/下列哪些店铺适合交换友情链接
  • wordpress gb2312/长沙企业关键词优化哪家好
  • 网站代理登录网址/网络销售怎么才能找到客户
  • 用liferay做的网站/站内seo是什么意思
  • 一站式做网站公司/网站seo优化分析
  • 那个平台的网页游戏好玩/baiduseoguide