# 把 ISO 写入 U 盘(相关了解)
把 ISO 写入 U 盘的目的与底层原理
📌 为什么要把 ISO 写入 U 盘?
- 创建可启动安装媒体:ISO 文件包含操作系统的完整镜像(引导程序、内核、文件系统等),写入 U 盘后,就能让电脑从 U 盘启动,进入安装或 Live 环境。
- 保持一致性:原始块级(block-level)拷贝确保写入后 U 盘上的文件和结构与 ISO 完全一致,避免手动复制文件遗漏引导信息。
- 方便携带与多平台:使用 USB 接口,兼容大多数现代主板,同时支持 BIOS 和 UEFI 双模式启动。
🚀 底层原理详解
- ISO 的本质
- ISO 文件通常是 ISO 9660 文件系统的完整扇区镜像,其中已包含:
- 主引导记录(MBR)或 GPT 保护 MBR
- 分区表(对于 Hybrid ISO,会在 ISO 头部伪装分区表)
- 引导扇区(Boot Sector):比如 El Torito 标准里的引导映像
- 文件系统数据区:ISO 9660 目录结构及文件内容
- ISO 文件通常是 ISO 9660 文件系统的完整扇区镜像,其中已包含:
- 原始写入(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
:写入完成后刷新缓存。
- 将 ISO 镜像的每个扇区逐一写入 U 盘对应扇区(
- 引导扇区与加载流程
-
Legacy BIOS 模式
- BIOS 读取第 0 扇区(MBR)→ 加载其中的 446 byte 引导代码 → 解析分区表
- 跳转到 El Torito 引导映像扇区 → 执行 Bootloader (如 isolinux)
-
UEFI 模式
- UEFI 固件识别 EFI 系统分区(ESP,FAT32 格式)
- 在 ISO 镜像里,ESP 被打包为 El Torito EFI 镜像 → 挂载后执行
\EFI\BOOT\BOOTX64.EFI
-
💡 关键点补充
-
Hybrid ISO
- 同时兼容光盘和块设备启动,ISO 头部伪装了分区表,让 U 盘像硬盘一样被识别。
-
对齐与性能
- 推荐使用
bs=4M
参数,保证大扇区对齐,提升写入速度并减少磨损。
- 推荐使用
-
校验与安全
- 多数工具写入后会自动校验 ISO 校验和(MD5/SHA256),确保扇区无误。
✨ 小结
写入 ISO 到优盘,本质是把镜像文件当扇区序列原样复制到 U 盘,保留其中的引导记录和文件系统结构,启动时让 BIOS/UEFI 直接读取并执行已有的引导代码完成安装环境加载。
📌u盘启动原理概述
启动 U 盘中的安装程序——详细流程
-
📺 固件初始化
- BIOS:执行 Power‑On Self Test (POST),初始化 CPU、内存、南北桥、显卡等。
- UEFI:加载驱动(如 NVMe、USB 3.0),建立设备树(Device Tree)。
-
🔍 枚举启动设备
- 固件扫描所有已连接的存储设备(SATA、NVMe、USB)。
- 识别设备类型,加载相应驱动,列入“启动列表”。
-
🥇 按启动顺序选择 USB
- 用户或默认设置中,将 U 盘置于首选项。
- 固件跳过其他设备,准备从 U 盘启动。
-
📀 读取第 0 扇区
-
使用 Int 13h(BIOS)或 Block I/O(UEFI)服务读取扇区 0。
-
扇区 0 包含:
- MBR(Legacy)或 保护性 MBR + GPT 头(Hybrid)。
- 首段引导代码(bootstub)。
-
-
⚙️ 解析分区表与 Boot Catalog
- Legacy BIOS:MBR 引导代码找到 El Torito Boot Catalog,确定 BIOS 引导映像位置。
- UEFI:固件直接识别 GPT 中的 EFI 系统分区(ESP,FAT32),挂载其中的
\EFI\BOOT\BOOTX64.EFI
。
-
🚀 加载引导加载程序
- Windows:执行
bootmgr
,读取 BCD(Boot Configuration Data)。 - Linux:执行
ldlinux
/isolinux.bin
/grubx64.efi
,加载grub.cfg
或 isolinux 配置。
- Windows:执行
-
🐧/🪟 加载内核与初始映像
- Linux:加载
vmlinuz
和initrd/initramfs
,将临时根文件系统解压到内存。 - Windows:加载 WinPE 映像(
boot.wim
),在内存中构建 Windows 预安装环境。
- Linux:加载
-
🔧 初始化安装环境
- 装载临时根(RAMDisk / WinPE),加载必要的驱动(存储、网络、USB)。
- 启动图形或文本安装界面,等待用户输入(语言、分区、账号)。
-
🎉 进入系统安装程序
- 安装程序读取 ISO9660/UDF 中的文件,执行分区、格式化、复制文件、写入引导。
- 完成后提示重启,用户拔出 U 盘,进入新安装的系统。