AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 450635
Accepted
lesnik
lesnik
Asked: 2018-06-20 05:10:27 +0800 CST2018-06-20 05:10:27 +0800 CST 2018-06-20 05:10:27 +0800 CST

关于 `dd`、iso 映像和 linux 设备的一般问题

  • 772

我有一个 iso 映像(它是一个 windows 安装盘),但我不想刻录 dvd。我想创建一个可启动的 USB 闪存驱动器。而我想用linux工具来完成这个任务。

我找到了几个食谱,他们建议使用dd如下工具:

dd if=/path/to/my.iso of=/dev/sdx

(这里是https://www.linux.com/blog/how-burn-iso-usb-drive)

另一个配方建议先在 USB 上创建一些分区(fe终端:从 iso 创建可启动 USB),这对我来说看起来很奇怪。

据我了解,闪存驱动器只是一个存储。它只是一个硬件,在给定该块的索引的情况下存储/返回一个数据块。这是对的吗?

/dev/sdxLinux 通过设备提供对这个存储的访问(x可能是任何字母,在我的情况下设备名称是/dev/sdb)。我可以通过此设备访问 USB 记忆棒上的任何数据。这个对吗?

该dd命令只是逐位读取文件的内容(嗯,逐块)并将数据写入指定的设备。如果输入文件足够大,U 盘上的每一位数据都将被覆盖。没有关于分区、文件系统类型等的信息会继续存在。这个对吗?如果是,在dd命令之前对 USB 棒进行分区/格式化有什么用?

命令的结果dd不是我所期望的。完成后,我可以从我的 linux 机器上看到 U 盘上的文件,但 U 盘无法启动,而且我的 Windows 根本无法读取(建议格式化 U 盘)。

我将使用一些工具来创建可启动的 USB 棒(rufus 或 yumi 或其他任何东西),现在这不是问题。问题是我不明白为什么我不能dd用于此目的。

上述食谱可能不适用于所有iso图像吗?请帮助我了解发生了什么。

dd live-usb
  • 3 3 个回答
  • 3214 Views

3 个回答

  • Voted
  1. Best Answer
    sudodus
    2018-06-20T08:13:25+08:002018-06-20T08:13:25+08:00

    克隆和提取

    我有一个 iso 映像(它是一个 windows 安装盘),但我不想刻录 dvd。我想创建一个可启动的 USB 闪存驱动器。而我想用linux工具来完成这个任务。

    我找到了几个食谱,他们建议使用dd如下工具:

    dd if=/path/to/my.iso of=/dev/sdx
    

    这是克隆(使用dd和其他克隆工具完成。

    (这里是https://www.linux.com/blog/how-burn-iso-usb-drive)

    另一个配方建议先在 USB 上创建一些分区(fe 终端:从 iso 创建可启动 USB),这对我来说看起来很奇怪。

    这是通过提取工具完成的。

    克隆和提取都是可能的常用方法。这两种方法都有多种工具。

    如果 iso 文件是混合 iso 文件,您可以通过刻录到 CD/DVD 磁盘和克隆到大容量存储设备来制作引导驱动器:USB pendrive、存储卡、HDD 或 SSD。如果 iso 文件不是混合 iso 文件,您可以通过刻录到 CD/DVD 磁盘来制作引导驱动器,但它不适用于大容量存储设备。但是您仍然可以使用提取工具制作引导设备(通过创建正确的分区表并将iso文件中的相关内容提取到大容量存储设备中)。

    据我了解,闪存驱动器只是一个存储。它只是一个硬件,在给定该块的索引的情况下存储/返回一个数据块。这是对的吗?

    是的。

    /dev/sdxLinux 通过设备提供对这个存储的访问(x 可能是任何字母,在我的情况下设备名称是/dev/sdb)。我可以通过此设备访问 USB 记忆棒上的任何数据。这个对吗?

    是的。

    该dd命令只是逐位读取文件的内容(嗯,逐块)并将数据写入指定的设备。如果输入文件足够大,U 盘上的每一位数据都将被覆盖。没有关于分区、文件系统类型等的信息会继续存在。这个对吗?如果是,在dd命令之前对 USB 棒进行分区/格式化有什么用?

    是的,因此,您不需要在克隆之前对 USB 记忆棒进行分区/格式化。无论如何,它的所有痕迹都会消失。

    命令的结果dd不是我所期望的。完成后,我可以从我的 linux 机器上看到 U 盘上的文件,但 U 盘无法启动,而且我的 Windows 根本无法读取(建议格式化 U 盘)。

    大多数主要的 linux 发行版都提供混合 iso 文件,这些文件在克隆时制作 USB 引导驱动器。但不是全部,例如不是 Knoppix(但您可以使用 处理 Knoppix iso 文件isohybrid)。

    Windows 7-10 iso 文件不是混合 iso 文件。因此,您需要一种提取方法(手动或使用工具)来创建 USB 引导驱动器。

    我将使用一些工具来创建可启动的 USB 棒(rufus 或 yumi 或其他任何东西),现在这不是问题。问题是我不明白为什么我不能dd用于此目的。

    上述食谱可能不适用于所有iso图像吗?请帮助我了解发生了什么。

    链接

    help.ubuntu.com/community/Installation/iso2usb

    • 驱动器 - 大容量存储设备
    • 克隆和提取
    • 自己做(这有助于理解发生了什么)

    克隆无需准备

    • dd 配得上“磁盘破坏者”和“数据破坏者”的绰号
    • 带有最终检查点的工具
    • 如果克隆不起作用
    • 4
  2. imbuedHope
    2018-06-20T05:28:40+08:002018-06-20T05:28:40+08:00

    如何使用dd取决于.iso文件的创建方式。

    dd 命令只是逐位读取文件的内容(嗯,逐块)并将数据写入指定的设备。如果输入文件足够大,U 盘上的每一位数据都将被覆盖。

    这是正确的,但是如果我dd if=/dev/sdb1 of=test.iso在创建.iso? 或者可能运行了一些类似dd if=/dev/sdb of=test.iso bs=1M seek=1导致它跳过第一个1M数据的东西?

    dd不关心底层分区方案,这意味着你如何使用它完全取决于块设备的结构和你正在写入的数据。

    • 3
  3. YoMismo
    2018-06-20T06:19:34+08:002018-06-20T06:19:34+08:00

    如果您dd使用该设备,您将失去您的 USB 可用空间,因为 dd'ing 将覆盖 MBR/GPT。

    对您的设备进行分区可能允许将您的图像写入分区,从而让您保留可用空间。但是您需要调整您的引导管理器(grub?)才能从该分区启动。如果您对驱动器进行分区,您将拥有 sdx1、sdx2、... 允许您dd if=your.iso of=/dev/sdx1或您想要的分区。

    这里的问题是您想使用 Windows 安装盘来执行此操作,这可能是个问题。如果 Windows 需要 DVD 单元进行安装,它可能无法启动,或者您可能需要重新调整该映像以避免该检查。在 Linux 上事情更容易,因为许多发行版允许启动 iso 本身,其他可能需要一些 hack 才能拥有一个带有许多发行版的 USB,您可以从这些发行版开始。

    • 2

相关问题

  • 从大文件末尾删除空字节

  • dd 命令写入 /dev/sdc 改变了磁盘的大小

  • 确定两个 iso 图像是否相等

  • 如何在 macOS High Sierra 上加速 dd?

  • 最后的尾巴安装问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve