Eu tenho uma imagem iso (é um disco de instalação do Windows), mas não quero gravar dvd. Eu quero criar uma unidade flash USB inicializável em vez disso. E eu quero usar ferramentas linux para realizar essa tarefa.
Encontrei várias receitas, eles sugerem usar dd
a ferramenta da seguinte forma:
dd if=/path/to/my.iso of=/dev/sdx
(fe aqui https://www.linux.com/blog/how-burn-iso-usb-drive )
Outra receita sugere criar algumas partições no usb primeiro (fe Terminal: create bootable USB from iso ) e isso me parece muito estranho.
Pelo que entendi a unidade flash é apenas um armazenamento. É apenas um hardware que armazena/retorna um bloco de dados dado o índice deste bloco. Está correto?
O Linux fornece acesso a esse armazenamento via /dev/sdx
dispositivo (onde x
pode estar qualquer letra, no meu caso o nome do dispositivo é /dev/sdb
). Eu posso ter acesso a qualquer bit de dados no pendrive através deste dispositivo. Isso está correto?
O dd
comando apenas lê o conteúdo do arquivo bit a bit (bem, bloco por bloco) e grava os dados no dispositivo especificado. Se o arquivo de entrada for grande o suficiente, todos os bits de dados no pendrive serão substituídos. Nenhuma informação sobre partições, tipos de sistema de arquivos, etc. sobreviveria. Isso está correto? Se sim, o que é usado para particionar / formatar o pendrive antes do dd
comando?
O resultado do dd
comando não é o que eu esperava. Depois de concluído, posso ver os arquivos no pendrive da minha máquina linux, mas o pendrive não é inicializável e minhas janelas não conseguem lê-lo (sugerem formatar o pendrive).
Vou usar alguma ferramenta para criar o pendrive inicializável (rufus ou yumi ou qualquer outra coisa), não é um problema agora. O problema é que não entendo porque não posso usar dd
para essa finalidade.
As receitas acima mencionadas podem não funcionar para todas as imagens iso? Por favor me ajude a entender o que está acontecendo.
Clonagem e extração
Isso é clonagem (feita com
dd
outras ferramentas de clonagem.Isso é feito com ferramentas de extração.
Tanto a clonagem quanto a extração são métodos possíveis e comuns. Existem várias ferramentas para ambos os métodos.
Se o arquivo iso for um arquivo iso híbrido, você pode criar uma unidade de inicialização gravando em um disco de CD/DVD e clonando em um dispositivo de armazenamento em massa: pendrive USB, cartão de memória, HDD ou SSD. Se o arquivo iso não for um arquivo iso híbrido, você poderá criar uma unidade de inicialização gravando em um disco de CD/DVD, mas não funcionará em um dispositivo de armazenamento em massa. Mas você ainda pode usar uma ferramenta de extração para criar um dispositivo de inicialização (criando a tabela de partição correta e extraindo o conteúdo relevante do arquivo iso para um dispositivo de armazenamento em massa).
Sim.
Sim.
Sim, e por esse motivo, você não precisa particionar/formatar o pendrive antes de clonar. Todos os vestígios dele desaparecerão de qualquer maneira.
A maioria das principais distribuições linux fornecem arquivos iso híbridos, que criam unidades de inicialização USB quando clonadas. Mas nem todos eles, por exemplo, não o Knoppix (mas você pode tratar um arquivo iso do Knoppix com
isohybrid
).Os arquivos ISO do Windows 7-10 não são arquivos ISO híbridos. Portanto, você precisa de um método de extração (manual ou com uma ferramenta) para criar uma unidade de inicialização USB.
Links
help.ubuntu.com/community/Installation/iso2usb
A clonagem não precisa de preparação
Como você usa
dd
é determinado por como o.iso
arquivo é criado.Isso está correto, mas e se eu executasse
dd if=/dev/sdb1 of=test.iso
ao criar o.iso
? Ou talvez tenha executado algo comodd if=/dev/sdb of=test.iso bs=1M seek=1
fazer com que ele pule o primeiro1M
dos dados?dd
não se importa com o esquema de partição subjacente, isso significa que como você o usa depende inteiramente da estrutura do dispositivo de bloco e dos dados que você está gravando.Se você
dd
acessar o dispositivo, perderá seu espaço livre usb, pois o dd'ing substituirá o MBR/GPT.Particionar seu dispositivo pode permitir gravar sua imagem em uma partição, permitindo que você mantenha seu espaço livre. Mas você precisará ajustar seu gerenciador de inicialização (grub?) para poder iniciar a partir dessa partição. Se você particionar sua unidade, você terá sdx1, sdx2, ... permitindo que você
dd if=your.iso of=/dev/sdx1
ou a partição desejada.O problema aqui é que você quer fazer isso com um disco de instalação do Windows, e isso pode ser um problema. Se o Windows espera uma unidade de DVD para a instalação, ele pode não inicializar ou você pode precisar ajustar essa imagem para evitar essa verificação. No Linux, as coisas são mais fáceis, pois muitas distribuições permitem iniciar a própria iso, outras podem precisar de alguns hacks para poder ter um único USB com muitas distribuições das quais você pode começar.