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

36

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

    
por zar 05.09.2018 / 20:27

4 respostas

56

Basta copiar os arquivos para criar uma unidade inicializável. Não são apenas os arquivos em uma unidade flash USB que o tornam inicializável, mas a tabela de partições configuração, os metadados sobre a organização do conteúdo da unidade, que informa a um PC se ele é < href="https://en.wikipedia.org/wiki/Boot_disk"> inicializável , e se é MBR ou GPT .

Como mencionado em cyberciti.biz :

Each disk and partition has some sort of signature and metadata/magic strings on it. The metadata used by operating system to configure disks or attach drivers and mount disks on your system.

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

Existem ainda dispositivos eletrônicos que replicam automaticamente os flash drives .

    
por 05.09.2018 / 20:41
21

Copiar apenas lida com arquivos em partições formatadas. Você não poderá fazer coisas especiais necessárias para o processo de inicialização, como configurar os sinalizadores de inicialização, gravar o carregador de boot 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 sorte de ter essas coisas disponíveis, devido a uma criação de disco de inicialização anterior, uma ferramenta de formatação que grava o gerenciador 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 ver se há um assinatura de boot válida 0xAA55 . Se sim, carrega esse setor e transfere o controle para o carregador de boot no MBR. O MBR descreve a configuração da partição, portanto, não pode ficar dentro da partição e não é o que você pode copiar com as ferramentas normais.

Além disso, como o MBR é muito pequeno para ser útil, a maioria dos carregadores de boot modernos dividem o processo de inicialização em vários estágios , com o código de inicialização no MBR carrega seu próximo estágio. Os intra-estágios posteriores são novamente colocados em regiões fora das partições . Alguns podem colocá-lo na EBR , mas o grub geralmente coloca seu segundo estágio na área vazia entre a primeira partição e a MBR chamou a lacuna pós-MBR. É por isso que se alguém não alinha as partições corretamente, não há espaço para o grub colocar seu código de boot, resultando em erro de incorporação

Muitos carregadores de inicialização, como LILO ou carregadores de inicialização antigos do Windows / DOS, também armazenam informações de código rígido no MBR, como a posição do próximo estágio ou dos arquivos do sistema. Eles não funcionam lendo os dados da partição, mas leem algum setor codificado, já que vai exigir muito código para analisar o sistema de arquivos, o que é muito difícil de ser espremido em pequenos espaços como o intervalo MBR ou pós-MBR. Até mesmo o grub suporta essa codificação difícil . Isso significa que alguns arquivos do sistema precisam estar no local exato , setor por setor, o que você também não pode alcançar 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 encolhe sistemas de arquivos, o que às vezes não é correto, porque é só que o Windows tem medo de mover esses arquivos carregadores de inicialização são muito mais inteligentes e não se importam com essas coisas.

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

No UEFI, as coisas são muito mais fáceis. Ele conhece os 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ão os sistemas operacionais.

UEFI firmware supports booting from removable storage devices such as USB flash drives. For that purpose, a removable device needs to be formatted with a FAT12, FAT16 or FAT32 file system, while a boot loader needs to be stored according to the standard ESP file hierarchy, or by providing a complete path of a boot loader to the system's boot manager.

Então basicamente você só precisa copiar o (s) arquivo (s) * .efi para o ESP e colocar os arquivos do sistema na pasta correta. No entanto, ainda há um pequeno problema porque a partição FAT contendo o arquivo * .efi deve estar 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 / whatever para EFh em 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 na família de sistemas de arquivos FAT

E ainda existem muitos outros esquemas de particionamento como o rótulo de disco BSD ou o APM que precisam ser modificados de forma diferente para serem inicializados. Ou os sticks USB podem ter sido formatados sem uma tabela de partições (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

    
por 06.09.2018 / 04:26
3

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

  • Se particionado por MBR ("disco rígido"), então, dentro da tabela de partições
  • Se o disquete / superfloppy ("ZIP drive"), basicamente, a unidade inteira formatada sem uma tabela de partição, então dentro dos primeiros bytes
  • Se for CD, então El Torito

Nesses casos, você não pode simplesmente copiar arquivos. A unidade resultante não será inicializável porque está faltando esses marcadores especiais.

No entanto, , a inicialização do UEFI é especial, mais inteligente e aborda especificamente esses problemas. Como sempre, recomendo a leitura de este post de blog para um primer simplificado para UEFI. Tome nota especial da seção de inicialização de retorno. Isso também é discutido em um pouco mais de detalhe aqui .

Tudo o que você precisa para que isso funcione é um arquivo em um caminho específico em uma partição que o firmware irá procurar. Para uma compatibilidade ideal 1 , sim, esta 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 firmwares também procura partições (únicas) em discos particionados e não particionados (MBR) não particionados.

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ê precisa apenas de um arquivo \EFI\BOOT\BOOTx64.EFI . Você pode simplesmente copiar de uma unidade flash para outra, incluindo esse arquivo, e tudo deve funcionar.

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

2 O padrão UEFI requer suporte a FAT32. Alguns firmwares também podem suportar NTFS (embora longe de serem garantidos), e você pode realmente embutir um driver NTFS dentro de um FAT32 ESP.

    
por 06.09.2018 / 03:30
0

Depende do que você quer dizer com "copiar".

Copiar e colar na GUI do seu sistema operacional? Não, isso não funcionará - alguns arquivos que um USB inicializável precisa serão considerados "ocultos" / invisíveis e não copiados.

Existem tipos de cópia que funcionarão . Isto é muitas vezes referido como 'imagem' um novo USB, para diferenciar de 'copiar' o seu conteúdo. A maneira mais comum de fazer isso é uma ferramenta de linha de comando, mas opções gráficas estão disponíveis se você precisar delas.

Isso deve ser fundo suficiente para colocar sua pesquisa no caminho certo!

    
por 07.09.2018 / 20:49