使用“cat file.iso > /dev/sdb”创建可启动 USB 时出错

ano*_*187 1 filesystem partitioning usb

首先,我有一个 USB 闪存驱动器,里面有一个可启动的 Ubuntu 14.04 LTS。但现在,我想删除/擦除它并创建另一个操作系统的新可启动文件。首先,我直接尝试:

sudo cat file.iso > /dev/sdb; sync
Run Code Online (Sandbox Code Playgroud)

正如本线程中所建议的。没成功,返回了

bash: /dev/sdb: 权限被拒绝

所以,我认为发生这种情况是因为它已经包含可启动文件并决定擦除它。所以我刚刚shred编辑了它

sudo shred -v /dev/sdb

之后,当我将其粘贴到 PC 中时,它没有出现在 nautilus 垂直导航上。所以我为它做了一个文件系统sudo mkfs.ext3 /dev/sdb(我不知道它是否是正确的文件系统类型,但我只是在测试,如果不是,请警告我)

现在,我通过 nautilus 访问它,发现它确实是空的。我试图执行我一开始执行的命令sudo cat file.iso > /dev/sdb; sync,但仍然再次出现相同的“权限被拒绝”。

那么,有两个问题,这是否mkfs正确应用或者我不应该这样做?而且,我如何解决最终制作可启动 iso 的问题?(我不想使用unetbootin,无法安装它,我读到可以使用cat/sync来完成)提前致谢。

小智 9

我注意到其他答案似乎都在质疑您为什么cat在这种情况下使用,然后继续建议您使用dd.

没必要吧 您发布的原始命令基本上是正确的,它只是不起作用sudo(因为方向是由 shell 完成的,而不是由 完成的cat,所以您没有权限这样做),所以首先让自己进入 root shell。

sudo -i
Run Code Online (Sandbox Code Playgroud)

当您进入 root 提示符时,发出第一个命令。

cat file.iso > /dev/sdb; sync
Run Code Online (Sandbox Code Playgroud)

它会完全按照您的想法进行操作,并将 ISO 直接写入 USB 记忆棒,这可能是比使用更快、更明智的方法dd

不要忘记输入

exit
Run Code Online (Sandbox Code Playgroud)

当您完成 root shell 后。

  • 而且比 `dd` 更危险,因为你忘记告诉 OP 尽快退出 root 提示符。**;-)** 所以 `sudo sh -c 'cat file.iso > /dev/sdb; sync'` 将是 100% 正确的答案。 (3认同)