É normal que seja necessário um reinício para montar o USB após uma atualização do kernel?

5

Às vezes, vejo o kernel do Linux sendo mencionado na lista de atualizações, ao executar pacman -Syu (atualizando meus pacotes no Arch Linux). Sempre que isso acontece, após a instalação dos pacotes, não consigo mais montar unidades USB até que eu reinicie. Eu gostaria apenas de saber se isso é algo comum e esperado (e, se é assim, por que, pergunto), ou se isso é algo que eu não deveria esperar investigar.

    
por user 26.01.2012 / 21:55

2 respostas

7

Provavelmente, nessa distribuição, é normal. Depende de como o gerenciador de pacotes instala o novo kernel.

Suponho que o seu gerenciador de pacotes (ao atualizar o kernel) apague o diretório antigo do kernel-modules imediatamente. Dessa forma, quando você tentar montar um stick USB formatado com vfat , o kernel falhará ao carregar o módulo de kernel vfat necessário.

Para verificar minha suposição, da próxima vez que você atualizar o kernel, você pode verificar a existência do diretório do módulo do kernel:

  • antes da atualização, você deve descobrir que existe um diretório chamado de versão do kernel atual (a antiga).

    ~> ls -d /lib/modules/'uname -r'
    /lib/modules/3.0.0-1.2-desktop
    
  • após a atualização, mas antes da reinicialização, você deve descobrir que o diretório não existe mais (portanto, não é possível gerenciar o novo hardware).

    ~> ls -d /lib/modules/'uname -r'
    ls: cannot access /lib/modules/3.0.0-1.2-desktop: No such file or directory
    
  • após a reinicialização, você deve descobrir que existe um novo diretório de módulos do kernel nomeado como a atual (a nova) versão do kernel.

    ~> ls -d /lib/modules/'uname -r'
    /lib/modules/3.1.0-1.4
    

Para evitar esse problema, outras distribuições (como o openSuSE) atrasam a exclusão do diretório até que você reinicie.

    
por 26.01.2012 / 23:28
1

Sim e não. Idealmente, um reinício não seria necessário, mas pode ser difícil de organizar na prática.

Você deve poder continuar usando os tipos de dispositivos que você já usou nesta sessão. O problema ocorrerá se você tentar usar um novo tipo de dispositivo (ou formato de sistema de arquivos, ou protocolo de rede, etc.) que exija o carregamento de um módulo. Os módulos para o novo kernel podem não ser compatíveis com o que está em execução.

Se for uma pequena atualização de segurança que não alterou nenhuma interface binária, novos módulos ainda serão executados. Sua distribuição deve ter organizado para compilar o novo kernel com uma indicação de que a compatibilidade binária não foi afetada (mesmo uname -r output).

Se é uma grande atualização que mudou a versão do pacote do kernel, você pode manter tanto o pacote antigo quanto o novo até a próxima reinicialização. Dessa forma, os módulos ainda serão carregados do pacote antigo.

O problema surge quando uma atualização sobrescreve o kernel e os módulos existentes, mas altera a compatibilidade binária. Idealmente, as distribuições não fariam isso. Se você tiver sorte, você pode forçar um módulo a ser carregado com modprobe --force-vermagic --force-modversion ; Cuidado, pois isso pode causar falhas, corrupção de dados e morte de filhotes se houver incompatibilidades binárias: use por sua conta e risco.

    
por 27.01.2012 / 01:49