Se eu copiar uma unidade USB inicializável para outra USB, ela criará uma unidade inicializável duplicada?

37

Eu pensei que era uma pergunta idiota, mas uma pesquisa com o Google parece indicar que nem sequer é possível copiar / colar dados em uma unidade inicializável para outro USB? Mas mesmo se pudéssemos copiá-lo, por que não deveria funcionar? (que está criando uma unidade inicializável duplicada)

zar
fonte
2
O que você quer dizer com "copiar / colar"? Obviamente, você precisa copiar as partes que realmente a tornam uma unidade inicializável (como o carregador de inicialização etc.), mas não há razão para que isso não funcione.
Jörg W Mittag

Respostas:

56

Simplesmente copiar os arquivos não criará uma unidade inicializável. Não são apenas os arquivos em uma unidade flash USB que a tornam inicializável, mas a configuração da tabela de partições , os metadados sobre a organização do conteúdo da unidade, que informa ao PC se é inicializável e se é MBR ou GPT .

Conforme observado em cyberciti.biz :

Cada disco e partição tem algum tipo de assinatura e metadados / seqüências de caracteres mágicas. Os metadados usados ​​pelo sistema operacional para configurar discos ou anexar drivers e montar discos no seu sistema.

No entanto, você pode clonar a unidade flash com várias ferramentas, como dd , EaseUS Todo Backup e o excelente e de código aberto Clonezilla e Rufus . (Obrigado a Alex pelos lembretes sobre dd e Rufus).

Existem até dispositivos eletrônicos que replicam automaticamente unidades flash .

K7AAY
fonte
15
Na verdade, você nem precisa dd: o simple cpfará o trabalho - apenas certifique-se de usá-lo no nó do dispositivo em vez do conteúdo do sistema de arquivos.
Ruslan
Isso é surpreendente. Ou talvez não. Mas para mim pelo menos.
Jörg W Mittag
11
'cat <source> destination' funcionará bem, já que o destino não é mais fácil do que a fonte.
ysdx 6/09/19
@JoL você não viu o comentário (agora excluído) de Jörg. A minha foi uma resposta à sua afirmação que cpsimplesmente copiaria o nó do dispositivo. Para evitar confusão, eu também apaguei meu comentário também.
Ruslan
21

A cópia apenas lida com arquivos em partições formatadas. Você não poderá fazer coisas especiais necessárias para o processo de inicialização, como definir os sinalizadores de inicialização, escrever o carregador de inicialização ou, às vezes, copiar arquivos normais no local correto (leia-se: setor) na partição e definir os atributos dos arquivos. / permissões. A menos que você tenha a sorte de ter essas coisas disponíveis, devido a uma criação anterior do disco de inicialização, uma ferramenta de formatação que grava o carregador de inicialização no MBR etc., você precisará executar mais etapas para tornar o disco inicializável


Especificamente ao inicializar no modo BIOS , o BIOS procura o primeiro setor (MBR) para verificar se há uma assinatura de inicialização válida 0xAA55 . Se sim, ele carrega esse setor e transfere o controle para o carregador de inicialização no MBR. O MBR descreve a configuração da partição; portanto, não pode estar dentro da partição e não é o que você pode copiar com as ferramentas normais.

Além disso, como o MBR é pequeno demais para ser útil, os gerenciadores de inicialização mais modernos dividem o processo de inicialização em vários estágios , com o código de inicialização no MBR carregando seu próximo estágio. Os outros estágios adicionais são novamente colocados em regiões fora das partições . Alguns podem colocá-lo no EBR , mas o grub geralmente coloca seu segundo estágio na área vazia entre a primeira partição e o MBR, denominada gap post-MBR. É por isso que se alguém não alinhar as partições corretamente, não há espaço para o grub colocar seu código de inicialização, resultando em erro de incorporação

Muitos gerenciadores de inicialização, como o LILO ou os gerenciadores de inicialização antigos do Windows / DOS, também contêm informações de código no MBR, como a posição do próximo estágio ou os arquivos do sistema. Eles não funcionam lendo os dados da partição, mas lêem algum setor codificado, pois será necessário muito código para analisar o sistema de arquivos, o que é muito difícil de ser compactado em pequenos espaços como o intervalo MBR ou pós-MBR. Até o grub suporta essa codificação rígida . Isso significa que alguns arquivos do sistema precisam estar no local exato , setor por setor, o que você também não pode obter com uma cópia normal. Essa é a razão pela qual você vê "arquivos de sistema não móveis" enquanto executa o desfragmentador do Windows ou reduz os sistemas de arquivos, o que às vezes não é realmente correto, porque o Windows tem medo de mover esses arquivos, mesmo que os carregadores de inicialização modernos sejam muito mais inteligentes e não se importem com essas coisas.

E, afinal, você também precisa definir a partição de inicialização como ativa para que o gerenciador de inicialização saiba o que inicializar. Isso deve ser feito por uma ferramenta de particionamento ou pela edição hexadecimal manualmente, pois também é colocado fora da área de partição.


Na UEFI, as coisas são muito mais fáceis. Ele conhece sistemas de arquivos FAT (e ainda mais sistemas de arquivos em implementações não padrão); portanto, os arquivos de inicialização são armazenados na partição do sistema EFI, AKA ESP . O UEFI carrega os aplicativos * .efi no ESP, que carregará os sistemas operacionais.

