Yporti M.D. | Bruno Tsubouchi Yporti

Corrigindo erro no desligamento no Debian Etch com kernel recente

Enviado em Linux, Tutoriais by Bruno Tsubouchi Yporti em Fevereiro 13th, 2008

Esse tutorial se aplica àqueles que usam o Debian Etch com um kernel mais atual que o 2.6.21 e que vêem a seguinte mensagem durante o desligamento:

DISK MIGHT NOT BE SPUN DOWN PROPERLY. UPDATE SHUTDOWN UTILITY
For more info, visit http://linux-ata.org/shutdown.html

Consultando o site indicado acima, você pode ter uma descrição detalhada sobre a causa do problema. Pra resumir, pode-se dizer que a forma como o utilitário Shutdown trabalha usando um kernel mais recente é inadequada, podendo a longo prazo, causar danos ao disco. Para corrigir isso, seria necessário atualizar o script de desligamento, que no Debian, está no pacote sysvinit.

Como pode-se ver na página de changelogs do pacote, isso foi corrigido no dia 23 de dezembro do ano passado, e hoje já está disponível no Debian Testing e Unstable. O problema fica para os usuários do Etch, que não receberam a correção, já que o kernel padrão dessa versão (2.6.18) não é afetado.

O uso de um kernel atual as vezes se faz necessário, principalmente por problemas relacionados a compatibilidade de hardware, motivo que me fez adotar a última versão disponível. E como não queria passar a usar o Lenny por um pequeno problema como esse, resolvi buscar uma solução.

Como o pacote é relativamente recente, não encontrei muitos artigos sobre o assunto, apenas algumas discussões em fóruns onde a única solução era usar gambiarras cuja eficiência era um tanto quanto duvidosa. Pensei em baixar o pacote do Lenny, mas as dependências requerem versões mais atuais da GlibC, então isso não seria possível. Por fim, a solução foi compilar um pacote com a versão atual, assim não teria problema com dependências.

Para os que não desejam fazer todo o processo, disponibilizei os pacotes do Sysvinit atualizados neste apontador. Os pacotes foram compilados para a arquitetura i386 e até o presente momento, não apresentou nem um tipo de problema. Se por motivos de segurança, aprendizado ou as duas coisas, continue lendo para você mesmo criar os pacotes.

Primeiramente, certifique-se que você tem os repositórios oficiais ativados no seu sources.list, incluindo os repositórios de código-fonte (aqueles que começam por deb-src). Pode seguir este apontador para verificar se estão corretos.

Agora, adicione também o repositório de código-fonte do Debian Lenny:

deb-src http://ftp.br.debian.br/debian lenny main

Depois de adicionar os repositórios necessários, atualize a lista de pacotes do apt-get:

# apt-get update

Entre em um diretório de sua escolha – sugiro /usr/src/ - e baixe as dependências de compilação e o código-fonte do pacote sysvinit:

# cd /usr/src/
# apt-get build-dep sysvinit
# apt-get -t lenny source sysvinit

Agora, entre no diretório recém criado do código-fonte do sysvinit:

# cd sysvinit-2.86.ds1

Construa os pacotes com o comando abaixo:

# dpkg-buildpackage -b -us -uc

Depois de terminar o processo, os pacotes .deb estarão no diretório /usr/src/ e só precisam ser instalados:

# cd ..
# dpkg -i *.deb

O comando acima irá instalar todos os pacotes .deb localizados no diretório, verifique antes se não existem outros pacotes lá. Para confirmar, certifique-se de instalar todos os pacotes criados, que devem ser:

initscripts_2.86.ds1-53_i386.deb
sysvinit_2.86.ds1-53_i386.deb
sysvinit-utils_2.86.ds1-53_i386.deb
sysv-rc_2.86.ds1-53_all.deb

Pronto, se quiser, pode apagar o diretório do código-fonte e os demais pacotes para liberar espaço. Tentei ser o mais sucinto possível sem omitir informações importantes, quaisquer dúvidas sobre o processo usado, por favor, use os comentários e responderei assim que puder. Só lembrando que não me responsabilizo por quaisquer danos ou problemas causados pela instalação dos pacotes ou pelos procedimentos aqui descritos.

:~)

Do Debian Etch

Etiquetado como:,

One Response to 'Corrigindo erro no desligamento no Debian Etch com kernel recente'

Subscribe to comments with RSS or TrackBack to 'Corrigindo erro no desligamento no Debian Etch com kernel recente'.

  1. saulimabr said, on Maio 9th, 2008 at 21:42

    Muito bom…. Testado aqui em arquitetura amd64 e funcionou…..

Leave a Reply