Se você conseguir fazer todas essas tarefas a partir do seu desktop linux, você estará agitando a casa. Eu acho que a parte mais difícil seria mexer com todas as operações que o Diskpart do Windows faz. Fazer a partição marcada como 'ativa' e 'boot', 'primária', etc.
p.campbell
3
Acho GParted ( gparted.sourceforge.net ) pode lidar com todos os sinalizadores de partição muito bem. Veja, por exemplo, gparted.sourceforge.net/screenshots.php . E eu não testei, mas parece que o rsync pode substituir o robocopy nessa lista de verificação.
OK, depois de tentar sem êxito todos os métodos mencionados aqui, finalmente consegui fazê-lo funcionar. Basicamente, o passo que faltava era gravar um setor de inicialização adequado no pendrive, o que pode ser feito no Linux com ms-sysou lilo -M. Isso funciona com a versão comercial do Windows 7.
Aqui está o resumo completo novamente:
Instale o ms-sys - se não estiver em seus repositórios, obtenha-o aqui . Ou, alternativamente, verifique se o lilo está instalado (mas não execute a etapa liloconfig na sua caixa local se, por exemplo, o Grub estiver instalado lá!)
Verifique qual dispositivo sua mídia USB está atribuída - aqui assumiremos que é /dev/sdb. Exclua todas as partições, crie uma nova ocupando todo o espaço, defina o tipo como NTFS (7) e lembre-se de configurá-lo inicializável:
# cfdisk /dev/sdboufdisk /dev/sdb ( tipo de partição 7 e sinalizador de inicialização )
Crie um sistema de arquivos NTFS:
# mkfs.ntfs -f /dev/sdb1
Escreva o MBR do Windows 7 no pen drive (também funciona no Windows 8), várias opções aqui:
# ms-sys -7 /dev/sdb
ou (por exemplo, em instalações mais recentes do Ubuntu) sudo lilo -M /dev/sdb mbr( informações )
ou (se o syslinux estiver instalado), você pode executar sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
Monte mídia ISO e USB:
# mount -o loop win7.iso / mnt / iso
# mount / dev / sdb1 / mnt / usb
Copie sobre todos os arquivos:
# cp -r /mnt/iso/* /mnt/usb/... ou use o navegador de arquivos GUI padrão do seu sistema
Ligue syncpara garantir que todos os arquivos sejam gravados.
Abra o gparted, selecione a unidade USB, clique com o botão direito do mouse no sistema de arquivos e clique em "Gerenciar sinalizadores". Marque a caixa de seleção de inicialização e feche.
... e pronto.
Depois de tudo isso, você provavelmente deseja fazer backup de sua mídia USB para outras instalações e se livrar do arquivo ISO ... Basta usar o dd:
# dd if=/dev/sdb of=win7.img
Observe que isso copia o dispositivo inteiro! - que geralmente é (muito) maior que os arquivos copiados para ele. Então, em vez disso, proponho
# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img
Como sempre, verifique os nomes dos dispositivos com muito cuidado ao trabalhar com eles dd.
O método de criação de um USB inicializável apresentado acima também funciona com o instalador do Win10 iso. Eu tentei rodar o Ubuntu 16.04 copiando o Win10_1703_SingleLang_English_x64.iso (tamanho 4.241.291.264 bytes) em um pendrive de 8 GB - somente na inicialização não UEFI [não segura]. Após a execução dos relatórios dd: 8300156 + 0 registros em 8300156 + 0 registram 4249679872 bytes (4,2 GB, 4,0 GiB) copiados, 412,807 s, 10,3 MB / s
Inverta se / da próxima vez que você quiser colocar o instalador do Windows 7 no USB.
Seria bom mencionar o tipo de partição numérica para usar em cfdisk bem (7, 86, 87?)
Johan Dahlin
5
Funcionou com o tipo 7
Ropez
3
Apenas uma observação: se o seu sistema de arquivos ntfs fornecer erros estranhos de permissão quando você escreve nele mesmo como root, verifique se instalou o ntfs-3g.
Jeremy Salwen
1
Eu tentei isso diretamente em um disco rígido e recebi o erro "o Windows não pode acessar as fontes de instalação" depois de inicializado.
Jeremy Salwen
4
chamar syncapós a cópia para garantir que todos os arquivos são gravados
Nicolas Dusart
13
Você pode fazer isso com o dd, se o seu PC suportar UEFI e, por extensão, discos GPT.
Abra um terminal, você precisará encontrar qual dispositivo é o seu pendrive. Se você tiver a unidade montada, poderá encontrar o nome do dispositivo digitando "mount" e olhando para a entrada. Algo como o seguinte:
/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)
Nesse caso, a primeira parte do / dev / sdb é montada em / media / USBDISK. Abra um shell raiz e desmonte a unidade.
umount /dev/sdb1
Vá para o diretório em que seu ISO está armazenado em um shell raiz e digite o seguinte: (Substitua windows7.iso pelo nome que for chamado e / dev / sdb pelo ID do dispositivo do seu pendrive).
dd if=windows7.iso of=/dev/sdb
Se sua placa-mãe suportar a inicialização de um pendrive, ela poderá inicializá-lo. Isso fará com que o instalador no pendrive não no próprio sistema operacional.
Sua placa-mãe suporta a inicialização via USB? Esse será o fator decisivo para decidir se essa abordagem funcionará ou não.
precisa saber é o seguinte
11
Também não funciona para mim e minha máquina suporta a inicialização por USB muito bem. Talvez essa abordagem possa funcionar em máquinas que podem inicializar o armazenamento USB no estilo de DVD, mas a maioria dos BIOS assume o layout no estilo HDD no USB (ou seja, MBR de 512 bytes com o código de inicialização). Vale a pena mencionar: as imagens de CD / DVD do Fedora, ao contrário do W7, possuem MBR com código de inicialização e tabela de partição, tornando-as adequadas para a inicialização em HDD / USB.
Tronic
9
Isso requer que sua placa-mãe seja capaz de inicializar o CD-ROM USB e não apenas o HDD USB
TrueDuality
12
Esta solução está faltando na etapa de instalação da MBR e normalmente não funcionará, a menos que ela já esteja mágica. A solução da @Gunthers está completa.
stolsvik
5
A sugestão da PCambell é boa, mas você também deseja limpar o MBR, o equivalente ao Linux está abaixo
Eu tentei isso e funcionou (não sei por que o método dd falhou, mas parece que a partição tinha que ser NTFS?):
descobrir qual / dev / device é a sua unidade flash USB e desmontá-la
limpe o MBR: dd se = / dev / zero de = / dev / device bs = 446 count = 1
execute fdisk / dev / device
remova todas as partições e crie uma partição primária, torne-a inicializável e salve as alterações
execute mkfs.ntfs / dev / device1 (partição 1)
copie todo o conteúdo do Windows Install ISO para a partição que você criou
Respostas:
OK, depois de tentar sem êxito todos os métodos mencionados aqui, finalmente consegui fazê-lo funcionar. Basicamente, o passo que faltava era gravar um setor de inicialização adequado no pendrive, o que pode ser feito no Linux com
ms-sys
oulilo -M
. Isso funciona com a versão comercial do Windows 7.Aqui está o resumo completo novamente:
Instale o ms-sys - se não estiver em seus repositórios, obtenha-o aqui . Ou, alternativamente, verifique se o lilo está instalado (mas não execute a etapa liloconfig na sua caixa local se, por exemplo, o Grub estiver instalado lá!)
Verifique qual dispositivo sua mídia USB está atribuída - aqui assumiremos que é
/dev/sdb
. Exclua todas as partições, crie uma nova ocupando todo o espaço, defina o tipo como NTFS (7) e lembre-se de configurá-lo inicializável:# cfdisk /dev/sdb
oufdisk /dev/sdb
( tipo de partição 7 e sinalizador de inicialização )Crie um sistema de arquivos NTFS:
# mkfs.ntfs -f /dev/sdb1
Escreva o MBR do Windows 7 no pen drive (também funciona no Windows 8), várias opções aqui:
# ms-sys -7 /dev/sdb
sudo lilo -M /dev/sdb mbr
( informações )sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb
Monte mídia ISO e USB:
Copie sobre todos os arquivos:
# cp -r /mnt/iso/* /mnt/usb/
... ou use o navegador de arquivos GUI padrão do seu sistemaLigue
sync
para garantir que todos os arquivos sejam gravados.Abra o gparted, selecione a unidade USB, clique com o botão direito do mouse no sistema de arquivos e clique em "Gerenciar sinalizadores". Marque a caixa de seleção de inicialização e feche.
... e pronto.
Depois de tudo isso, você provavelmente deseja fazer backup de sua mídia USB para outras instalações e se livrar do arquivo ISO ... Basta usar o dd:
# dd if=/dev/sdb of=win7.img
Observe que isso copia o dispositivo inteiro! - que geralmente é (muito) maior que os arquivos copiados para ele. Então, em vez disso, proponho
Assim, por exemplo, com 8 M bytes extras:
Como sempre, verifique os nomes dos dispositivos com muito cuidado ao trabalhar com eles
dd
.O método de criação de um USB inicializável apresentado acima também funciona com o instalador do Win10 iso. Eu tentei rodar o Ubuntu 16.04 copiando o Win10_1703_SingleLang_English_x64.iso (tamanho 4.241.291.264 bytes) em um pendrive de 8 GB - somente na inicialização não UEFI [não segura]. Após a execução dos relatórios dd: 8300156 + 0 registros em 8300156 + 0 registram 4249679872 bytes (4,2 GB, 4,0 GiB) copiados, 412,807 s, 10,3 MB / s
Inverta se / da próxima vez que você quiser colocar o instalador do Windows 7 no USB.
fonte
sync
após a cópia para garantir que todos os arquivos são gravadosVocê pode fazer isso com o dd, se o seu PC suportar UEFI e, por extensão, discos GPT.
Abra um terminal, você precisará encontrar qual dispositivo é o seu pendrive. Se você tiver a unidade montada, poderá encontrar o nome do dispositivo digitando "mount" e olhando para a entrada. Algo como o seguinte:
Nesse caso, a primeira parte do / dev / sdb é montada em / media / USBDISK. Abra um shell raiz e desmonte a unidade.
Vá para o diretório em que seu ISO está armazenado em um shell raiz e digite o seguinte: (Substitua windows7.iso pelo nome que for chamado e / dev / sdb pelo ID do dispositivo do seu pendrive).
Se sua placa-mãe suportar a inicialização de um pendrive, ela poderá inicializá-lo. Isso fará com que o instalador no pendrive não no próprio sistema operacional.
fonte
A sugestão da PCambell é boa, mas você também deseja limpar o MBR, o equivalente ao Linux está abaixo
Eu tentei isso e funcionou (não sei por que o método dd falhou, mas parece que a partição tinha que ser NTFS?):
fonte
Ao invés de
você escreve como
root
,(ADICIONE 1 no final ou seja o que for a sua unidade USB.)
fonte
dd
precisa escrever para os dispositivos, para não partições