Linux环境下制作Windows可引导U盘:如何找到正确的ISO写入路径
Linux环境下制作Windows可引导U盘:如何找到正确的ISO写入路径
嗨,我来帮你搞定这个问题!你遇到的核心问题是用dd的时候把ISO写到了U盘的挂载目录(/media/nicholas/win/),但dd需要直接写入U盘的块设备文件(比如/dev/sdb),而不是已经挂载的目录。下面一步步教你怎么操作:
第一步:先卸载已挂载的U盘分区
首先得把你当前挂载的/media/nicholas/win/卸载掉,避免写入冲突:
sudo umount /media/nicholas/win/
如果提示“设备忙”,可以先关闭所有访问这个目录的程序再试。
第二步:找到U盘对应的块设备路径
有几个简单的命令可以帮你定位U盘:
方法1:用lsblk命令(最直观)
运行这个命令,会列出所有块设备的信息,包括容量、挂载点:
lsblk
你要找的是容量和你的U盘匹配的设备(比如如果是64G的U盘,就找对应大小的那一行)。设备名一般是/dev/sdb、/dev/sdc这类(注意不要选/dev/sda,那通常是你的系统硬盘)。比如输出里可能会看到:
sdb 8:16 1 59.6G 0 disk └─sdb1 8:17 1 59.6G 0 part /media/nicholas/win
这里的/dev/sdb就是整个U盘的设备路径,不要选带数字的分区(比如sdb1)。
方法2:用fdisk -l命令
运行这个命令,查看所有磁盘的详细信息:
sudo fdisk -l
同样找容量匹配的设备,比如:
Disk /dev/sdb: 59.62 GiB, 64023257088 bytes, 125045424 sectors Disk model: USB Flash Drive Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Device Start End Sectors Size Type /dev/sdb1 2048 125045399 125043352 59.6G Microsoft basic data
这里的/dev/sdb就是我们要找的设备。
方法3:用dmesg命令(刚插U盘时用)
如果刚插上U盘,可以运行:
dmesg | tail
里面会有类似这样的日志:
[12345.678901] sd 5:0:0:0: [sdb] Attached SCSI removable disk
这里的[sdb]就是设备名,对应路径/dev/sdb。
第三步:用dd写入ISO到U盘
找到正确的设备路径后,就可以执行写入命令了(把/dev/sdb换成你找到的实际路径):
sudo dd if=/home/nicholas/Desktop/Win10_22H2_English_x64v1.iso of=/dev/sdb bs=4M && sync
if=后面是你的ISO文件路径of=后面是U盘的块设备路径(不要加分区号!)bs=4M是设置块大小,让写入更快sync会确保所有数据都写入U盘,防止中途拔盘损坏数据
注意事项
- 一定要确认设备路径正确! 如果写错成系统盘(比如
/dev/sda),会直接覆盖系统数据,导致系统崩溃。 - 写入过程中可能看不到进度,耐心等它完成就行(大ISO可能需要几分钟)。
- 写完后可以重新插拔U盘,确认它能正常识别,然后就可以用来引导安装Windows了。
备注:内容来源于stack exchange,提问作者Nicholas Saunders




