Eu estava tendo exatamente o mesmo problema até perceber que não tinha atualizado meu ambiente pxe tftpboot para concordar com a mídia atualizada do Centos 7.5, copiando os arquivos da versão Centos-7.5 do centos / 7 / os / x86_64 / isolinux /.
Objetivo final : criar um disco de instalação automatizado para o CentOS, usando um arquivo de configuração do kickstart armazenado em um site interno.
O que eu fiz : criei um script que
isolinux.cfg
com minha própria opção de menu genisoimage
Tudo isso funciona e o ISO é recriado sem erros. No entanto, quando tento usar o ISO, para iniciar uma instalação, o sistema sempre morre em:
"new value non-existent xfs filesystem is not valid as a default fs type"
Pane is dead
Ao contrário de esta pergunta aqui , meu erro acontece antes -instalação, e eu já estou usando lang = en_US.UTF-8
. Eu até tentei en_US
, mas isso não fez diferença.
Linhas adicionadas ao arquivo isolinux.cfg
:
label install
menu label ^Kickstart Installation
menu default
kernel vmlinuz
append initrd=initrd.img text ramdisk=100000 lang=en_US.UTF-8 keymap=us ipv6.disable=1 ip=dhcp install inst.ks=cdrom:/kickstart.cfg
Eu procurei on-line pelo erro, e muitos comentários parecem estar relacionados a versões incompatíveis para o init e o kernel, ou arquivos corrompidos. Eu não estou substituindo nenhum arquivo, e a única alteração que faço é no arquivo de configuração isolinux.cfg
. Não há mistura de arquivos de diferentes versões / DVDs / imagens.
Alguém já viu o que foi dito acima e tem alguma ideia sobre o que devo tentar em seguida? Eu tentei brincar com as opções que estou colocando no arquivo, mas não parece fazer diferença.
Outras informações
Imagem original: CentOS 7.2 - DVD ISO
Estado do sistema:
Ctrl-Alt-F2:
EDITAR
Scriptqueestouescrevendo,conformesolicitado:
#!/bin/bash#############################################################functionprepare{rm-rf${ISO_EXTRACTION_DIR}if[-d${ISO_MOUNT_DIR}]thenumount${ISO_MOUNT_DIR}2>&1||truerm-rf${ISO_MOUNT_DIR}fimkdir-p${ISO_MOUNT_DIR}${ISO_EXTRACTION_DIR}}functionextract_iso{echo"Extracting ISO"
cd $(dirname ${ISO_MOUNT_DIR})
cp -pRf ${ISO_MOUNT_DIR}/* ${ISO_EXTRACTION_DIR}
echo "Extracted $(ls ${ISO_EXTRACTION_DIR} | wc -l) files and directories from ISO"
}
function update_config {
echo "Updating configuration"
cd ${ISO_EXTRACTION_DIR}
if [ -d "isolinux" ]
then
isolinux_cfg_file="${ISO_EXTRACTION_DIR}/isolinux/isolinux.cfg"
else
isolinux_cfg_file="${ISO_EXTRACTION_DIR}/isolinux.cfg"
fi
sed -i 's/timeout 600/timeout 50/' ${isolinux_cfg_file} # Shorten timeout
sed -i '/menu default/d' ${isolinux_cfg_file} # Delete existing menu default
echo "label linux" >> ${isolinux_cfg_file}
echo " menu default" >> ${isolinux_cfg_file}
echo " kernel vmlinuz" >> ${isolinux_cfg_file}
echo " append initrd=initrd.img text ramdisk=100000 lang=en_US.UTF-8 keymap=us ipv6.disable=1 ip=dhcp install inst.ks=cdrom:/kickstart.cfg" >> ${isolinux_cfg_file}
}
function repackage_iso {
echo "Repackaging ISO"
cd ${ISO_EXTRACTION_DIR}
volume_id="${LINUX_DISTRO}-${LINUX_VERSION}-bootable"
if [ -d "isolinux" ]
then
boot_cat_file="isolinux/boot.cat"
isolinux_bin_file="isolinux/isolinux.bin"
else
boot_cat_file="boot.cat"
isolinux_bin_file="isolinux.bin"
fi
iso_file_name="$(echo $(basename ${IMAGE_FILENAME}) | cut -d '.' -f 1)-bootable.iso"
genisoimage \
-U -r -v -T -J -joliet-long \
-V 'CentOS 7 x86_64' \
-volset "${LINUX_DISTRO}-${LINUX_VERSION}" \
-A "${LINUX_DISTRO}-${LINUX_VERSION}" \
-b ${isolinux_bin_file} \
-c ${boot_cat_file} \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e images/efiboot.img \
-no-emul-boot \
-o "${IMAGE_DIR}/${iso_file_name}" .
}
prepare
check_input
mount_iso
extract_iso
unmount_iso
update_config
repackage_iso
Eu estava tendo exatamente o mesmo problema até perceber que não tinha atualizado meu ambiente pxe tftpboot para concordar com a mídia atualizada do Centos 7.5, copiando os arquivos da versão Centos-7.5 do centos / 7 / os / x86_64 / isolinux /.
Eu comecei a trabalhar alguns dias atrás, mas esqueci de postar aqui (desculpe!). Respondendo a minha própria pergunta, caso isso ajude alguém.
Em vez de substituir a opção de menu inteira, eu tive que usar sed
para modificar partes dele para o que eu queria. Não foi tão limpo, mas fez o que eu queria, então eu deixo ser:
sed -i 's/timeout 600/timeout 50/' ${isolinux_cfg_file}
sed -i '/menu default/d' ${isolinux_cfg_file}
sed -i '/label linux/a\
menu default' ${isolinux_cfg_file} # this line is badly indented on purpose. Do not change it.
sed -i 's/quiet//' ${isolinux_cfg_file}
Acho que parte disso foi a opção stage2
ausente na linha append
.
Não aceitarei "Aceitar" esta resposta, caso outra pessoa tenha uma explicação melhor sobre por que isso funcionou versus criar uma nova opção de menu.