Questão Como criar uma unidade flash USB inicializável do Ubuntu a partir do terminal?


Existe alguma maneira de criar uma unidade flash USB inicializável do Ubuntu a partir do terminal sem usar quaisquer aplicativos de terceiros, como YUMI, Unetbootin, Criador de disco de inicializaçãoetc.

Eu tentei criar uma unidade flash inicializável do Ubuntu com dd método,

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M

Ele cria arquivos no disco USB, mas quando eu tento inicializar o disco USB ele mostra um Operating System Not Found erro.


263
2017-11-15 17:29


origem


Você precisa ter certeza de que sua unidade flash USB NÃO está montada. Verifique com lsblk. Se necessário, sudo umount / dev / sdb (provavelmente sdb1, sdb2). Adicionar: echo $? depois do seu comando dd copy. Então: sudo dd if = ... de = ... bs = 4M; echo $? Se o comando terminar, o valor de retorno deve ser 0.
Eu segui seus passos, mas também cria os mesmos arquivos que sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M cria.Não cria nenhum ubninit,ldlinux.sys,etc arquivos que são principalmente importantes um linux para inicializar. - Avinash Raj
Eu instalaria o grub no MBR do disco USB como uma etapa final. - Elder Geek
o mais fácil maneira com as ferramentas embutidas usando o terminal é usar dd como descrito aqui. Funciona com todos os arquivos iso híbridos. Mas dd é uma ferramenta perigosa porque faz o que você diz para fazer sem perguntas. Então, se você disser para limpar as fotos da família ... e é um pequeno erro de digitação. Muitas ferramentas são mais seguras. Eles ajudam você a identificar e selecionar a unidade de destino e fornecer um ponto de verificação final, onde você pode verificar novamente, que você estará escrevendo para a unidade correta. A maioria destas são ferramentas GUI, algumas podem funcionar no modo de texto também, por ex. mkusb-dus. - sudodus
O link a seguir mostra um exemplo, em que a unidade interna foi sobrescrita por engano, quando uma linha de comando com dd foi usado para criar uma unidade flash USB inicializável, askubuntu.com/questions/982552/accidentally-did-dd-dev-sda - sudodus


Respostas:


Você pode usar dd.

 sudo umount /dev/sd<?><?>  

Onde <?><?> é uma letra seguida de um número, procure. Então o próximo:

 sudo dd bs=4M if=input.iso of=/dev/sd<?> conv=fdatasync

Onde input.iso é o arquivo de entrada e /dev/sd<?> é o dispositivo USB que você está gravando (execute lsblk para ver todas as unidades para descobrir o que <?> é para o seu USB).

Esse método é rápido e nunca falhou comigo.


EDIT: para aqueles em um Mac terminando aqui, use minúsculas para bs=4m:

sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync

EDIT: Se a unidade USB não inicializa (isso aconteceu comigo), é porque o destino é uma partição específica na unidade em vez da unidade. Então o alvo precisa ser / dev / sdc e não dev / sdc <?> Para mim foi / dev / sdb.

Referência: https://superuser.com/a/407327 e https://askubuntu.com/a/579615/669976


302
2017-11-13 11:51



não funciona para mim. - Avinash Raj
Mesmo? Tem certeza de que você tem o nome do arquivo .iso correto, incluindo o caminho, e o / dev correto para a sua unidade USB? Como isso falha? Existe uma mensagem de erro ou falha ao inicializar? Tem certeza de que o .iso não está corrompido? - Marc
Você poderia ter um .iso corrompido. Você já verificou? Você tem certeza que o .iso é na verdade uma cópia de algo que é inicializável? - Marc
Pergunta original e resposta mais votada é a mesma pessoa que disse que este método não está funcionando para ele. ;-) Para mim resposta aprovada não está funcionando e este faz. :-) Upvoting. - Drachenfels
usar df -lh para verificar o que dev/sdc é seu /media/user/XXXX-YYY (o nome da interface do USB) - Peter Krauss


Criando uma unidade flash USB inicializável do Ubuntu a partir do terminal

  • Coloque o ubuntu.iso arquivo em qualquer partição do disco rígido.

  • Então monte o ubuntu.iso arquivo com os comandos abaixo no terminal:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Insira sua unidade flash USB. Meu caminho é /dev/sdd. Aqui está uma captura de tela:

GParted screenshot

  • Sua unidade pode ser montada automaticamente dentro /media/. Vamos supor que foi montado em /media/xxx/.

  • Copie todos os arquivos de /media/iso/ para a sua unidade flash USB montada, executando o comando abaixo (certifique-se de incluir o ponto):

    cp -a /media/iso/. /media/xxx/
    
  • Em seguida, você precisa do ldlinux.sys arquivo na sua unidade flash USB para fazer o USB inicializável. Minha partição USB é /dev/sdd1; entrar lsblk para ver o que é seu. Execute os comandos abaixo:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • Navegue até o /media/xxx pasta de montagem e renomear o isolinux diretório para syslinux. Em seguida, vá para a pasta renomeada e renomeie o arquivo isolinux.cfg para syslinux.cfg.

  • Reinicie o seu PC e altere a ordem de inicialização no BIOS para permitir a inicialização a partir de uma unidade USB. Agora sua unidade flash USB do Ubuntu será inicializada e você poderá instalá-la.

