如何使用 dd 将 ISO 映像复制到 USB

wei*_*s26 17 linux iso-image dd

SliTaz 3.0 发行说明的最后一段说明了有关 liveCD 的以下内容:

ISO 映像现在使用“混合”系统:也可以将其复制到 USB 记忆棒上而无需对其进行格式化(使用 dd)。

有谁知道如何做到这一点?

Ya *_*ang 28

dd if=/path/to/your/isofile of=/your/usb/disk bs=8M status=progress 尝试这个。


更新为@Kimvais 和@Kelly Bang 建议

  • `bs=8M` 左右会加快这个速度......此外,应该提到使用 `mount` 来查看安装在 `/media/83...` 的磁盘 (11认同)
  • @weis26:你可以,`~` 只是替换为当前用户的主目录路径。如果 `if` 或 `of` 路径在您的主目录中,请使用它确保... (2认同)
  • @weis26 取决于您要使用相对路径还是绝对路径。顺便说一句,使用 `dd` 将使您的 USB 设备成为只读设备,并使其成为“正常”的 USB 设备,您应该重新分区该设备。 (2认同)

小智 9

如果您希望能够查看进度或获得预计到达时间,您可以将管道视图 (pv) 添加到组合中,例如:

dd if=<path to input file> | pv -s <size e.g. 1377M> | dd of=<path to target device>
Run Code Online (Sandbox Code Playgroud)

这将给出如下输出:

850MiB 0:05:18 [6.44MiB/s] [====================> ] 61% 预计到达时间 0:03:16

  • dd 中的选项之一是“status=progress”以获取定期传输统计信息。 (2认同)

jay*_*jay 6

注意:这是一种通用的方法,几乎​​适用于所有 *nix 系统。如果您在其他建议上遇到问题,请尝试一下这一建议。那么您想运行 dd(磁盘销毁器)吗?在连接块设备之前,cat /proc/partitions; 然后连接您的设备并再次 cat /proc/partitions。差异将表明您的目标设备。如果没有差异,则说明您缺少正确的驱动程序来识别它,或者存在硬件故障。

这是我的笔记本电脑上的样子,分别是之前和之后:

jcholsap@T430s:~$ cat /proc/partitions 

major minor  #blocks  name
8        0  117220824 sda
8        1  117219328 sda1
11       0    1048575 sr0
253      0  109109248 dm-0
253      1    8077312 dm-1

jcholsap@T430s:~$ cat /proc/partitions 

major minor  #blocks  name
8        0  117220824 sda
8        1  117219328 sda1
11       0    1048575 sr0
253      0  109109248 dm-0
253      1    8077312 dm-1
8       16   30670848 sdb
Run Code Online (Sandbox Code Playgroud)

使用第三列(大小以千字节为单位)来验证您的块设备。如果您感到紧张(您应该感到紧张),您可以使用 dmesg 进一步验证您的设备。这是我的笔记本电脑上的:

jcholsap@T430s:~$ dmesg | tail -30
[   10.197383] thinkpad_acpi: EC reports that Thermal Table has changed
[   34.599234] random: crng init done
[   35.133277] rfkill: input handler disabled
[ 9737.190954] usb 4-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 9737.211756] usb 4-2: New USB device found, idVendor=0781, idProduct=5580
[ 9737.211762] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9737.211765] usb 4-2: Product: Extreme
[ 9737.211768] usb 4-2: Manufacturer: SanDisk
[ 9737.211770] usb 4-2: SerialNumber: AA010507161254310422
[ 9737.244492] usb-storage 4-2:1.0: USB Mass Storage device detected
[ 9737.245540] scsi host6: usb-storage 4-2:1.0
[ 9737.245746] usbcore: registered new interface driver usb-storage
[ 9737.247465] usbcore: registered new interface driver uas
[ 9738.259485] scsi 6:0:0:0: Direct-Access     SanDisk  Extreme          0001 PQ: 0 ANSI: 6
[ 9738.260340] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 9738.260698] sd 6:0:0:0: [sdb] 61341696 512-byte logical blocks: (31.4 GB/29.3 GiB)
[ 9738.260919] sd 6:0:0:0: [sdb] Write Protect is off
[ 9738.260925] sd 6:0:0:0: [sdb] Mode Sense: 53 00 00 08
[ 9738.261142] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 9738.267727] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 9738.496445] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.496450] UDF-fs: Scanning with blocksize 512 failed
[ 9738.505586] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.505589] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.519311] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.519324] UDF-fs: Scanning with blocksize 512 failed
[ 9738.528153] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.528157] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.533493] UDF-fs: INFO Mounting volume 'UDF Volume', timestamp 2011/04/12 09:38 (1000)
[10100.854101] perf: interrupt took too long (2519 > 2500), lowering kernel.perf_event_max_sample_rate to 79250
Run Code Online (Sandbox Code Playgroud)

这里有我的拇指驱动器的所有详细信息。啊,现在我确信我拥有正确的设备!

但我连接的设备可能已自动安装。对于dd来说,这是一个问题。因此,为了确定起见,让我们使用 umount 卸载它(注意拼写上的差异)。我将运行该命令两次,因为错误消息让我知道它成功了:

jcholsap@T430s:~$ sudo umount /dev/sdb
jcholsap@T430s:~$
jcholsap@T430s:~$ sudo umount /dev/sdb
umount: /dev/sdb: not mounted.
Run Code Online (Sandbox Code Playgroud)

现在,因为 Linux 中的所有内容都被视为文件,所以 dd 将目标块设备(在我的例子中为 /dev/sdb)称为输出文件。因此,对于我的拇指驱动器,使用 dd 命令使用的选项参数对是 of=/dev/sdb。您希望做到这一点,否则 dd 对您来说可能意味着磁盘破坏者。这是我的笔记本电脑上的:

jcholsap@T430s:~$ sudo dd of=/dev/sdb if=/home/jcholsap/centos7.iso bs=4M
Run Code Online (Sandbox Code Playgroud)

运行 dd 命令没有输出。您只会看到一个闪烁的光标,直到完成,这可能需要很长时间。如果您中断该过程,那么您将获得部分图像副本 - 可能不是您想要的。

另请参见完整文档: http: //www.gnu.org/software/coreutils/dd 或通过以下方式在本地获取:info '(coreutils) dd incalling'