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 / 747437
Accepted
Daniel
Daniel
Asked: 2023-05-29 16:11:55 +0800 CST2023-05-29 16:11:55 +0800 CST 2023-05-29 16:11:55 +0800 CST

Como alterar a opção do sistema de arquivos casefold ext4 da partição raiz, se eu tiver apenas acesso ssh

  • 772

Eu preciso habilitar o recurso do sistema de arquivos que não diferencia maiúsculas de minúsculas (casefold) no ext4 de um servidor Debian 11 com um kernel linux 6.1 com backport com as opções necessárias compiladas.

O servidor tem uma partição swap de 2 GB e uma grande partição ext4 para o sistema de arquivos, a partir da qual ele também inicializa. Eu só tenho acesso ssh como root e não posso acessar o próprio host físico/virtual, então não tenho acesso a sticks USB (virtuais) ou mídia de CD-ROM.

Qual é a maneira mais rápida de habilitar o recurso casefold? tune2fs não quer fazer isso porque o sistema de arquivos está montado.

Idéia: Elimine o swap, instale um pequeno sistema de resgate nele, reinicie no referido sistema de resgate, altere as opções do sistema de arquivos da partição raiz, reinicie na partição ativa e restaure o swap. Para que isso funcione, no entanto, preciso preparar um sistema linux extra apenas para executar o comando tune2fs necessário.

Existe uma maneira melhor? Algum sistema de resgate que eu já possa usar e pré-configurar para as configurações de rede necessárias após uma reinicialização?

linux
  • 3 3 respostas
  • 899 Views

3 respostas

  • Voted
  1. Daniel
    2023-05-29T19:32:16+08:002023-05-29T19:32:16+08:00

    Graças a @Marcus Müller consegui. O truque é adicionar tune2fs na imagem initrd e chamá-lo durante a inicialização.

    Crie o script para initramfs-utils:

    cat > /usr/share/initramfs-tools/scripts/local-premount/ext4_casefold << 'EOF'
    #
    # ext4_casefold
    #
    # initrd script to add the casefold option to the root filesystem
    #
    
    DEVICE=/dev/sda2
    
    prereqs()
    {
        . /usr/share/initramfs-tools/hook-functions 
        copy_exec /usr/sbin/tune2fs usr/sbin/tune2fs
    }
    
    case $1 in
    # get pre-requisites
    prereqs)
            prereqs
            exit 0
            ;;
    esac
    
    echo "Adding casefold option to $DEVICE"
    sleep 5
    /usr/sbin/tune2fs -O casefold $DEVICE
    echo "If everything went well, we added the casefold option to $DEVICE"
    sleep 5
    
    EOF
    

    Torne-o executável:

    chmod a+x /usr/share/initramfs-tools/scripts/local-premount/ext4_casefold
    

    Recrie o initrd:

    update-initramfs -u
    

    Verifique se o conteúdo do ramdisk realmente contém tune2fs (opcional):

    INIT_RD_IMAGE=initrd.img-6.1.0-0.deb11.7-amd64
    rm -rf /root/initrd
    mkdir /root/initrd
    cp /boot/$INIT_RD_IMAGE /root/$INIT_RD_IMAGE.gz
    gunzip /root/$INIT_RD_IMAGE.gz
    cd /root/initrd
    cpio -id < /root/$INIT_RD_IMAGE
    

    Reinicie e divirta-se!

    • 13
  2. Best Answer
    Marcus Müller
    2023-05-29T17:31:21+08:002023-05-29T17:31:21+08:00

    Eu gosto da sua abordagem; é limpo porque não requer modificação dos dados em seu sistema principal.

    E, sim, acho que se você quiser executá- tune2fslo por uma grande margem, a solução mais fácil é executá-lo a partir de um Linux em execução, para que não haja uma maneira real de executá-lo quando o sistema de arquivos principal não estiver montado .

    Não acho que sua configuração de rede seja importante – você sabe exatamente o que deseja que seu sistema faça; pré-configurar a rede para fornecer a você um shell SSH será mais difícil do que apenas executar tune2fs … /dev/disk/by-partuuid/…um script que é executado de forma autônoma (e que então segue para fazer o que é necessário para inicializar seu sistema normal).

    Agora, duas opções:

    1. Seu debian atualmente inicializa usando um initrd contendo um initramfs (espero que sim)
    2. Não.

    No primeiro caso, modificar o processo de geração do initrd para incluir apenas a tune2fsinvocação necessária, gerar um novo initrd, inicializando com ele, é provavelmente o mais fácil. Lembre-se, initrds são realmente o que você deseja evitar construir: sistemas Linux completos personalizados (que por acaso são as maneiras da distribuição Linux de inicializar o sistema antes de montar o sistema de arquivos raiz e continuar o processo de inicialização principal). É só que o debian já os constrói para você, de qualquer maneira :)
    Devo admitir que já faz uma década (ou mais) desde que fiz algo assim para um debianoid Linux, então não sou de muita ajuda em como ; verifique a documentação do debian (infelizmente aparentemente um pouco esparsa/desatualizada) e veja o que você tem em /etc/mkinitrd.

    No segundo caso, sua abordagem parece sensata.

    • 10
  3. Bob
    2023-05-31T10:40:43+08:002023-05-31T10:40:43+08:00

    A abordagem que usei no passado para a modificação remota do sistema de arquivos raiz é configurar um sistema operacional leve em um ramdisk (por exemplo, montando um tmpfse depois debootstrapexecutar ping nele) e, em pivot_rootvez disso, usar para executar esse ramdisk. Com um pouco de limpeza, você pode desmontar o sistema de arquivos raiz e continuar fazendo suas alterações. Tudo isso pode ser feito ao vivo sem exigir uma reinicialização do sistema em nenhum momento - embora, é claro, uma reinicialização no final seja provavelmente uma boa ideia para trazer o sistema de volta a um estado limpo.

    Uma vantagem de usar essa abordagem é que você deve ser capaz de manter uma conexão remota durante o processo e resolver quaisquer problemas que possam surgir ao fazer as alterações. Você também pode tentar uma montagem de teste do sistema de arquivos modificado antes da reinicialização final.

    Há um guia muito abrangente para o uso pivot_rootnesta resposta a uma pergunta semelhante . Essa resposta copia as partes principais do sistema existente para o ramdisk - o que facilita muito a preservação do acesso ssh e outras ferramentas.

    • 1

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

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