AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 708672
Accepted
ahmadreza1383
ahmadreza1383
Asked: 2022-07-06 04:38:52 +0800 CST2022-07-06 04:38:52 +0800 CST 2022-07-06 04:38:52 +0800 CST

Faça iso como "inicializável (setor dos/MBR)" em mkisofs

  • 772

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.

insira a descrição da imagem aqui

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

arch-linux virtualbox
  • 2 2 respostas
  • 310 Views

2 respostas

  • Voted
  1. Best Answer
    Thomas Schmitt
    2022-07-07T00:26:02+08:002022-07-07T00:26:02+08:00

    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.

    $ xorriso -indev archlinux-2022.06.01-x86_64.iso -report_el_torito as_mkisofs
    ...
    -V 'ARCH_202206'
    --modification-date='2022060115352200'
    -isohybrid-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'archlinux-2022.06.01-x86_64.iso'
    -partition_cyl_align all
    -partition_offset 16
    -partition_hd_cyl 64
    -partition_sec_hd 32
    --mbr-force-bootable
    -append_partition 2 0xef --interval:local_fs:1587200d-1763327d::'archlinux-2022.06.01-x86_64.iso'
    -iso_mbr_part_type 0x00
    -c '/syslinux/boot.cat'
    -b '/syslinux/isolinux.bin'
    -no-emul-boot
    -boot-load-size 4
    -boot-info-table
    -eltorito-alt-boot
    -e '--interval:appended_partition_2_start_396800s_size_176128d:all::'
    -no-emul-boot
    -boot-load-size 0
    -isohybrid-gpt-basdat
    

    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):

    • Falta -b opções de modificação: -no-emul-boot -boot-load-size 4 -boot-info-table (Bem, -no-emul-boot entra em vigor por engano.)

    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:

    xorriso -indev archlinux-2022.06.01-x86_64.iso \
            -outdev archlinux.iso \
            ... xorriso manipulation commands like -map or -rm ... \
            -boot_image any replay
    

    (Perguntas xorriso e solicitações de suporte devem ser enviadas para [email protected].)

    Tenha um bom dia :)

    Thomas

    • 1
  2. telcoM
    2022-07-06T23:44:43+08:002022-07-06T23:44:43+08:00

    archlinux-2022.06.01-x86_64.isoé inicializável em um total de quatro maneiras separadas:

    • como um CD/DVD ISO9660 (real ou virtual) no modo BIOS
    • como um CD/DVD ISO9660 (real ou virtual) no modo UEFI
    • como uma imagem HDD no modo BIOS
    • como uma imagem HDD no modo UEFI

    De acordo com a archisoconfiguraçã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 ( x64e ia32na 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 dedicadaarchiso 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 do archisoestá disponível no Gitlab, se você achar que precisa personalizá-lo.

    Se estou interpretando o xorrisorelatório corretamente, sua imagem ISO afirma ser inicializável apenas de duas maneiras:

    • como um CD/DVD ISO9660 (real ou virtual) no modo BIOS
    • como uma imagem HDD no modo UEFI (mas apenas com uma tabela de partição MBR)

    Além disso, em sua imagem, o status do registro de inicialização diz cyl-align-offem oposição a isohybrid 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 ext4outro sistema de arquivos Linux.

    • 0

relate perguntas

  • Nenhum provedor padrão utilizável foi encontrado para seu sistema (VM não reconhecida)

  • Por que às vezes é necessário importar chaves manualmente?

  • Carregar dispositivo na inicialização

  • Acessar VM via IP estático (NAT?)

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve