Eu extraí o arquivo iso "archlinux-2022.06.01-x86_64.iso". E eu fiz alterações no arquivo "airootfs.sfs"
E agora vou criar uma imagem iso "inicializável (setor dos/MBR)" novamente Como o arquivo iso original que extraí
sudo xorriso -as mkisofs -d -l -r -no-emul-boot
-o archlinux.iso .
-append_partition 2 0xef ../compile-linux/efi_part.img -e "--interval:appended_partition_2:all::" -no-emul-boot ../compile-linux/bios_boot.img
-G ../compile-linux/mbr_code.img
-b syslinux/isolinux.bin
-c syslinux/boot.cat
resultadofile archlinux.iso
archlinux.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'ISOIMAGE' (bootable)
comando de saídaxorriso -indev archlinux.iso -report-el-torito plain -report-system-area plain
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 114 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'archlinux.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record : El Torito , MBR cyl-align-off
Media summary: 1 session, 445804 data blocks, 871m data, 178g free
Volume id : 'ISOIMAGE'
El Torito catalog : 42 1
El Torito cat path : /syslinux/boot.cat
El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA
El Torito boot img : 1 BIOS y none 0x0000 0x00 76 43
El Torito img path : 1 /syslinux/isolinux.bin
System area options: 0x00000a00
System area summary: MBR cyl-align-off
ISO image size/512 : 1783216
Partition offset : 0
MBR heads per cyl : 64
MBR secs per head : 32
MBR partition table: N Status Type Start Blocks
MBR partition : 1 0x00 0x83 0 1783216
MBR partition : 2 0x00 0xef 1783216 1600
As saídas acima são para o arquivo iso que eu mesmo fiz
Tentei usar meu arquivo iso ao vivo na máquina virtual "A opção Efi está desativada", mas recebo esses erros.
sou iniciante e nao entendo muito disso
É por isso que tentei encontrar o caminho certo para fazer a imagem da saída iso original, mas não consegui
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : ISO image bears MBR with -boot_image any partition_offset=16
xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE : 113 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 396800 * 2048 , 0 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev '../archlinux-2022.06.01-x86_64.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record : El Torito , MBR isohybrid cyl-align-all GPT
Media summary: 1 session, 440998 data blocks, 861m data, 178g free
Volume id : 'ARCH_202206'
El Torito catalog : 118 1
El Torito cat path : /syslinux/boot.cat
El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA
El Torito boot img : 1 BIOS y none 0x0000 0x00 4 119
El Torito boot img : 2 UEFI y none 0x0000 0x00 0 396800
El Torito img path : 1 /syslinux/isolinux.bin
El Torito img opts : 1 boot-info-table isohybrid-suitable
El Torito img blks : 2 44032
System area options: 0x00000302
System area summary: MBR isohybrid cyl-align-all GPT
ISO image size/512 : 1763992
Partition offset : 16
MBR heads per cyl : 64
MBR secs per head : 32
MBR partition table: N Status Type Start Blocks
MBR partition : 1 0x80 0x00 64 1587136
MBR partition : 2 0x00 0xef 1587200 176128
GPT : N Info
GPT disk GUID : 3230323230363041b130303533353232
GPT entry array : 2 248 separated
GPT lba range : 64 1763928 1763991
GPT partition name : 1 490053004f00480079006200720069006400
GPT partname local : 1 ISOHybrid
GPT partition GUID : 1 3230323230363041b131303533353232
GPT type GUID : 1 a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags: 1 0x1000000000000001
GPT start and size : 1 64 1587136
GPT partition name : 2 490053004f004800790062007200690064003100
GPT partname local : 2 ISOHybrid1
GPT partition GUID : 2 3230323230363041b132303533353232
GPT type GUID : 2 a2a0d0ebe5b9334487c068b6b72699c7
GPT partition flags: 2 0x1000000000000001
GPT start and size : 2 1587200 176128
Onde foi que eu errei? Estou tentando criar meu arquivo de imagem ISO e usá-lo ao vivo
obrigado pela ajuda
sua execução xorriso -as mkisofs não possui pelo menos o separador -eltorito-alt-boot entre -e e suas opções de modificação e -b e suas opções de modificação. Portanto, seu resultado ISO não possui uma entrada El Torito para EFI, porque -e foi substituído por -b.
Seja como for, o fracasso do ISOLINUX não é o culpado por essa falha. Eu acho que é mais sobre a falta de opções de modificação para -b.
Você pode pedir ao xorriso uma proposta sobre as opções relacionadas à inicialização para reproduzir um ISO inicializável (funciona melhor se o ISO foi feito pelo xorriso). Para analisar corretamente as ISOs do Archlinux você precisa do xrriso-1.5.4 ou mais recente, porque a combinação usada de opções de inicialização não é esperada por versões mais antigas.
Nem todos eles precisam ser fornecidos, porque alguns são individuais para a ISO (-V 'ARCH_202206' --modification-date='2022060115352200'). Alguns não são realmente necessários porque o xorriso pode descobrir sozinho (-partition_cyl_align all -partition_hd_cyl 64 -partition_sec_hd 32 -boot-load-size 0).
Comparando com sua lista de opções, aposto nisso como motivo imediato da falha de inicialização via BIOS a partir de meio óptico (virtual):
Mas há mais problemas:
Falta -eltorito-alt-boot, portanto, não há inicialização EFI via meio óptico.
Falta a opção de modificação -e -isohybrid-gpt-basdat, portanto, não há GPT para inicializar por meio de implementações EFI exigentes do pendrive.
Falta -isohybrid-mbr, portanto, não há inicialização via BIOS a partir do pendrive. Em vez disso, há um -G excedente com uma imagem MBR obscura mbr_code.img (de onde você tirou isso?)
O arquivo de entrada obscuro ../compile-linux/bios_boot.img será mapeado para a raiz do ISO.
A sequência de -b e -e é o contrário, mas deve estar ok. O tamanho de carregamento de inicialização 0 para a imagem EFI está correto, porque é muito grande para ter seu tamanho real listado no catálogo de inicialização (o limite é 32 MiB).
Com o xorriso-1.5.4 haveria uma maneira mais simples de manipular o ISO do Archlinux:
(Perguntas xorriso e solicitações de suporte devem ser enviadas para [email protected].)
Tenha um bom dia :)
Thomas
archlinux-2022.06.01-x86_64.iso
é inicializável em um total de quatro maneiras separadas:De acordo com a
archiso
configuração do perfil, os modos de inicialização UEFI incluem até dois carregadores de inicialização separados para as implementações x86 UEFI de 64 bits e 32 bits (x64
eia32
na terminologia UEFI), então você pode dizer que tem um total de seis modos de inicialização.Criar uma fera dessas é complicado, e o Arch tem uma ferramenta dedicada
archiso
para o trabalho - por um bom motivo, eu acho. Eu sugiro que você talvez devesse tentar usá-lo em vez de tentar reinventar a roda. O código-fonte doarchiso
está disponível no Gitlab, se você achar que precisa personalizá-lo.Se estou interpretando o
xorriso
relatório corretamente, sua imagem ISO afirma ser inicializável apenas de duas maneiras:Além disso, em sua imagem, o status do registro de inicialização diz
cyl-align-off
em oposição aisohybrid cyl-align-all
, sugerindo que os vários componentes da imagem ISO podem não estar alinhados corretamente.No real Arch ISO, o MBR indica que a primeira partição (o conteúdo principal do sistema de arquivos Iiso9660) é inicializável no modo BIOS (status 0x80) e possui um ID de tipo de partição de 0x00, o que é típico para sistemas de arquivos ISO9660, pois eles não possuem MBR padrão ID do tipo de partição atribuído. Na sua imagem, o MBR declara a primeira partição como não inicializável e tem um ID de tipo 0x83, que seria o valor esperado para
ext4
outro sistema de arquivos Linux.