O firmware UEFI suporta a inicialização a partir de dispositivos de armazenamento removíveis, como unidades flash USB. Para esse propósito, um dispositivo removível precisa ser formatado com um sistema de arquivos FAT12, FAT16 ou FAT32, enquanto um carregador de inicialização precisa ser armazenado de acordo com a hierarquia de arquivos ESP padrão ou fornecendo um caminho completo de um carregador de inicialização para o sistema. gerenciador de inicialização.

Então, basicamente, você só precisa copiar os arquivos * .efi no ESP e colocar os arquivos do sistema na pasta correta. No entanto, ainda existe um pequeno problema porque a partição FAT que contém o arquivo * .efi deve ser marcada como ESP na tabela MBR ou GPT fora das partições, o que não pode ser feito copiando como acima. Em particular, o tipo de partição deve ser alterado de 0Ch / 0Bh / o que for para EFh no MBR e para C12A7328-F81F-11D2-BA4B-00A0C93EC93B na GPT, pois o ESP não é realmente FAT12 / 16/32, mas um sistema de arquivos independente baseado em a família do sistema de arquivos FAT


E ainda existem muitos outros esquemas de particionamento, como etiqueta de disco BSD ou APM, que precisam ser modificados de maneira diferente para inicializar. Ou os pen drives podem ter sido formatados sem uma tabela de partição (o AFAIK Windows faz isso por padrão), portanto, torná-lo inicializável será diferente. Mas o mesmo limite se aplica: você precisa modificar áreas não particionadas

phuclv
fonte
11
Essa é a resposta correta.
Margaret Bloom
É a resposta mais completa , sim, mas não acredito que seja mais correta do que a resposta aceita, que a OMI responde a uma pergunta simples de maneira simples.
Ian Kemp
@IanKemp o problema com a resposta aceita não é que ele é simples (que é bom), mas que é tecnicamente ambígua na melhor :)
Margaret Bloom
Se você marcar um volume de pendrive como ativo - usando o utilitário cmd line "diskpart" do Windows ou qualquer gerenciador de partições de terceiros - copiando o conteúdo de uma imagem ISO do Windows Vista / 7/8/10, o pendrive se tornará o pendrive de inicialização do Windows; nada de ramdrive ou montagem furthur acontece na inicialização. Então, obviamente, depois de marcar um stick como ativo, tudo o que você precisa é de um pequeno arquivo de imagem de inicialização (bootmgr e bootmgr.efi no Windows, eu acho) no stick; não há necessidade de ferramentas complexas. Eu esperaria um procedimento simples de linha de comando no Linux, muito mais fácil do que o Windows.
Red.Wave
3

Tradicionalmente, a inicialização do BIOS exigia um marcador invisível especial. Aqui estão alguns exemplos :

  • Se particionado por MBR ("disco rígido"), na tabela de partições
  • Se houver um disquete / super-disquete ("unidade ZIP"), basicamente toda a unidade será formatada sem uma tabela de partição e, nos primeiros bytes,
  • Se CD, então El Torito

Nesses casos, você não pode simplesmente copiar arquivos. A unidade resultante não pode ser inicializada porque faltam esses marcadores especiais.

No entanto , a inicialização UEFI é especial, mais inteligente e aborda especificamente esses problemas. Como sempre, recomendo a leitura desta postagem no blog para obter um iniciador simplificado para UEFI. Tome nota especial da seção de inicialização de fallback. Isso também é discutido em um pouco mais detalhadamente aqui .

Tudo o que você precisa para que isso funcione é um arquivo em um caminho específico em uma partição que o firmware pesquisará. Para compatibilidade ideal 1 , sim, deve ser uma partição formatada em FAT32 marcada como uma partição de sistema EFI em um disco particionado por GPT. No entanto, a maioria dos firmware também pesquisará partições (únicas) em discos particionados por MBR e não particionados (super-disquetes).

Isso significa que tudo o que você realmente precisa para a inicialização do UEFI é uma partição única formatada em FAT32 1 contendo uma entrada de inicialização de fallback. Em uma arquitetura x86_64, isso significa que você só precisa de um \EFI\BOOT\BOOTx64.EFIarquivo. Você pode simplesmente copiar de uma unidade flash para outra, incluindo esse arquivo, e tudo deve funcionar.


1 1 FAT32 e GPT são exigidos pelo padrão. MBR e superfloppy não são, AFAIK, mas o suporte a eles é bastante universal entre os hardwares de desktop. Laptop é um pouco mais esotérico; os tablets são um lance, e o Mac EFI é único.

2 O padrão UEFI requer suporte ao FAT32. Algum firmware também pode suportar NTFS (embora longe de ser garantido), e você pode realmente incorporar um driver NTFS em um FAT32 ESP.

Prumo
fonte
0

Depende do que você quer dizer com 'cópia'.

Copiar e colar na GUI do seu sistema operacional? Não, isso não funcionará - alguns arquivos de que um USB inicializável será considerado "oculto" / invisível e não copiado.

Existem vários tipos de cópia que irá trabalhar. Isso geralmente é chamado de 'geração de imagens' de um novo USB, para diferenciar de 'copiar' seu conteúdo. A maneira mais comum de fazer isso é uma ferramenta de linha de comando, mas as opções gráficas estão disponíveis se você precisar delas.

Isso deve ser suficiente para colocar sua pesquisa nos trilhos!

Sapphon
fonte