¿Por qué 'dd' no funciona para crear USB de arranque?

36

Recientemente quería crear un USB de arranque de Linux mint. Descubrí que había muchos consejos / experiencias contradictorios sobre si el comando 'dd' podría usarse para crear un USB de arranque. Decidí descargar un ISO e intentarlo. Si bien dd definitivamente colocó la imagen en la memoria USB, no fue arrancable. Entonces, mi pregunta es ¿cuál es el ingrediente mágico que hará que esto funcione o por qué este enfoque persiste si no funciona?

Este es el comando que usé,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 
jdowner
fuente
@sawdust mientras declara que las respuestas publicadas son "prohibidas", este artículo ( community.linuxmint.com/tutorial/view/744 ) indica que este es el procedimiento correcto.
Dave G
1
@DaveG - Interesante, aparentemente 'dd' es un comando utilizable si el archivo fuente es una "imagen ISO híbrida". Pero no es un procedimiento genérico para cada iso . Quizás esa distinción es la razón del consejo conflictivo que encontró Jdowner.
aserrín
@sawdust gracias por la aclaración adicional sobre eso.
Dave G
Puede tener un sistema en un dispositivo que se utilizará en un sistema de arranque EFI, pero su máquina está configurada para usar el arranque "clásico". Así visto con una memoria USB Linux Mint.
David Tonhofer
Aquí hay una solución simple / genial para las imágenes iso recalcitrantes (basadas en Ubuntu Live ISO): 1) Formatee el stick para que haya un sistema de archivos en (digamos) "/ dev / sdX1", 2) Monte el stick como "/ mnt / usb "por ejemplo, 3) Instale grub2 en el dispositivo: grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Copie la imagen ISO previamente descargada (por ejemplo," foolinux.iso ") en el dispositivo: cp foolinux.iso /mnt/usb/5) Cree el archivo" /mnt/usb/boot/grub2/grub.cfg " botas linux de la imagen ISO presente en el palo (cont.)
David Tonhofer

Respuestas:

32

Estás escribiendo la imagen en la partición 1 de / dev / sdb

Cambie esto al siguiente comando:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

esta información fue adquirida desde aquí

Dave G
fuente
2
Estoy haciendo: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso of = / dev / rdisk3 bs = 1m y no es de arranque, ¿alguna idea?
Yusufk
¿Rdisk3 una partición o un disco sin formato? Está intentando escribir la imagen en una partición específica
Dave G
1
estoy haciendo / dev / sdb y todavía no es arrancable
holms
rdisk3 es el tercer disco en un mac afaik. Tengo el mismo problema que Yusufk. Es necesario verificar si está relacionado con UEFI.
gavit
11

Copiaste la imagen a la primera partición. Intente copiar a / dev / sdb en lugar de / dev / sdb1.

El mecanismo real varía un poco dependiendo del tipo de imagen que está utilizando, pero para imágenes simples de DOS / MBR necesita obtener una tabla de partición correcta (con la partición de arranque marcada como de arranque, y el MBR - la parte del 512 bytes iniciales que no son la tabla de particiones, que contiene el código de arranque inicial.

Kristof Provost
fuente
Me gustaría señalar que, en lugar de intentar copiar todo el ISO nuevamente a otra partición, simplemente establecer el indicador de arranque en la partición en la que copió originalmente la imagen también puede ser suficiente (como se insinúa en esta respuesta)
GrayedFox
2

Desde mi experiencia con otra distribución de Linux, todo lo que debe hacer es cambiar el archivo del cargador de arranque syslinux y modificarlo para arrancar el USB. Hay información más detallada sobre esto en la wiki de syslinux .

Vea también esta búsqueda de Google .

Jacob J Daniels
fuente
1

Es posible que necesite tener un BPB escrito en su gestor de arranque. Vea la publicación de Dex del viernes 24 de abril de 2009 9:06 am en http://f.osdev.org/viewtopic.php?f=1&t=19681

La esencia es que "si [su firmware usb] usa emulación de disquete y no tiene un BPB, NO arrancará"

Armado con ese consejo, pude resolver este problema. Yo uso Linux, así que mi comando dd fue:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Querrá reemplazar sdb con su dispositivo usb. Puedes encontrarlo ejecutando

ls -l /dev/ | grep sd

antes y después de insertar su usb mientras Linux se está ejecutando. Si obtiene, por ejemplo, sdb1 y sdb, elija la opción no indexada.

definir
fuente
0

¿Se ha asegurado de que su placa base esté configurada para arrancar desde el dispositivo USB antes de que intente arrancar desde su HDD? Supongo que ese puede ser su único problema: no hay mucho que usar, ddcomo puede ver.

Eli Sand
fuente
1
Este era un problema en el que había pensado, especialmente porque estaba trabajando en una computadora vieja. Entonces, cuando no funcionó en mi máquina de destino, configuré el orden de arranque en mi computadora portátil wifes (shh, no se lo digas) y tampoco arrancó desde eso.
0

También me he encontrado con este problema varias veces.

Lo que encontré que me funciona la mayor parte del tiempo es llenar el disco con cero primero.

  1. Cambie X a su letra o número de unidad, para encontrarlo:

    • Mac: diskutil list
    • Linux: lsblk
  2. Llena el disco a cero

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd tu imagen de nuevo

(Los tamaños de bloque de 4 meg parecen ser los más rápidos para mí)

Andre Helberg
fuente