Que versão do MS-DOS o Rufus usa para fazer USBs inicializáveis?

74
O

Rufus permite a criação de uma unidade flash inicializável do MS-DOS. Ele faz isso fora da caixa como uma opção sem precisar especificar uma imagem ou ISO.

No entanto, a documentação da ferramenta é praticamente inexistente, e não consigo encontrar nada que especifique qual versão do DOS o programa usa para essa finalidade. Alguém sabe?

    
por Hashim 09.07.2017 / 07:40

3 respostas

198

Desenvolvedor Rufus aqui.

Como corretamente apontado por @ magicandre1981 , a versão do MS-DOS fornecida pelo Rufus é o MS-DOS do Windows Millenium Edição, "uncrippled" para habilitar boot (eu não inventei este patch, mas peguei o HP USB e outras ferramentas).

Além disso, e essa é a parte importante, o Rufus NÃO incorpora os arquivos do MS-DOS no aplicativo, mas os coleta do sistema Windows do qual está sendo executado, porque, desde o MS Os binários -DOS são proprietários e protegidos por direitos autorais da Microsoft, é ilegal para qualquer outra pessoa que não a Microsoft distribuir binários do MS-DOS, seja em um arquivo zip ou em um aplicativo (na verdade, ele aparece que a HP entrou em problemas legais com a Microsoft quando tentou produzir uma versão de seu utilitário HPUSBFW que incorporava os arquivos do Windows 98 MS-DOS, e a Microsoft fez com que eles parassem de fazer isso).

Assim, até o Windows 10, contamos com o fato de que os arquivos do MS-DOS (do Windows ME) foram incluídos na DLL ( diskcopy.dll ) que o Windows usa para criar disquetes inicializáveis DOS (que na verdade contém um imagem FAT disquete inicializável completa), e pegou os arquivos de lá, o que podemos legalmente fazer.

No entanto, com a introdução do Windows 10, a Microsoft abandonou a capacidade de criar disquetes de boot (já que ninguém que usa o Windows 10 deve inicializar a partir do disquete) e removeu diskcopy.dll . Isso significa que não temos mais uma maneira legal de criar unidades flash USB inicializáveis do MS-DOS e o resultado final é:

  • Se você usa o Rufus no Windows XP para o Windows 8.1: você tem a capacidade de criar USBs inicializáveis com FreeDOS ou MS-DOS (edição WinME).
  • Se você usa o Rufus no Windows 10 ou posterior: você tem a capacidade de criar USBs inicializáveis somente com FreeDOS.

Na prática, ainda não encontrei um relatório tangível de alguém indicando que o FreeDOS não funciona onde o MS-DOS funciona, e é por isso que não considero a perda de suporte do MS-DOS no Windows 10 uma grande perda. Além disso, ao contrário de usar o MS-DOS, que é de código fechado e que a Microsoft parou de suportar há muito tempo, FreeDOS é Open Source e ativamente suportado, então geralmente é melhor usar o FreeDOS.

    
por 09.07.2017 / 14:28
36

Ele extrai a versão do arquivo do Windows diskcopy.dll

/* Extract the MS-DOS files contained in the FAT12 1.4MB floppy
   image included as resource "BINFILE" in diskcopy.dll */
static BOOL ExtractMSDOS(const char* path)

olhando para outros comentários em dos.c que são os arquivos DOS do WinME (DOS 8.0), ele faz o mesmo patch que mostrado aqui :

* COMMAND.COM and IO.SYS from diskcopy.dll are from the WinME crippled version  
* that removed real mode DOS => they must be patched:  
* IO.SYS            000003AA          75 -> EB 
* COMMAND.COM       00006510          75 -> EB 
    
por 09.07.2017 / 08:05
10

Eu decidi testá-lo sozinho. Eu criei um USB inicializável rodando o MS-DOS usando o Rufus e então inicializei nele no meu laptop. Uma vez no MS-DOS, executei o comando ver para determinar sua versão, que retornava o Windows Millennium, também conhecido como Windows ME.

Eu estou supondo que isso significa que a versão do MS-DOS usada pelo Rufus é extraída do Windows ME, em vez de ser uma das versões anteriores e independentes. Como esta versão integrada ME difere das versões anteriores, não tenho certeza absoluta.

    
por 09.07.2017 / 08:05