Usando el comando 'dd' para crear una memoria USB de arranque

11

¿Por qué las imágenes ISO de algunos tipos de Ubuntu se pueden poner en una memoria USB mediante el comando dd y arrancar con éxito, mientras que otros tipos no lo hacen? Además, parece que también depende de una memoria USB en particular. Intenté con Ubuntu estándar:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

Y funciona a las mil maravillas, quiero decir: arranca e instala o ejecuta Ubuntu en vivo. Pero cuando uso otra memoria USB preparada de la misma manera, no se inicia con el error de BIOS del sistema operativo no encontrado .

Cuando pruebo Ubuntu GNOME, simplemente no arranca con el mismo error que en el ejemplo anterior, independientemente de la memoria USB que use.

Sé que hay una aplicación Startup Disk Creator en Ubuntu, pero me he convencido de que solo es una fachada GUI para un comando dd simple , y siempre puedo usar dd para crear una memoria USB de arranque, al menos para Linux. ¿Me equivoco?


fuente
Yo personalmente uso Unetbootin, y nunca he tenido un problema.
Tim

Respuestas:

5

Si ejecuta Startup Disk Creator, notará que hace tres (cuatro) cosas:

  1. Formatear el disco
  2. Copie los datos del ISO a la unidad
  3. (Agregue un archivo casper 1 adicional para la persistencia, si está seleccionado. ddNo le da persistencia).
  4. Instalar un gestor de arranque

No es una GUI para dd(hay GUI para dd, pero SDC no es una de esas). Puede pensar que es equivalente a los métodos manuales de Arch Linux o Gentoo . Debería poder crear un USB de arranque utilizando la mayoría de las ISO de instalación de distribuciones (razonablemente populares) en la actualidad. Esto no era cierto hace unos tres o cuatro años, cuando miré a Arch. Fue solo en 2010 que todos los Arch ISO obtuvieron esta característica (donde se podía escribir directamente en una unidad USB): de 2008 a 2010 tenían imágenes especiales de USB.

Además, si tiene dduna unidad directamente, esa unidad es efectivamente de solo lectura hasta que la formatee o use el espacio restante de alguna manera. Un disco creado por SCD todavía se puede usar como una unidad USB, a pesar de que no se puede acceder fácilmente al contenido desde el entorno en vivo. Entonces, si tiene ddun ISO de 1 GB en una unidad USB de 8 o 16 GB, está abandonando efectivamente el espacio restante a menos que se tomen medidas adicionales.


1 Normalmente, la mayoría de las imágenes en vivo usan SquashFS archivo para la partición raíz . SquashFS es de solo lectura, por lo que para persistencia, casper-rwse crea un archivo en /casper. No estoy seguro de los orígenes de casper. Por lo que entiendo, cuando se arranca con la boot=casperopción, el núcleo se superpone al archivo casper (creando uno si no existe) encima de los squashfs, para que gane capacidad de escritura. casperno tiene que ser un archivo, también puede ser una partición .

muru
fuente
¿Qué es el "archivo casper"? Por favor explique.
@ MikołajBartnicki No estoy muy seguro de mí mismo, pero he actualizado la respuesta.
muru
Casper es un fantasma (que todos ustedes saben). Como dijiste, superpone algunas carpetas en el sistema de archivos ro. Al examinar el sistema de archivos desde una imagen en vivo en ejecución con persistencia activada, se muestran algunos directorios 'superior' e 'inferior' que existen en los sistemas de solo lectura y escritura, pero aparecen como uno en el sistema en ejecución, algo similar a un montaje sobre carpeta existente
oneindelijk
2

intente primero:

su -c 'mkfs.vfat /dev/sdc -I'

Para hacer un disco usb de arranque desde un archivo iso usando el comando dd , el disco no puede tener particiones como / dev / sdc1 (una de las cuatro particiones primarias posibles del disco / dev / sdc ). No puede clonar bloques de archivo iso a la partición primaria, porque el disco dvd o cd tampoco lo tiene. Es por eso que debe crear un sistema de archivos exactamente en el disco / dev / sdc , no en la partición primaria.

Además cometiste algunos errores al escribir comando dd .

Prueba esto:

su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'

su comando no se corrige sin mkfs.vfat primero. puede ser si también instala el gestor de arranque y activa la partición. Es posible que otras unidades USB no funcionen porque su puerto USB se puede compartir con otro puerto USB o no tiene energía para trabajar con el sistema operativo USB en vivo, probablemente una unidad de disco duro y otro disco USB que necesita más energía de lo habitual. Que el consumo de energía promedio de este tipo de dispositivos (como discos HDD en estuche externo con usb de adaptador sata)

gr8b8
fuente
2

Incluso puede crear una memoria USB de arranque con cp(me parece mucho más sencillo que dduna GUI):

sudo cp path/to/ISO /dev/sdX


Recuerde que /dev/sdXdebe reemplazarse con el nombre de su dispositivo de bloqueo (por ejemplo /dev/sdb, /dev/sdc).

Luis Lavaire
fuente
1
Eso fue realmente nuevo para mí. Junto con progress unix.stackexchange.com/a/301329/87264 también muestra progreso
Jonas Eberle