O Acronis Bootable Media parece não ter nenhum sistema de arquivos, mas é inicializado com sucesso na VM, mas não no bare metal

0

Antecedentes

Um dos meus deveres requer ter uma variedade de computadores com uma série de conjuntos de software pré-configurados disponíveis para uso em pouco tempo. Esses computadores têm hardware diferente e não há atualizações automáticas de qualquer tipo (sem falar em um sistema centralizado). Para resolver o problema de implantar esses pacotes e atualizá-los, eu estou tentando usar o Acronis True Image. Seguindo várias instruções em uma VM do Windows 10 hospedada no macOS via VirtualBox, eu:

  1. Utilizou o Acronis Snap Deploy 5 para criar um Acronis Bootable Media .iso.
  2. Inicializado a partir dessa imagem.
  3. Criei uma imagem master offline.
  4. Em uma nova VM, inicializada a partir da mídia inicializável e implantada com êxito a imagem principal.

Problema

Enquanto o .iso funciona bem para inicializar uma VM:

Tentarqueimaro.isousandounetbootinapenasfazcomqueelesedebatasilenciosamente,Rufusdizqueaimagemnãoésuportada,eEtchergeraumerrodizendoquenãohásistemadearquivos:

OqueéconfirmadopelamontagemdaimagemnomacOSenoWindows:

Noentanto,definitivamenteháalgunsdadosreaisnaimagem:

Pergunta

Comoépossívelqueum.isoinicializeperfeitamentecomoVirtualBox,masnãotemsistemadearquivosaparenteenãoconsegueservisualizadoemnenhumtipodedriveUSB?Comopossocriarumaversãoinicializáveldessaimagemparausocomumcomputador"real"?

    
por JMY1000 29.11.2017 / 05:33

1 resposta

0

Tente escrever a imagem sem usando ferramentas de conversão (como unetbootin). Você pode usar dd simples ou ferramentas de criação de imagens diretas como o Win32DiskImager. No macOS, esta postagem sugere:

  1. diskutil list para encontrar o dispositivo "/ dev / diskX";
  2. diskutil unmountDisk /dev/diskX ;
  3. dd if=/path/to/iso of=/dev/rdiskX bs=1M (comentários sugerem "rdisk" para desempenho)
  4. diskutil eject /dev/diskX .

As imagens ISO são imagens de CD (o nome vem de "ISO 9660") e estão estruturadas de forma diferente dos discos "regulares". Mais importante ainda, as informações de inicialização são colocadas em um local diferente - os CDs usam um registro de inicialização "El Torito" no setor 17; Discos compatíveis com o BIOS usam um MBR no setor 0; Os discos compatíveis com UEFI usam uma GPT no setor 1 e uma partição separada inteira para conter o carregador de inicialização.

Portanto, para inicializar uma imagem de CD do USB, há duas opções:

  • Programas como Rufus e Unetbootin não simplesmente "queimam" a imagem; eles convertem uma imagem de CD pura em um USB.

    Eles tentam reconhecer o conteúdo da imagem, extraí-lo para a unidade USB e criar um novo gerenciador de inicialização que, esperamos, será compatível com o original.

    Isso requer que o programa de conversão realmente entenda como a imagem do CD funciona. (Por exemplo, se o CD usou o isolinux, o conversor precisa instalar o syslinux no pendrive).

  • Programas como o isohybrid preparam a própria imagem de modo que ela contenha simultaneamente CD (ISO 9660), BIOS (MBR) e código de inicialização UEFI, para que possa ser escrito em qualquer tipo de disco sem conversão adicional.

    O resultado é uma imagem cujo conteúdo depende da maneira como você a vê. Quando gravada em um CD, o SO encontrará um sistema de arquivos ISO 9660 regular. Quando os exato mesmo dado são gravados em um disco USB, o sistema operacional encontra uma grande partição "vazia" e uma partição "EFI boot" muito pequena. Exemplo. Exemplo. Exemplo a>

Ambos os métodos são complexos, mas o pior caso é tentar combinar os dois. Por exemplo, o Unetbootin costumava ser uma boa ferramenta de conversão CD → USB no passado, mas agora que as distribuições Linux são frequentemente enviadas em imagens ISO híbridas compatíveis com USB já , o Unetbootin tende a entender mal seu conteúdo e, na verdade, exibe uma imagem que não é mais inicializada.

Por fim, os discos não precisam ter arquivos visíveis para serem inicializáveis. Há um mínimo necessário para fazer o disco ou a inicialização do disco, mas além disso, tudo é controlado pelo próprio bootloader do próprio disco / k. Portanto, não importa que você veja um disco completamente vazio; o gerenciador de inicialização pode estar procurando apenas seus próprios dados em outro lugar.

No seu caso, parece muito provável que a imagem já esteja em algum tipo de formato híbrido; tem apenas o suficiente de um sistema de arquivos ISO 9660 para permitir que o firmware encontre o gerenciador de inicialização, mas o restante do SO está oculto em algum outro lugar.

Você pode tentar determinar se é realmente compatível com o formato de inicialização do BIOS MBR usando:

head -c 512 file.iso | hexdump -Cv

Se a última linha (000001f0) terminar com 55 aa , significa que há uma tabela de partição do BIOS MBR.

    
por 29.11.2017 / 10:29