Eu tenho um CD criado a partir de um arquivo ISO que eu uso para instalar uma versão personalizada do Ubuntu via plop linux.
O CD funciona bem, mas eu gostaria de usar uma unidade USB inicializável. Eu usei o comando dd para tentar criar o USB inicializável:
dd if=filename.iso of=/dev/sdb1 bs=4k
Agora isso copia os arquivos e torna o USB inicializável, mas recebo o erro "Sistema operacional ausente"
Alguma ideia?
Respostas:
Ok, depois de alguma pesquisa, descobri uma solução, e eu passo a passo passo a passo. O problema era duplo.
Conecte a unidade flash USB e determine o dispositivo em que está montado com o comando:
Desta vez, foi / dev / sdc1 para mim, então vou usar isso como meu exemplo.
Montar o dispositivo
Não tenho certeza se necessário, mas eu formatei a unidade no FAT32, apenas no caso
Agora minha ISO estava usando isolinux e não syslinux. Eu sabia que funcionava com CDs, então descobri que precisava chamar o comando isohybrid, que permite que um ISO seja reconhecido pelo BIOS a partir de um disco rígido.
Você pode descobrir mais sobre esse comando aqui , mas essa foi a causa da mensagem "Sistema operacional ausente" O primeiro problema foi corrigido, mas agora dizia "isolinux.bin estava ausente ou corrompido"
O próximo passo é copiar o iso. Meu segundo problema estava aqui, onde eu estava copiando para a partição, sdc1, não para o dispositivo, sdc.
Isso parece funcionar muito bem, mas no fórum em que obtive a última correção, foi recomendável fazer o seguinte antes de desconectar o dispositivo:
fonte
mkdosfs
comando pode não ser necessário, pois o iso já possui um sistema de arquivos (provavelmente incluindo um MBR, não tenho certeza) que é copiado para o início do dispositivo de bloco. Cara,isohybrid
é um comando legal, não sabia disso!dd
comando na etapa 5 obliterará o sistema de arquivos recém-criado com o conteúdo da ISO.pro
no linux ainda, então obrigado)Esse é um problema comum nos pen drives USB da SanDisk, ou não formatados no FAT32.
Caso contrário, é certamente um problema com a ordem de partição do seu stick ou com o arquivo syslinux.cfg.
fonte
isohybrid
nem sempre funciona. Por exemplo, eu tinha um .iso no FreeDOS e o isohybrid não conseguiu encontrar alguns arquivos importantes lá (não sei se eles deveriam ter sido colocados lá pelo syslinux, que eu usei também, ou qualquer outra coisa). Eu proponho várias alternativas aqui.1) Instale outro gerenciador de inicialização, como o GRUB. É explicado aqui :
"Suponha que a primeira partição do seu pendrive é o FAT32 e sua partição é / dev / sdy1" (eu tinha
grub2
no meu Fedora Core, então mudei um pouco os comandos):2) O wiki do FreeDOS oferece um método composto com GRUB e syslinux aqui (embora eu não entenda como eles foram lançados
grub>
- eu não conseguia inicializar a partir do usb até esse estágio).3) Aqui está uma postagem que pode ser útil - diz 'Enquanto os arquivos command.com, kernel.sys, syslinux.cfg, ldlinux.sys e fat32lba.bss estiverem na raiz da unidade, o MBR e a inicialização setor não são reescritos, a unidade deve permanecer inicializável. '
4) Aqui é explicado como gerar um arquivo .iso inicializável com um gerenciador de inicialização syslinux. Eles nem usam iso-híbrido. Infelizmente isso não me ajudou (talvez por causa do syslinux).
5 *) Use um programa do Windows via
wine
. Eu tentei o rufus, no entanto, isso não funcionou, não foi possível encontrar o dispositivo.Eu aviso que, infelizmente, não consegui resolver esse problema, meu dispositivo não foi inicializado, mas espero que isso possa ser útil para outras pessoas (também para aqueles que desejam instalar não um linux no usb). A imagem usb gerada pelo chtaube funcionou para mim, então acho que esses métodos estão corretos.
UPD: O terceiro método realmente funciona (com uma correção para um arquivo de instalação personalizado).
UPD2: (links fixos). O problema com
isohybrid
foi provavelmente porque as versões do isolinux.bin no iso e no meu sistema eram diferentes. Recompilou o iso usandogenisoimage
como sugerido aqui :Também houve alguns problemas, eles foram resolvidos pelo método aqui antes da genisoimage:
== end UPD2 ==
fonte
Você pode usar o
bootiso
utilitário , que faz exatamente isso, com segurança:O bootiso verifica se o dispositivo selecionado
/dev/sdb
está conectado via USB e falha se não, o que é uma grande vantagem de segurança. Ele também detectará automaticamente o dispositivo USB se houver exatamente uma unidade USB conectada ao seu sistema, veja-a em ação:Se você deseja instalar o gerenciador de inicialização syslinux para contornar os problemas mencionados por @xsdf, use a
-b
opção:Para instalá-lo:
fonte