Como criar um MBR em um pendrive usando a ferramenta de linha de comando DD


16

Ok, estou tentando criar uma imagem BOOTABLE do Windows7 em uma chave USB a partir de um Mac executando o Lion. Minha imagem é formato .iso. Eu tentei:

sudo dd if=/Users/myusername/Win7.iso of=/dev/disk1 bs=1m

E isso conseguiu gravar os arquivos, exceto em DISK UTILITY no mac, ele mostra o tipo de partição como GUID Partition Table e não 'Master Boor Record'. A inicialização da chave no meu computador Vista gera o erro "Nenhum setor de inicialização no dispositivo USB"

Pelo que sei, bs = 1m no comando DD deveria ter deixado 1 Megabyte para o setor de inicialização, mas por algum motivo, essa área da chave USB não está configurada corretamente para inicializar

Como posso corrigir isso ou usar o dd corretamente para gravar uma imagem de CD inicializável, que agora é uma unidade USB inicializável?

Nota: nas instruções que li sobre, eles recomendaram renomear meu Win7.iso para Win7.dmg antes de usar o DD, o que não fazia absolutamente nenhum sentido para mim, então não fiz isso. Eu poderia tentar essa etapa agora, mas leva 1,99 horas para gravar a imagem na unidade USB, para que haja uma penalidade enorme na tentativa e erro aqui. Obrigado.


Você verificou se o .isoarquivo tem um setor de inicialização válido? Se você o copiou diretamente de um CD inicializável, algo pode ter dado errado, pois os CDs têm setores de 2048 bytes e a maioria das unidades flash possui setores de 512 bytes.
LawrenceC

PARA SUA INFORMAÇÃO. DD é um utilitário para ocultar e copiar um arquivo. Ele não sabe nada sobre tabelas de partição ou setores de inicialização. bs = 1m significa ler e gravar até 1 megabyte de cada vez. Se você quisesse deixar espaço na frente da unidade, usaria seek = BLOCKS. Onde os blocos = tamanho do setor cujo padrão é 512.
Matt H

@ MatH Você escreveu "FYI. DD é um utilitário para ocultar e copiar um arquivo." <--- Isso é totalmente errado e você sabe disso. E quanto ao que sabe, você diz: "Não sabe nada sobre tabelas de partição". Bem, claro que não, mas ainda pode afetá-las. É sobre copiar os bytes brutos da partição ou do disco rígido inteiro, não do arquivo, e você sabe disso. E o que é copiado pode incluir arquivos e (enquanto eu não sou especialista), suponho que incluiria uma tabela de partição.
barlop

O dd não soa como a ferramenta certa para converter um CD ISO em uma imagem para USB. Existem muitas maneiras de colocar um win7 iso no USB, e eu não acho que o dd seja um deles! Pelo menos ninguém usaria normalmente! O dd / ddrescue é bom se você tiver dois discos rígidos idênticos e quiser copiar um para o outro. ou se um disco rígido tiver alguns erros e você desejar criar uma imagem quando outro software de imagem falhar.
barlop

@barlop - dd man page - "Copie um arquivo, convertendo e formatando de acordo com os operandos."
Matt H

Respostas:


7

Use as Opções do Utilitário de Disco para definir o tipo de partição como Master Boot Record antes de fazer o dd.

insira a descrição da imagem aqui insira a descrição da imagem aqui


4
Isso falhou. Eu estava ciente das configurações descritas nas capturas de tela, mas depois de fazer isso primeiro, depois o DD, a imagem resultante ainda não encontrava um setor de inicialização. O comando DD parece lixeira o que o utilitário de disco faz, parece que está gravando em um modo bruto de nível muito baixo. Eu gostaria que isso funcionasse, mas honestamente não funcionou, e é estúpido que o utilitário de disco não suporte imagens .iso para restauração.
Lana Miller

5

Eu tive um problema semelhante ao tentar criar um disco USB inicializável a partir do OSX. O problema foi que o UnetBootin não configurou o Master Boot Record corretamente no disco USB. Você precisa fazer isso manualmente com o Disk Util e o fdisk.

  1. Formate o disco no Disk Utility, com o MBR correto

    1. Utilitário de disco aberto
    2. Selecione o dispositivo USB
    3. Clique em Partição
    4. Selecione 1 partição no layout da partição
    5. Selecione “Master Boot Record” nas opções
    6. Selecione MS-DOS (FAT) no tipo de formato.
    7. Clique em Aplicar e depois em Partição
    8. Close Disk Utility
      Isso limpa o disco USB e o configura com o registro de inicialização correto
  2. Instale o binário MBR a partir do projeto SysLinux

    1. Use a linha de comando diskutil para encontrar o nome do dispositivo para sua unidade USB.
      lista diskutil
    2. Desmonte a unidade USB com a linha de comando. Nota: certifique-se de trocar a referência do dispositivo (no meu caso, é / dev / SOMEdisk2) pela correta para a sua chave USB que você identificou na etapa anterior - isso mudará para cada máquina.
      diskutil unmountDisk / dev / SOMEdisk2
    3. Marque a partição como ativa e desmonte-a novamente
      sudo fdisk -e / dev / SOMEdisk2
      impressão
      f 1
      escrever
      impressão
      Saída
      diskutil unmountDisk / dev / SOMEdisk2
    4. Baixe o Syslinux e extraia o arquivo mbr.bin
    5. Instale o MBR
      sudo dd conv = notrunc bs = 440 count = 1 if = mbr.bin de = / dev / SOMEdisk2
      Nota: consulte minhas instruções completas se precisar de mais ajuda com as etapas 4 e 5.
  3. Use o UnetBootin para instalar os arquivos de instalação do SO

    1. Baixe e instale o UnetBootin, se você ainda não o tiver
    2. Carregue o aplicativo, escolha sua distribuição preferida e clique em OK
    3. Quando terminar, ejete a chave USB e use-a

Instruções completas


Olá Paul, se você acabou de publicar um link, seja gentil e adicione mais conteúdo. Adicionei suas instruções passo a passo, se você não se importa.
Caso contrário

Não tem problema, eu posso ver que ele torna mais rápido / mais fácil de obter a resposta por isso vou fazê-lo na próxima vez - obrigado por fazer isso por mim :)
Paul Maunders

Existem 3 mbr.bin no syslinux zip, qual devo usar?
precisa

Basta usar o padrão de um syslinux-5.00 / mbr / mbr.bin
Paul Maunders

Não funcionou para mim. Ainda assim, recebi a mensagem "Não disco do sistema".
waste

1

Formate uma chave USB com um registro mestre de inicialização (MBR)

  • no Terminal: lista diskutil

  • anote o nome da sua chave USB (a minha era / dev / disk1)

  • no Terminal: diskutil eraseDisk MS-DOS "WINDOWS10" MBR / dev / disk1

  • substitua / dev / disk1 pelo nome da sua chave USB

Montar uma imagem de disco do Windows 10

  • no Utilitário de Disco: selecione Arquivo ›Abrir Imagem de Disco› selecione seu .iso

  • no painel esquerdo: clique na imagem recém-montada

  • no painel direito: selecione o nome e copie-o: algo como CCSA_X64FRE_FR-FR_DV5

Copie a imagem do disco para a chave USB do WINDOWS10

  • no terminal: cd / volumes

  • no terminal: cp -R CCSA_X64FRE_FR-FR_DV5 / WINDOWS10

  • substitua o nome da imagem no exemplo pelo nome da sua imagem de disco

  • a barra no final (após DV5 no exemplo) é importante

  • demorou mais de 90 minutos para copiar para uma chave USB USB 2.0 sem indicador de progresso


0

Este método não usa dd, nem o testei.

Você deve poder usar o UNetBootIn para transferir o sistema de arquivos no ISO para uma unidade USB. O UNetBootIn é um utilitário de código aberto e plataforma cruzada para transferir imagens de CD / DVD inicializáveis ​​para unidades USB.

Execute o UNetBootIn (executado no Windows, Mac OS X e Linux) e selecione o Disk Imagebotão de opção. Em seguida, escolha ISOno menu suspenso (ISO é o padrão) e coloque o caminho para o arquivo ISO no campo de caminho. A partir daí, selecione a unidade USB desejada para transferi-la e clique em OK.

insira a descrição da imagem aqui


2
Eu testei, parecia funcionar, o setor de inicialização é encontrado, mas alerta para 'falta de sistema operacional'. Não tenho certeza se esse é um problema com a imagem que usei, mas duvido. No entanto, vou jogar um pouco mais com isso, pois parece que ele escreveu o setor de inicialização corretamente.
Lana Miller

@LanaMiller Estou recebendo o mesmo erro, ao tentar inicializar com um pendrive com o Windows 7 Professional x64, você conseguiu resolvê-lo?
Chris-Top

0

Acabei de encontrar uma resposta aqui

# fdisk /dev/sdY

create single partition type 7+bootable partition

# mkfs.ntfs -f /dev/sdY1
# ms-sys -7 /dev/sdY

# mount -o loop win7.iso /mnt/iso
# mount /dev/sdY1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.