Este método funcionará para qualquer distribuição Linux, não apenas o Ubuntu. Você não precisa instalar nenhum software de terceiros para fazer uma unidade flash USB do Linux.


84
2017-11-07 18:19



Eu estou tentando no momento, você poderia por favor especificar o que / porque você usa: cp -a ao invés de cp -r - moldovean
Você precisa sudo para o syslinux comando. - Cammy_the_block
Este método não funcionou para mim. O cp -a fornece: 'cp: não é possível criar link simbólico' /media/xxx/./ubuntu ': operação não permitida' e outras semelhantes, já que o destino é fat32. Eu tentei ignorar isso ... não funcionou - sheß
Importante notar que o usb deve ser um sistema de arquivos fat32, caso contrário o syslinux não funcionará - Ricardo BRGWeb
O console me mostra o mesmo erro que @ sheß. Eu verifiquei o sistema de arquivos (FAT32) e sinalize BOOT. - Chofoteddy


Você está quase lá com dd, mas você está perdendo um passo.

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

Onde sdX é o seu dispositivo usb (isso pode ser verificado com lsblk).

o sync bit é importante como dd pode retornar antes que a operação de gravação seja concluída.


77



+1 para mencionar sync. Sem isso, você não tem ideia se o conteúdo foi realmente copiado. Além disso, se você não está com pressa, você deve md5sum ambos os arquivos apenas para ser duplamente seguro. - Dave
Talvez valha a pena mencionar que o USB pode precisar ser (re) formatado como FAT32 com sudo mkfs.msdos -F 32 /dev/sdX primeiro? - Nemo
@Nemo, é possível que isso faça diferença? dd para / dev / sdX sobrescreverá qualquer sistema de arquivos existente. - mwfearnley
sync é inútil aqui. Isso afeta apenas as operações do sistema de arquivos. - punund
conv=fdatasync - gravar fisicamente os dados do arquivo de saída antes de terminar deve cuidar da sincronização, mas é bom ter certeza de que o dispositivo seja desmontado primeiro. - Johnathon Havens


Você tem duas escolhas.

Se você deseja uma interface gráfica, use o usb-creator (ele está no repositório do ubuntu)

enter image description here

Se você quiser uma ferramenta de linha de comando, use o dd

#Replace X accordingly in both commands

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdbX bs=1M

Apenas tenha certeza /dev/sdX é a unidade flash que você deseja usar (isso destruirá os dados na unidade flash).

Vejo https://help.ubuntu.com/community/Installation/FromUSBStickpara informações adicionais.


36



Eu quero apenas ferramentas de linha de comando, não ferramenta de GUI (como o criador de disco de inicialização) .De acordo com o dd método, apenas 3 pastas e 1 arquivo foi criado no meu usb.While tentando inicializar diz operating system not found erro.Arquivos como ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sys estão faltando (que são muito importantes para inicializar o ubuntu usb). - Avinash Raj
Eu tentei o método dd com ubuntu.iso e funcionou! também muito tempo, no entanto, para ser gravado em um USB. Eu me pergunto o que significa bs = 1M. Encontrei este site manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html. Agora eu me pergunto se a alteração do valor vai fazer para copiar para o USB mais rápido? E quais são os riscos ... talvez alguém saiba. - moldovean
O bs é o tamanho do bloco. O dd irá ler 1MB de dados na memória e depois escrever no disco como um todo. Usando um tamanho de bloco muito pequeno, você terá muita sobrecarga de CPU. Usando um tamanho de bloco muito grande pode resultar em efeitos colaterais inesperados, e. pausas mais longas de nenhuma atividade de disco e / ou grande uso de RAM. 1M ou 4M geralmente é um bom valor ao criar um disco a partir de um ISO. Mais informações sobre tamanhos de blocos: stackoverflow.com/questions/6161823/… - ApolloLV
Eu acho que fazer um usb inicializável é algo que eu faço com pouca freqüência, mas quando eu faço isso, eu quero fazer certo. Um tamanho de bloco menor pode demorar mais, mas isso é um problema? Não. - Marc
@Marc - O único problema é a velocidade, um tamanho menor de bloco não é mais ou menos propenso a erros, então um tamanho de bloco maior e, portanto, um tamanho menor de bloco! = "Feito direito". Done right significa checar o md5sum do iso e confirmar o md5sum da imagem escrita. Depois de confirmar o m5dsums, você sabe que foi feito corretamente. - Panther


Primeiro, desmonte o dispositivo USB e use lsblk para verificar o dispositivo.

Às vezes (geralmente arquivos iso mais antigos) dd não é suficiente e o pendrive não inicializa. Neste caso, você pode precisar instalar o syslinux:

