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

# 把 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 盘,进入新安装的系统。

http://www.xdnf.cn/news/14234.html

相关文章:

  • VBA使用字典统计
  • 金蝶云星空BOS开发
  • 搜索问答技术概述:基于知识图谱与MRC的创新应用
  • OAC: Output-adaptive Calibration for Accurate Post-training Quantization
  • 痉挛性斜颈:认识颈部的 “异常挛动”
  • Java-String
  • 如何快速提升英文听力?
  • PCB设计杂谈之一
  • Amazon Q in QuickSight 实战:自然语言秒级生成数据报表与深度洞察
  • 打牙祭是什么意思
  • 快速读取数据
  • 006__C++类的特殊用法
  • 2.3.3 07年T2
  • GeoTools:gt-referencing模块
  • LoadRunner 2023 安装部署
  • 如何稳定地更新你的大模型知识(算法篇)
  • DataX HdfsReader 插件:快速上手与深入解析
  • 《P1878 舞蹈课》
  • 基于Docker编译运行orb-slam2_with_semantic_labelling
  • 36. 有效的数独
  • 『uniapp』搜索功能+商品列表滚动效果(详细图文注释)
  • SAE层、BPNN层结合的深度学习模型
  • C++ 环境配置
  • XRecorder:安卓录屏,轻松高效
  • 嵌入式PADS中Route布线操作与实现
  • OVS Faucet Tutorial笔记(下)
  • 动手学深度学习Pytorch版(李沐)(5-7章)
  • 使用STM32设置GPIO中断
  • 20250611题解
  • 抖音蓝牙遥控器芯片方案、自拍器蓝牙芯片方案 简易版 io控制