在 Linux 系统中,dd 命令是一个功能强大但极其危险的命令行工具,常用于将镜像文件(ISO、IMG 等)写入到 U 盘、SD 卡或硬盘中,也就是常说的“刻录”。
⚠️ 重要警告:dd 命令没有确认步骤,如果目标设备(of=)选择错误,会立即覆盖该磁盘上的所有数据,且无法恢复!请务必在操作前仔细核对设备名称。
基本语法
sudo dd if=<输入文件> of=<输出设备> bs=<块大小> status=progress conv=fsync
if(Input File):输入文件,即你要刻录的镜像文件(如.iso或.img)。of(Output File):输出设备,即你的 U 盘或 SD 卡设备路径(如/dev/sdb)。bs(Block Size):块大小,决定写入速度,常用4M或8M。status=progress:显示写入进度(较新版本的 dd 支持)。conv=fsync:确保数据完全写入设备后再退出,避免数据丢失。
操作步骤详解
第一步:插入 U 盘,确认设备名称
插入 U 盘后,使用以下命令查看磁盘设备列表:
lsblk # 或者 sudo fdisk -l
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 464.8G 0 part /
sdb 8:16 1 14.9G 0 disk <-- 假设这是你的 U 盘
└─sdb1 8:17 1 14.9G 0 part /media/user/USB_DRIVE
👉 关键点:
- 找到你的 U 盘,
/dev/sdb。 - 不要选中分区(如
/dev/sdb1),而是选中整个磁盘设备(如/dev/sdb)。 - 记下 U 盘容量,避免选错成系统硬盘(如
/dev/sda)。
第二步:卸载 U 盘(可选但推荐)
U 盘自动挂载了,建议先卸载,避免冲突:
sudo umount /dev/sdb1 # 如果只有一个分区 # 或者卸载所有分区 sudo umount /dev/sdb
第三步:执行 dd 命令
假设:
- 镜像文件路径:
./ubuntu-22.04-desktop-amd64.iso - U 盘设备:
/dev/sdb - 块大小:
4M
sudo dd if=./ubuntu-22.04-desktop-amd64.iso of=/dev/sdb bs=4M status=progress conv=fsync
第四步:等待完成并同步数据
命令执行完毕后,你会看到类似输出:
1024+0 records in
1024+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 120 s, 35.8 MB/s
⚠️ 重要:即使显示完成,也建议运行以下命令确保数据彻底写入:
sudo sync
第五步:安全移除 U 盘
sudo umount /dev/sdb # 如果之前没卸载 sudo eject /dev/sdb
常见问题与技巧
❓ 如何查看写入进度?
- 使用
status=progress参数(推荐,需较新版本的 dd)。 - 或在另一个终端窗口运行:
watch -n 1 'kill -USR1 $(pgrep ^dd)'
❓ 写入速度慢怎么办?
- 增大
bs值,bs=8M或bs=16M。 - 使用 USB 3.0 接口和 U 盘。
❓ 如何验证写入是否正确?
可以使用 dd 读取 U 盘内容并与原镜像比较:
# 将 U 盘内容读到一个临时文件 sudo dd if=/dev/sdb of=/tmp/verify.iso bs=4M status=progress # 比较 MD5 或 SHA256 md5sum ./ubuntu-22.04-desktop-amd64.iso /tmp/verify.iso
如果两个哈希值一致,说明写入成功。
❓ 替代工具推荐(更安全易用)
如果你不喜欢 dd 的复杂性,推荐使用以下图形化或半自动化工具:
| 工具 | 说明 |
|---|---|
| BalenaEtcher | 图形界面,跨平台,自动验证,不易出错(推荐新手) |
| Rufus | Windows 下最常用,Linux 下也可用 Wine 运行 |
| Ventoy | 只需将 Ventoy 安装到 U 盘,之后只需复制 ISO 文件即可启动,无需反复刻录 |
✅ checklist
- [ ] 确认镜像文件路径正确。
- [ ] 确认 U 盘设备名称(如
/dev/sdb),不是分区(如/dev/sdb1)。 - [ ] 确认 U 盘数据已备份或不再需要。
- [ ] 执行
sudo dd ...命令。 - [ ] 执行
sudo sync确保数据写入。 - [ ] 安全弹出 U 盘。
如有任何不确定,请随时提问!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/478810.html