sudo apt-get install syslinux

e, em seguida, execute os seguintes comandos:

sudo mkfs -t vfat -I /dev/sdX

Você quer executar esse último comando para /dev/sdX e não  /dev/sdX1.

Em seguida, continue com os seguintes comandos:

isohybrid /path/to/file.iso --entry 4 --type 0x1c
dd if='/path/to/file.iso' of=/dev/sdX bs=8M

ou, para ver progresso de gravação de imagem:

pv -tpreb /path/to/file.iso | dd of=/dev/sdX bs=8M

ou em vez de dd, você pode usar cat em vez de:

sudo -s
cat /path/to/file.iso > /dev/sdX

Lembre-se de emitir o comando sync para esvaziar o cache de gravação

sync

web.archive.org/web/20140327085331/https://tails.boum.org/doc/first_steps/installation/manual/linux/index.en.html


23



Eu preciso mencionar que para mim todo o resto falhou, mas isso funcionou - eu optei pelo cat comando. - Digital Dracula
Para aqueles que insistem que dd sozinho é o suficiente, eu também precisava disso para funcionar. - GuiRitter
Se você quiser uma ferramenta que use dd quando o ISO é híbrido e montado, copia o arquivo ISO + instala o SYSLINUX quando o ISO não é, use bootiso em vez de. - Jules Randolph


$ dd if=ubuntu-14.04.1-desktop-amd64.iso of=/dev/sdX bs=1MB

Não use o caminho para o bit.

  1. Use o cd comando para chegar à pasta que contém o arquivo .iso
  2. use o comando dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Espere até que a saída do console se pareça com isto:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Inicialize a partir do usb.

Nota: Certifique-se de escrever para o dispositivo correto que um usb não será sempre montado em: dev/sdX onde X pode ser qualquer letra.


6



qual é o significado de bs = 1MB no comando dd ??? - juggernauthk108
@ juggernaut1996 nenhum. É o tamanho do bloco a ser usado ao copiar. Como nenhum argumento count foi fornecido, ele copia toda a entrada em blocos de 1MB. Pode ser removido. - sjbx
O "Não use o caminho para o bit" é uma desinformação. O processo em si não incorpora os componentes do caminho na imagem copiada em qualquer etapa, por isso é irrelevante se você navegar para o diretório que contém sua imagem ISO ou apenas fornecer o caminho completo. Além disso, o dd pode aceitar a entrada do stdin também, então você pode simplesmente canalizar dois dds em um ao outro para ter certeza de que nenhum caminho será inserido na imagem. - Gabor Garami
Isso funcionará apenas para ISOs híbridos, que hoje ocupam uma boa maioria dos casos, mas há exceções notáveis, como UltimateBootCD. Usar bootiso em vez de. - Jules Randolph


Se por "terceiros" você quer dizer "gui", Eu sugiro um script leve chamado bootiso depois de Avinash Raj responder, porque dd nem sempre funciona. A grande vantagem é que é muito seguro (executa muitas verificações de segurança para não atrapalhar o sistema), fácil de instalar e portátil.

Além disso, bootiso irá inspecionar arquivo ISO para escolher entre dois modos: image-copy (dd) quando o arquivo ISO é híbrido, isso é compatível com USB. E o modo mount-rsync quando o arquivo ISO não é híbrido, caso em que um carregador de inicialização SYSLINUX será instalado automaticamente se suportado [mais detalhes sobre o comportamento automático].

Como usá-lo

Primeira opção, apenas forneça o ISO como primeiro argumento e você será solicitado a selecionar um drive entre uma lista extraída do lsblk:

bootiso myfile.iso

Ou forneça explicitamente o dispositivo USB:

bootiso -d /dev/sde myfile.iso

Instalação rápida

curl -L https://git.io/bootiso -O
chmod +x bootiso

Veja em ação:


5



Eu concordo, este é um script muito bom que tira os bits assustadores do processo. Mais detalhes aqui: tecmint.com/create-bootable-usb-in-linux-commandline - kr37


Tente isso e nunca falhe comigo por mais de 100 vezes:

Formate o cartão:

$ sudo mkfs.vfat -F32 /dev/sdx

Monte a imagem ISO:

$ sudo mount ubuntu.iso /mnt

Copie o conteúdo para o cartão:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

Então:

  • renomear isolinux pasta em syslinux
  • renomear syslinux/isolinux.cfg para syslinux/syslinux.cfg
  • renomear syslinux/isolinux.bin para syslinux/syslinux.bin
  • corre syslinux -s /dev/sdx

-4



-1. Você testou isso? sudo cp -rvf /mnt/* /dev/sdx não vai funcionar (ou pelo menos não fazer o que você pretende). Você não copia arquivos para um dispositivo bruto (/dev/). Em vez disso, você deve montar o cartão e copiar o conteúdo do arquivo ISO no cartão (ponto de montagem para o ponto de montagem). E o que há de errado com a resposta atual aceita, que tem a mesma abordagem. - gertvdijk