Tengo un CD creado a partir de un archivo ISO que utilizo para instalar una versión personalizada de Ubuntu a través de plop linux.
El CD funciona bien, pero me gustaría usar una unidad USB de arranque en su lugar. Usé el comando dd para intentar crear el USB de arranque:
dd if=filename.iso of=/dev/sdb1 bs=4k
Ahora esto copia los archivos y hace que el USB sea de arranque, pero aparece el error "Falta el sistema operativo"
¿Algunas ideas?
Respuestas:
Ok, después de un poco de investigación, he descubierto una solución, y la analizaré paso a paso. El problema era doble.
Conecte la unidad flash USB y determine el dispositivo en el que está montado con el comando:
Esta vez fue / dev / sdc1 para mí, así que lo usaré como mi ejemplo.
Desmontar el dispositivo
No estoy seguro si es necesario, pero formateé la unidad en FAT32, por si acaso
Ahora mi ISO estaba usando isolinux no syslinux. Sabía que funcionaba con CD, así que descubrí que necesitaba llamar al comando isohíbrido, que permite que el BIOS reconozca un ISO desde un disco duro.
Puede encontrar más información sobre este comando aquí , pero esta fue la causa del mensaje "Falta el sistema operativo". El primer problema se solucionó, pero ahora decía que "isolinux.bin faltaba o estaba dañado".
El siguiente paso es copiar la iso. Mi segundo problema estaba aquí, donde estaba copiando a la partición, sdc1, no al dispositivo, sdc.
Esto parece funcionar bien, pero en el foro donde obtuve la última solución, se recomendó hacer lo siguiente antes de desconectar el dispositivo:
fuente
mkdosfs
comando puede no ser necesario, ya que la iso ya tiene un sistema de archivos ubicado (probablemente incluyendo un MBR, no estoy seguro) que se copia al comienzo del dispositivo de bloque. Hombre,isohybrid
es un comando genial, ¡no lo sabía!dd
comando en el paso 5 borrará el sistema de archivos recién creado con el contenido de la ISO.pro
todavía no estoy en Linux, así que gracias)Este es un problema común con las memorias USB SanDisk, o las memorias no formateadas en FAT32.
Si no es ninguno de los dos, sin duda es un problema con su orden de partición de memoria o el archivo syslinux.cfg.
fuente
isohybrid
Puede que no siempre funcione. Por ejemplo, tenía un .iso con FreeDOS y isohybrid no pudo encontrar algunos archivos importantes allí (no sé si deberían haber sido colocados allí por syslinux, que también usé, o cualquier otra cosa). Propongo varias alternativas aquí.1) Instale otro gestor de arranque allí, como GRUB. Se explica aquí :
"Suponga que la primera partición de su memoria USB es FAT32 y su partición es / dev / sdy1" (tenía
grub2
en mi Fedora Core, así que cambié un poco los comandos):2) FreeDOS wiki ofrece un método compuesto con GRUB y syslinux aquí (aunque no entiendo cómo se lanzaron
grub>
, no pude arrancar desde el usb hasta esa etapa).3) Aquí hay una publicación que puede ser útil: dice 'Mientras los archivos command.com, kernel.sys, syslinux.cfg, ldlinux.sys y fat32lba.bss estén en la raíz de la unidad y el MBR y arranque sector no se reescriben la unidad debe seguir siendo de arranque.
4) Aquí se explica cómo generar un archivo .iso de arranque con un gestor de arranque syslinux. Ni siquiera usan isohíbridos. Desafortunadamente eso no me ayudó (tal vez por syslinux).
5 *) Utilice un programa de Windows a través de
wine
. Intenté rufus, sin embargo, eso no funcionó, no pudo encontrar el dispositivo.Te advierto que desafortunadamente no pude resolver este problema, mi dispositivo no se pudo arrancar, pero espero que esto pueda ser útil para otras personas (también para aquellos que desean instalar no un linux en el usb). Aunque la imagen usb generada por chtaube funcionó para mí, creo que estos métodos son correctos.
UPD: El tercer método realmente funciona (con una corrección para un archivo de instalación personalizado).
UPD2: (enlaces fijos). El problema con
isohybrid
fue probablemente porque las versiones de isolinux.bin en iso y mi sistema eran diferentes. Recompilé la iso usandogenisoimage
como se sugiere aquí :También hubo algunos problemas, se resolvieron mediante el método aquí antes de la genisoimagen:
== fin UPD2 ==
fuente
Podría usar la
bootiso
utilidad , que hace exactamente eso, de forma segura:bootiso verificará que el dispositivo seleccionado
/dev/sdb
esté conectado a través de USB y falle si no lo hace, lo cual es una gran ventaja de seguridad. También detectará automáticamente el dispositivo USB si hay exactamente una unidad USB conectada a su sistema. Véalo en acción:Si desea instalar el gestor de arranque syslinux para sortear los problemas mencionados por @xsdf, use la
-b
opción:Para instalarlo:
fuente