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

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

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

sudo cat file.iso > /dev/sdb; sync

正如建议的那样线程。它没有工作,返回

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

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

sudo shred -v /dev/sdb

之后,当我将它插入 PC 时,它没有出现在 Nautilus 垂直导航上。所以我为它创建了一个文件系统sudo mkfs.ext3 /dev/sdb(我不知道它是否是制作它的正确 fs 类型,但无论如何我只是在测试,如果不是,请警告我)

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

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

答案1

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

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

sudo -i

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

cat file.iso > /dev/sdb; sync

它会按照你的想法直接将 ISO 写入 USB 驱动器,这可能是比使用dd

别忘了输入

exit

当您完成 root shell 后。

答案2

您尝试的命令

sudo cat file.iso > /dev/sdb; sync

如果结果符合您的预期,则将完全覆盖 USB 驱动器。因此,之前无需/没有理由在其上创建 ext3 文件系统。

从某种意义上来说,您的mkfs.ext3命令很好。

实际上 cat 命令不起作用,因为 sudo 命令以 root 身份运行,但输出重定向不起作用。让它工作的简单方法是

sudo dd if=file.iso of=/dev/sdb bs=16k; sync

由于这不使用输出重定向,因此 sudo 没有问题。

在您链接的问题中,这被称为“复古方式”。

答案3

强大但危险的命令

catdd可以达到目的,从 iso 文件克隆到大容量存储设备,例如 USB 闪存驱动器或存储卡。

当您向这样的设备写入数据时,您将覆盖之前的内容,包括分区表和文件系统。这些命令会按照您的指令执行,不会产生任何问题。因此,如果您告诉它们擦除您的家庭照片,它们会照做。而且这只是一个小小的打字错误。

由于dd传统上将其用于此目的,它获得了“磁盘销毁器”和“数据销毁器”的绰号,但cat在此上下文中使用时,也存在同样的风险。

识别目标设备并具有最终检查点的工具

因此,最好使用带有帮助功能的工具来识别目标设备,并设置最终检查点,以便检查是否选择了正确的目标设备,即 USB 闪存驱动器。这样,您就可以避免用操作系统和各种个人数据文件覆盖内部驱动器,或用个人数据文件或备份覆盖外部驱动器。

  • 产生相同结果的克隆工具catdd以此目的,

    • 启动盘创建器在 Ubuntu 16.04 LTS 及更新版本中
    • 磁盘别名gnome-disks
    • 韓國
  • 提取工具可生成不同的可用 USB 启动驱动器(不是克隆副本),

    • 鲁弗斯(仅限 Windows)
    • 网启动(在 Linux、Windows 和 MacOS 中)

请参阅此链接及其中的链接了解更多详细信息,

help.ubuntu.com/community/Installation/FromUSBStick

答案4

蚀刻机也要做这个……

相关内容