总是有些人问Linux系统里制作启动U盘需要用什么软件,虽然确实是有很多很好的软件,但其实绝大多数系统都已经集成了dd,如果只是偶尔制作几块U盘自用的话,完全不需要专门另外下载什么软件来完成。几个命令就可以搞定。

⚠️ 警告:dd 命令具有强制写入的能力,操作错误可能会导致数据丢失,特别是写错了磁盘设备号(如 /dev/sda 而不是 /dev/sdb)!使用前务必小心。

✅制作启动 U 盘步骤

1. 插入 U 盘
插入 U 盘后,在终端运行以下命令查看设备名称:

lsblk

你会看到类似以下输出:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
├─sda1   8:1    0   50G  0 part /
├─sda2   8:2    0   50G  0 part /home
sdb      8:16   1   16G  0 disk
└─sdb1   8:17   1   16G  0 part /run/media/user/USB

假设你的 U 盘是 /dev/sdb(注意不是 /dev/sdb1,我们要写入整个设备)。

你可以从容量的大小,设备的分区和路径,注意仔细分辨,不要自毙。

2. 卸载 U 盘(如果已挂载)

umount /dev/sdb*

3. 使用 dd 写入 ISO 镜像

sudo dd if=path/to/your.iso of=/dev/sdX bs=4M status=progress oflag=sync

替换其中:

path/to/your.iso 是你的 ISO 文件路径。

/dev/sdX 是你的 U 盘设备,比如 /dev/sdb。

例子:

sudo dd if=~/Downloads/rockylinux.iso of=/dev/sdb bs=4M status=progress oflag=sync

4. 等待完成
过程会花几分钟,完成后不会有明显提示,等 dd 执行完毕,返回命令提示符即可。

你可以用 sync 命令确保缓冲区写入完成:

sync

5. 安全移除 U 盘

sudo eject /dev/sdb

✅ 小贴士
ISO 文件路径可以用 Tab 键补全。

bs=4M 表示每次读取写入 4MB,性能更好。

status=progress 能显示写入进度(较新版本的 dd 才支持)。

oflag=sync 保证每块写入数据同步到磁盘,增加稳定性。

✅ 显示进度的方法

sudo dd if=你的镜像.iso of=/dev/sdX bs=4M status=progress oflag=sync

参数说明:
status=progress:显示当前写入了多少字节(这是关键!)

bs=4M:每次读写 4MB,加快速度

oflag=sync:写入时同步,增加稳定性,避免缓存未写入完成

📌 示例命令:

sudo dd if=~/Downloads/Rocky-9.3-x86_64-dvd.iso of=/dev/sdb bs=4M status=progress oflag=sync

输出示例(你会看到这种实时显示):

104857600 bytes (105 MB, 100 MiB) copied, 5.23137 s, 20.0 MB/s

会不断更新直到写入完成。

如果你的系统是老版本 dd,不支持 status=progress?
可以用组合命令让它显示进度:

sudo dd if=你的镜像.iso of=/dev/sdX bs=4M oflag=sync & pid=$!; while kill -USR1 $pid 2>/dev/null; do sleep 1; done

这条命令会每秒显示进度。

这样就可以了,你只需要一点时间,静待系统给出完成指令后反馈的统计信息就好。