Erro: o sistema de arquivos XFS não é válido como um tipo fs padrão

2

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

  1. faz download de uma ISO
  2. descompacta
  3. atualiza o arquivo isolinux.cfg com minha própria opção de menu
  4. recria o ISO usando 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-F1:

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
    
por Sagar 30.04.2018 / 15:22

2 respostas

3

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 /.

    
por 28.06.2018 / 23:11
0

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.

    
por 29.06.2018 / 15:06