¿Cómo hacer USB to ISO?

Tengo este USB que arranco 1 o 2 veces al año por un tema de los cascos (es un Win to Go):

Disco /dev/sdk: 57,73 GiB, 61991813632 bytes, 121077761 sectores
Modelo de disco: DataTraveler 3.0
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador del disco: 
Disposit.  Comienzo     Final  Sectores Tamaño Tipo
/dev/sdk1      2048    534527    532480   260M Sistema EFI
/dev/sdk2    534528    796671    262144   128M Reservado para Microsoft
/dev/sdk3    796672 121077727 120281056  57,4G Datos básicos de Microsoft

¿Cómo puedo crear una ISO de todo el USB (es booteable) con particiones incluidas? Un calco para guardar la ISO en HDD por si alguna vez el USB deja de funcionar poder grabar la ISO en un USB nuevo y tener de nuevo el USB antiguo.

Saludos

Tienes el comando dd y herramientas como gnome-disk y otros. En general cualquier cosa que grabe imágenes y no necesitas que sea .ISO.

1 Like

Me he leido el manual de dd y me pierdo. Así que lo dejo estar por que Discos parece cumplir con lo que quiero.

He instalado Discos y he hecho las copias de las 3 particiones en los 3 ficheros .img. Otro día (si tengo por ahí un USB vacío) probaré a restaurar desde Discos en el USB vacío los 3 .img y a ver si arranca.



Esta funcionalidad le haría falta al particionador de Yast. :innocent:

Saludos

Las aplicaciones “unix-style” tienen esas cosas :rofl:

En realidad es un comando que deberías conocer aunque solo sea lo básico.

dd if=disco_o_fichero_a_copiar of=disco_o_fichero_en_el_que_copiar

Suponiendo un pendrive /dev/sdf:

dd if=/dev/sdf of=~/pendrive.raw

Luego hay modificadores para copiar bloques más grandes, para saltar parte del disco o fichero que se copia (por ejemplo, puedes copiar un disco pero sin los primeros KB que es donde solía estar el arranque), etc. Incluso para que muestre el progreso de la copia -ejem, más o menos, y algunas cosas exóticas.

Uno de los modificadores tradicionales es bs, que indica el tamaño de bloque que se copia cada vez. Por ejemplo, vamos a copiar la ISO de Agama desde el fichero Leap16_agama.iso:

sudo dd if=~/Descargas/Leap16_agama.iso of=/dev/sdf bs=1m

“discos”, gparted y alguno más tienen esa funcionalidad.

Bueno, ya no va a ser :grinning: (aunque sí tiene una función de clonado en el menú Dispositivos)

1 Like

Menos mal que es con el comando dd, como sera con el resto de los comandos, :joy: en especial, con el todopoderoso awk, el único que se me atraganta un poco, el resto de los comandos son muy sencillos.

Si usas GNU/Linux tienes que aprender la consola y sus comandos más frecuentes.

dd no es tan frecuente. :joy:

ls, cp, mv, mkdir, mount, rm y tantos que se me olvidan ahora mismo. :wink:

EDIT: umount, snapper y paro de pensar. :stuck_out_tongue_closed_eyes:

Saludos

Eso es porque eres joven :grinning:

Mira, lo siguiente guardaba la tabla de particiones de un disco /dev/sda con MBR (MS-DOS style):

dd if=/dev/sda of=~/tabladeparticiones.ray bs=512 count=1

Un día no te va el sistema gráfico, quieres arrancar un pendrive, pero no funciona! Pues vas al terminal de texto y copias una iso a un pendrive y ya tienes uno. No hay que saberlo usar, solo acordarse lo básico (lo que entra, in file, if, y lo que sale, of file, of).

Haces bien, hoy realmente no necesitas mucho el terminal de comandos.
Dicho eso, dd es uno de esos comandos muy sencillitos que salvan vidas :rofl:

Creo que nunca supe usarlo realmente.

Sencillos no lo describe realmente, hay que ser justos.

karl@rhuidean:~/test/comandos> mkdir carpeta1 carpeta2
karl@rhuidean:~/test/comandos> touch carpeta1/los_comandos_parecen_magia
karl@rhuidean:~/test/comandos> mv carpeta1 carpeta2
karl@rhuidean:~/test/comandos> tree
.
└── carpeta2
    └── carpeta1
        └── los_comandos_parecen_magia

3 directories, 1 file
karl@rhuidean:~/test/comandos> rm -rf *
karl@rhuidean:~/test/comandos> mkdir carpeta1
karl@rhuidean:~/test/comandos> touch carpeta1/los_comandos_parecen_magia
karl@rhuidean:~/test/comandos> rsync -va carpeta1 carpeta2
sending incremental file list
created directory carpeta2
carpeta1/
carpeta1/los_comandos_parecen_magia

sent 158 bytes  received 70 bytes  456,00 bytes/sec
total size is 0  speedup is 0,00
karl@rhuidean:~/test/comandos> tree
.
├── carpeta1
│   └── los_comandos_parecen_magia
└── carpeta2
    └── carpeta1
        └── los_comandos_parecen_magia

4 directories, 2 files

Usar el terminal no requiere mucho y tal, y hay que recomendarlo siempre. Pero para quien no sabe tiene sus cosillas :rofl:

1 Like

Es muy frecuente y hay tutoriales que ponen ejemplos de cada caso.

