Iniciando o USB com o arquivo iso personalizado

0

Estou seguindo as etapas da documentação do Ubuntu link

Eu tentei substituir a etapa final que usa mkisofs com xorriso, não ajudou. O meu stick USB não vai ser reservado, eu recebo um aviso em branco. Acho que pode estar relacionado ao sistema de arquivos (Hidden NTFS / FAT em vez de VFAT), mas alterá-lo usando o cfdisk não reslove o problema. A tabela de partição é "dos", parece bem e / dev / sdb1 está ativo também conhecido como inicializável. A imagem original .iso é o novo servidor Ubuntu 17.10 e modificado um é copiado usando dd. Os arquivos do sistema não são tocados em uma versão modificada.

Se eu tentar instalar o syslinx no USB depois (syslinux -i / dev / sdb) recebo o seguinte erro: "syslinux: assinatura de mídia inválida (não um volume FAT / NTFS?)"

Se eu carregar o .iso para USB usando o unetbootin, o sistema carregará bem. Eu só tive que fazer isolinux - > renomeie sysline para evitar o prompt de inicialização padrão do unetbootin.

Gostaria de poder fazer o script desta última etapa sem usar X ou interação com o usuário.

Algumas etapas relevantes:

sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

sudo chmod a+w extract-cd/casper/filesystem.size
printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size


cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v syslinux/boot.cat | sudo tee md5sum.txt
cd ..

xorriso -as mkisofs \
  -o xgogi.iso \
  -isohybrid-mbr /usr/lib/SYSLINUX/mbr.bin \
  -c syslinux/boot.cat \
  -b syslinux/syslinux.bin \
   -no-emul-boot -boot-load-size 4 -boot-info-table \
  extract-cd/

#copy to USB works, needs X
sudo unetbootin lang=en method=diskimage isofile=xgogi.iso installtype=USB targetdrive=/dev/sdb1 autoinstall=yes

# doesn't work and I am badly frustrated why
sudo dd bs=4M if=gogi.iso of=/dev/sdb
    
por kometonja 25.11.2017 / 21:21

2 respostas

0

Como você descobriu, você precisa de um MBR especialmente preparado como entrada para o xorriso. Tem o trabalho incomum de encontrar e iniciar o programa "isolinux.bin" dentro do ISO.

O projeto SYSLINUX oferece um MBR adequado sob o nome "isohdpfx.bin". O pacote binário Debian "isolinux" tem como /usr/lib/ISOLINUX/isohdpfx.bin.

Embora haja pouco desenvolvimento no SYSLINUX, deve-se tomar cuidado para combine isohdpfx.bin e isolinux.bin apenas de versões compatíveis. Então quando modificando um ISO e mantendo seu arquivo isolinux.bin é aconselhável extrair os primeiros 432 bytes desse ISO e usá-los como entrada MBR. (Não é prejudicial para copiar todos os 512 bytes do primeiro bloco. o xorriso irá sobrescrever os bytes excedentes com valores apropriados.)

    
por Thomas Schmitt 26.11.2017 / 08:26
0

Meu mbr.bin estava incorreto. Em vez disso, tive que criar um novo a partir do .iso original. Assim:

$ sudo dd if=ubuntu-16.04-desktop-amd64.iso bs=512 count=1 of=custom-iso/isolinux/isohdpfx.bin

Encontrado neste belo artigo: link

    
por kometonja 25.11.2017 / 23:22