Finalmente, eu tinha uma chave USB inicializável trabalhando com uma instalação do Windows 7 pronta para começar, quando percebi que, uma vez que a seleção de idioma apareceu, o teclado e o trackpad do meu Macbook Pro não funcionavam mais e eu não tinha como prosseguir com a instalação.
Decidi configurar um VirtualBox Windows 7 x64, instalar os drivers do teclado e do trackpad a partir do pacote Bootcamp Support Software e desligar a VM.
Eu costumava VBoxManage internalcommands converttoraw ...
transformar o disco virtual em um .img. Para aqueles que não estão familiarizados com o virtualbox, ele cria uma imagem completa do disco rígido virtual como se fosse um disco rígido físico e funciona da mesma maneira.
Eu usei o fdisk para ver a imagem:
sh-3.2# fdisk WINDOWS7.img
Disk: WINDOWS7.img geometry: 2610/255/63 [41943040 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*1: 07 0 32 33 - 12 223 19 [ 2048 - 204800] HPFS/QNX/AUX
2: 07 12 223 20 - 1023 254 63 [ 206848 - 41734144] HPFS/QNX/AUX
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Em seguida, usei o seguinte na tentativa de pular a partição reservada do sistema e apenas copiar a partição de dados do Windows para a fatia designada do meu Macintosh HD:
sh-3.2# dd if=WINDOWS7.img of=/dev/disk0s4 skip=206848 bs=65535
Deixando-me o seguinte:
sh-3.2# fdisk /dev/disk0
Disk: /dev/disk0 geometry: 60821/255/63 [977105060 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 1023 254 63 - 1023 254 63 [ 1 - 409639] <Unknown ID>
2: AC 1023 254 63 - 1023 254 63 [ 409640 - 684395032] <Unknown ID>
3: AB 1023 254 63 - 1023 254 63 [ 684804672 - 1269536] Darwin Boot
4: 0B 1023 254 63 - 1023 254 63 [ 686074208 - 290768672] Win95 FAT-32
O que parece correto, mas me deixa um disco com capacidade de inicializar que não consigo montar ou acessar com o utilitário de disco. Quando clico em montar, nada acontece, mesmo se eu tentar mount -t ntfs /dev/disk0s4 /Volumes/Temp-Dir-Made-With-mkdir
Qual poderia ser o problema? Estou fazendo algo errado? Isso é impossível?
A fatia 4 do disco0 não herda o sistema de arquivos da partição que escrevi para ele?
Agradecemos antecipadamente por qualquer insight!
Editar 1:
@ David É um MacbookPro11,3
que deve dizer tudo o que você precisa saber sobre isso. No que diz respeito ao bootcamp, baixei-o diretamente para o Windows a partir do seguinte documento de suporte da Apple kbDL1720
@klanomath (Comentário 1) É verdade, mas é uma boa informação para saber! Por curiosidade, por que 65535 é um tamanho de bloco ruim? Eu pensei que a especificação do tamanho do bloco tivesse apenas a ver com o número de blocos que foram processados e despejados na unidade / imagem de cada vez, basicamente permitindo que você DDse mais rápido com mais RAM (com a lei de retornos decrescentes entrando em vigor em alguns é claro.) Estou completamente errado na minha compreensão do bs=
parâmetro?
@ user3439894 Pensei nisso, não deveria precisar do MBR se estiver usando um gerenciador de inicialização diferente, mas negligenciei a partição Reservada pelo Sistema. O problema aqui é que eu já tenho 4 partições no disco rígido ... Eu esqueço o que é a partição 0 (não está na frente do meu mac), a partição 1 é o Mac, a partição 2 é a partição de recuperação do mac e a partição 3 é a única Eu fiz para janelas. Talvez eu esteja lidando com tudo errado ... O campo de treinamento se transformou em um pesadelo, teria sido bom se apenas capturasse minha imagem e fizesse o trabalho por mim, mas eu discordo.
dd if=WINDOWS7.img of=/dev/disk0s4 skip=206848 bs=512 count=41527296
Crie também um tamanho adequado (41527296x512 bytes) e corrija a partição marcada disk0s4 com o gpt primeiro. E faça um backup primeiro!dd
comando corrigido pelo klanomath, o Windows 7 não funcionará, pois faltam as informações necessárias para inicializar na partição que você está pulando no arquivo WINDOWS7.img. Sugiro corrigir o problema original que o enviou nesse caminho complicado, para começar!Respostas:
O comando apropriado para
dd
uma parte de um arquivo bruto para uma partição no seu caso é:O bs no
dd
comando pode ser interpretado como um tamanho de bloco artificial da entrada e do "arquivo" de saída. Por razões históricas e técnicas, o tamanho padrão do blocodd
é 512 Byte.O motivo para usar 512 (ou um número inteiro apropriado ^ 2 múltiplo / divisor) como bs é o tamanho do bloco da sua imagem e a partição disk0s4 - que é 512 ou 4096.
O tamanho (lógico) do bloco do disco0 pode ser calculado (mesmo sem saber se o fdisk funciona com 512 ou 4096 bytes internamente): 977105060 * 512 = 500 GB ou 977105060 * 4096 = 4 TB. Um SSD de 4 TB ainda não existe para os MacBook Pro; portanto, o tamanho do bloco deve ser de 512 bytes. O mesmo é válido para o seu arquivo img.
Agora você pode levar em consideração os motivos de velocidade: quanto maior o bs , mais rápido a imagem será copiada.
Portanto, um comando dd válido no seu caso pode ser:
Como bs é apenas 2 bytes, é necessário modificar pular (ignora os blocos X à bs de if) e contar (os blocos Y à bs são "gravados"). Como pular é 206848 * 512, X é 206848 * 512/2 e a contagem é 41527296 * 512, Y é 41527296 * 512/2 e o comando acima é:
Um teste rápido revela:
Quanto maior o bs , mais rápido o
dd
comando é executado.Entre: O maior
bs
trabalho para você é 1048576 (o maior divisor comum) porque 105906176 (= ignorar tamanho em byte) / 1048576 = 101 (e 21261975552 (= número de contagem em bytes) / 1048576 = 20277). 101 é primo!Até agora, todos os valores de bs são múltiplos de 2. Se bs for desigual, isso poderá colidir com os tamanhos (bloco) de se / de . Pelo menos no seu caso, se e de tamanho de Byte, mesmo porque são múltiplos de 512.
Agora deve ser óbvio por que o uso de bs = 65535 falha: os números de bloco pular e contar são determinados por bs e não pelo tamanho natural do bloco da sua imagem ou partição. Um comando apropriado pode ser
Pelo menos para mim, isso falha porque 1616.024 ... é um valor numérico ilegal. Portanto, pode-se supor que todos os números devem ser valores inteiros!
Um bs de 65535 funciona apenas se o tamanho total de if / of e qualquer "limite" de pular ou procurar for múltiplo de 65535 Byte.
Se o seu
dd
comando não contém nenhuma parte pular / procurar / contar, você pode usar tamanhos arbitrários de bs.Embora o
dd
comando no início da resposta funcione, você provavelmente não poderá inicializar na partição Windows To Go (ou Windows Installer Ready-To-Go?). O MBR do disco 0 não conterá a entrada de inicialização necessária.fonte
dd
comando está pulando todo esse software necessário. A instalação do rEFInd não solucionará esta situação.