Como determino se um ISO é um híbrido?

19

De acordo com isso: http://en.wikipedia.org/wiki/ISO_image#Description

"Um exemplo mais recente é o lançamento de arquivos ISO híbridos que podem ser inicializados ou iniciados a partir de dispositivos de unidade flash BD ou DVD e USB quando a imagem é gravada em qualquer um desses dispositivos de armazenamento".

Como uso as ferramentas padrão do Linux para determinar se o ISO que eu baixei (edite: ou criei via genisoimage) é um híbrido?

Obrigado!

calças de gato
fonte
1
Verificar a bateria?
Daniel R Hicks #

Respostas:

11

Execute o fdisk no arquivo Se mostra algo significativo, é híbrido.

ssmy
fonte
3
O que você quer dizer com "algo significativo"? Se eu rodar o fdisk no meu win7.iso, recebo quatro linhas sobre o tamanho do setor, etc. Ainda não acho que seja híbrido. paste.ee/p/r60ZR . Você poderia ser mais explícito, por favor?
Mads Skjern
8

Execute o file comando na imagem ISO em questão. A saída da execução desse comando em uma ISO não híbrida será algo parecido com isto

image.iso: ISO 9660 CD-ROM filesystem data 'foo' (bootable)

enquanto a saída da execução desse comando em uma ISO híbrida se parecerá com isso

image.iso: DOS/MBR boot sector ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'foo' (bootable); partition 1 : ID=0x17, active, start-CHS (0x0,0,1), end-CHS (0x288,63,32), startsector 0, 1329152 sectors

caosape
fonte
3

Você pode usar este script para verificar a imagem ISO ( -isinalize para "inspecionar")

https://github.com/jsamr/bootiso

bootiso -i "your iso image"

Crie um dispositivo inicializável USB a partir de uma imagem ISO com facilidade e segurança.

Não quer mexer no sistema com o comando dd? Crie um USB inicializável a partir de um ISO em uma linha [veja-o em ação].

Funciona perfeitamente com ISOs híbridos e não híbridos (compatíveis com SYSLINUX ou UEFI), como qualquer ISO linux, ISO do Windows ou live-cds de resgate como o UltimateBootCD. Você não precisa alterar nada: o bootiso inspeciona o arquivo ISO e escolhe o melhor método para tornar seu USB inicializável.

msadek
fonte
1

Você pode correr head -c 512 thefile.iso > bytes.txt.

Em uma ISO não híbrida adequada, todos os bytes devem ser zeros (talvez não sejam visíveis por padrão no seu editor de texto). Embora em teoria eles possam conter qualquer lixo aleatório, portanto, em um caso diferente de zero, é mais difícil confirmar se é um híbrido sem uma análise mais aprofundada dos bytes.

Para usuários do Windows, você pode instalar o pacote gnuwin32 coreutils para obter esse comando.

jiggunjer
fonte
1

Isso detecta uma tabela de partição, não presente na mídia ROM não híbrida:

cat romdisk.iso 2>/dev/null | head -c 512 | tail -c 2 | xxd -p | grep -ie '55aa$'

O que eu não sei como determinar é entre ISO híbrido e imagem de disco rígido:

cat disk.img 2>/dev/null | head -c 512 | hexdump -vC
Narcis Garcia
fonte
0

A resposta do @ chaosape deve ser a solução aceita.

Após o uso file, se o ISO não for híbrido e você precisar (por exemplo, para criar um USB inicializável), use-o isohybridpara convertê-lo:

isohybrid [PATH_TO_ISO]

Você também pode usar sinalizadores como -upara torná-lo UEFI inicializável.

https://www.mankier.com/1/isohybrid

adatum
fonte