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?
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
:Torne-o executável:
Recrie o initrd:
Verifique se o conteúdo do ramdisk realmente contém tune2fs (opcional):
Reinicie e divirta-se!
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á-
tune2fs
lo 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:
No primeiro caso, modificar o processo de geração do initrd para incluir apenas a
tune2fs
invocaçã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.
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
tmpfs
e depoisdebootstrap
executar ping nele) e, empivot_root
vez 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_root
nesta 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.