Hace mucho tiempo había copiado esto :
El comando dd en Linux es una herramienta extremadamente poderosa y versátil, conocida por su capacidad para interactuar directamente con dispositivos de bloques. Esta guía para principiantes explora el comando dd, su sintaxis y diversos casos de uso, destacando su papel en la copia de archivos, respaldo y restauración de particiones de disco, y la creación de unidades USB de arranque.

Sintaxis del Comando dd

La sintaxis del comando dd es sencilla. Por defecto, lee desde la entrada estándar y escribe en la salida estándar. Aquí está la sintaxis básica del comando dd:

dd [opciones]

Es importante notar que dd se desvía de la convención estándar de usar las opciones -- o - , lo que lo distingue de la mayoría de los comandos de la shell de Linux.

Opciones Comunes del Comando dd

El comando dd acepta varias opciones para personalizar su comportamiento y lograr tareas específicas. Aquí algunas de las opciones más comúnmente usadas:

Opción Descripción
if Especifica el archivo de entrada (fuente).
of Especifica el archivo de salida (destino).
bs Define el tamaño del bloque para leer del archivo de entrada y escribir en el archivo de salida.
count Especifica el número de bloques a copiar.
skip Omite un número específico de bloques o bytes al leer el archivo de entrada.
seek Omite un número específico de bloques o bytes al escribir en el archivo de salida.
status Muestra el progreso del comando dd.
conv Especifica opciones de conversión para el archivo de entrada o salida.

13 Ejemplos Prácticos del Comando dd

1. Copiar Archivos en Linux

Para hacer una copia simple de un archivo, puedes usar el comando dd con las opciones if y of . Por ejemplo, para copiar un archivo llamado source.txt a un nuevo archivo llamado destination.txt , ejecuta el siguiente comando:

dd if=source.txt of=destination.txt

2. Prevenir la Sobrescritura del Archivo de Destino

Para evitar sobrescribir un archivo existente, usa la opción conv=notrunc . Esto asegura que el archivo de destino no se trunque durante el proceso de escritura:

dd if=source.txt of=destination.txt conv=notrunc

3. Anexar Datos a un Archivo

Puedes anexar datos a un archivo existente usando la opción conv=notrunc,oflag=append . Por ejemplo:

dd if=users.txt of=newusers.txt conv=notrunc,oflag=append

4. Convertir Texto a Mayúsculas

El comando dd puede usarse para realizar conversiones de texto. Para convertir todo el texto de un archivo de minúsculas a mayúsculas, usa la opción conv=ucase :

dd if=lowercase.txt of=uppercase.txt conv=ucase

5. Crear una Copia de Seguridad de una Partición de Disco

Para respaldar una partición de disco, identifica el dispositivo de bloques asociado con la partición. Por ejemplo, para respaldar la primera partición del disco en /dev/sda :

dd if=/dev/sda1 of=partition_backup.img

Para restaurar una partición, invierte los archivos de entrada y salida en el comando:

dd if=partition_backup.img of=/dev/sda1

6. Crear una Copia de Seguridad del Disco Duro Completo

Para respaldar todo el disco duro:

dd if=/dev/sda of=hard_drive_backup.img

Para restaurar el disco duro desde una copia de seguridad:

dd if=hard_drive_backup.img of=/dev/sda

7. Crear una Copia de Seguridad del Registro de Arranque Maestro (MBR)

Para respaldar el MBR:

dd if=/dev/sda of=mbr_backup.img bs=512 count=1

Para restaurar el MBR:

dd if=mbr_backup.img of=/dev/sda bs=512 count=1

8. Copiar Contenido de una Unidad CD/DVD

Para crear una copia exacta de un CD o DVD:

dd if=/dev/cdrom of=disk_copy.iso

9. Comprimir Datos Leídos por dd

Para clonar un disco y comprimir los datos leídos usando gzip :

sudo dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz

10. Saltar Bytes al Leer el Archivo de Entrada

Para omitir un número específico de bytes al leer el archivo de entrada:

dd if=user.txt of=newusers.txt skip=100

11. Limpiar un Dispositivo de Bloques

Para sobrescribir un dispositivo con ceros:

sudo dd if=/dev/zero bs=1M of=/dev/sda

Para llenar el disco con datos aleatorios:

sudo dd if=/dev/urandom bs=1M of=/dev/sda

12. Crear una Unidad USB de Arranque

Para crear una unidad USB de arranque desde una imagen ISO:

dd if=linux_distro.iso of=/dev/sdX bs=4M status=progress

13. Mostrar la Barra de Progreso

Para mostrar una barra de progreso mientras se copia un archivo:

dd if=source_file of=destination_file status=progress

Conclusión

En esta guía, hemos explorado el comando dd y sus múltiples aplicaciones, como la creación de copias de seguridad y unidades USB de arranque. Debido a su poder, debe usarse con extrema precaución para evitar la pérdida de datos. Se recomienda siempre consultar la documentación oficial para ampliar el conocimiento y explorar escenarios de uso avanzado. Si tienes dudas no ejecutes estos comandos, siempre que lo hagas será bajo tu total responsabilidad.

No recuerdo la fuente, pero tengo esto y si veo algún ejemplo mas, lo voy añadiendo.
Y Gparted , también hace esa función y recuerdo que era muy sencilla.

Saludos

2 Likes

:rofl: :rofl: :rofl: :rofl:

¿Cuántos te piensas que tengo? 33H (hexadecimal). :stuck_out_tongue:

Saludos

y no olvidemos el viejo y querido dd_rescue, que tantos cdroms de datos o audio ha recuperado. Aunque ya no es tan usual quemar CDs, el dd_rescue sigue siendo util para recuperar algunos que no se lean bien debido al pasar del tiempo.