我的目标很简单,标题说明了一切,但我尝试过的每一种方式都失败了。我已经阅读了各种网站上的说明(除了这里),它们似乎都缺少一些东西......这就是我所拥有的:
- 16 GB 闪迪 USB 3 驱动器。
- Debian Jessie 机器
- windows机器,macbook pro
虽然我可以使用 rufus 轻松创建可启动的 Windows 10 USB,但我的目标更具教育意义:我想了解发生了什么,以及我失败的原因是什么,如果可能的话,让它发挥作用。
当我尝试在终端中创建 Win10 映像时,我尝试了以下命令:
sudo dd if=Windows10.iso of=/dev/sdc1 bs=512k
我得到一个似乎安装在 Debian 上的分区,但在 Windows 和 Mac 上却无法识别。Gparted 显示: gparted 报告文件系统 比较未知,另一个正常工作的 USB 闪存驱动器(我有 4 个)读取如下: 在此处输入图像描述
我在某些地方读到您不应该输出到分区(sdc1)而是输出到驱动器(sdc),所以我尝试了这个:
sudo pv Windows10.iso | sudo dd of=/dev/sdc bs=5M
(对于那些熟悉的人来说,它是相同的命令,通过 dd 管道传输,并使用 sdc 代替)。正如您从 fdisk 中看到的那样,这似乎会破坏整个分区:我的终端输出显示了命令和 fdisk。
这很令人沮丧,但我决定重新开始。我重新启动,并运行以下命令
sudo umount /dev/sdc1
sudo wipefs -a /dev/sdc
sudo fdisk -l
sudo fdisk /dev/sdc
n, p, 1, [enter], [enter], t, 7, w
这应该格式化一个新分区并将其从默认(linux)更改为我需要的 ntfs 分区。然后我运行:
lsblk
并使用以下命令创建 NTFS 文件系统:
sudo mkfs -t ntfs /dev/sdc1
之后,我尝试运行 dd,但使用了一个附加选项:conv=fdatasync(有些人说这可以确保缓存中没有任何内容,并且可以解决这个问题)。
pv Windows10.iso | sudo dd of=/dev/sdc conv=fdatasync bs=512k
(我删除了字节大小以防出现问题)。不管我怎么做,我注意到以下几点:
- dd 确实写入文件和文件系统,它在 linux 中是可读的(我可以打开文件)但它没用, lsblk 和 gparted 都说那里什么都没有!
- 我选择 sdc1 还是 sdc 似乎只会影响驱动器损坏的严重程度。一个会损坏分区,而另一个会使整个驱动器看起来像未分配。
- 驱动器很好:我进入 Windows 并使用相同的“损坏”的 USB 驱动器,复制相同的文件并验证它可以启动并且工作正常。
请记住 dd 命令与gpartedlive一起使用。我运行了以下代码:
sudo wipefs -a /dev/sdc
sudo fdisk /dev/sdc
lsblk
sudo mkfs -t vfat /dev/sdc1
pv gparted-live-1.1.0-1amd64.iso|sudo dd of=/dev/sdc bs=4M conv=fdatasync
并获得了一个完全正常工作的 gparted 实时驱动器。这让我很困惑,所以我想我会寻求帮助。我知道如果我和鲁弗斯呆在一起就可以省去麻烦,但这不是简单的,而是要了解正在发生的事情。我知道 linux 上的一些 gui 工具可能会解决这个问题,但是,我希望尽可能使用旧的 unix 终端来解决这个问题。如果不可能,那么我想知道为什么。总结一下:
- 为什么它不工作?我究竟做错了什么?
- 为什么 dd 破坏了分区,但它似乎与 gparted 一起工作正常?
- 我在哪里可以了解更多关于将图像复制到闪存驱动器的这种不太常见的用法?
非常感谢您的帮助!你会为我节省更多的头痛时间!