Upgrade Debian 4.0 (etch) para 5.0 (lenny) - 9 passos para um upgrade feliz

A versão 5.0 (Lenny) da distribuição Debian foi lançada em fev/09. Devido a mudanças significativas nos gerenciadores de pacotes e no próprio kernel, não basta apenas redirecionar os repositórios do APT para se fazer o upgrade da versão 4.0 (Etch) para a 5.0. Este artigo relaciona alguns cuidados a serem observados para uma atualização sem traumas.

[ Hits: 25.927 ]

Por: Cristiano Pezente Ferrari em 22/05/2009


Considerações finais



8. Problemas de enumeração e nomeação de dispositivos podem ocorrer devido a esta atualização. A versão lenny do Debian Linux apresenta um mecanismo de descoberta e reconhecimento de hardware mais robusto que as versões anteriores. Porém, esta funcionalidade pode causar problemas ao rebootar o sistema após a atualização.

Isto ocorre devido a possibilidade de certas mudanças ocorrerem na ordem ou na nomenclatura de alguns dispositivos, especialmente placas de rede e discos. Se sua máquina possui duas placas de rede, por exemplo, as interfaces eth0 e eth1 poderão aparecer invertidas após o reboot. Isto também pode acontecer em um sistema já atualizado, executando o lenny, se você substituir uma das placas de rede, por exemplo.

Para evitar que isto ocorra com as interfaces de rede, você pode usar as regras do udev para fixar a ligação entre os dispositivos físicos e lógicos. O arquivo /etc/udev/rules.d/70-persistent-net.rules possui as regras de enumeração dos dispositivos de rede. E você pode alterar o nome do dispositivo lógico (/dev/eth?) vinculado a cada dispositivo físico (através do MAC address da interface).

Também é possível fazer isso com o utilitário ifrename. Instale o pacote antes de atualizar e consulte sua manpage para decidir qual método usar, mas nunca use ambos ao mesmo tempo.

Outra mudança significativa pode ocorrer nos discos, principalmente se você usa HDs do tipo SATA. Neste caso você pode ser surpreendido ao ver que seus devices que antes atendiam pelo nome de /dev/hd* agora se chamarem /dev/sda*. Se isto acontecer, o kernel não encontrará a raiz do sistema de arquivos e não conseguirá montar suas partições após o reboot. E, você verá uma mensagem parecida com:

Waiting for root file system (esperando pela raiz do sistema de arquivos)

Este problema ocorre quando o upgrade não atualiza o /boot/grub/menu.lst para a nova convenção de nomes destes dispositivos. Assim, durante o boot, o grub passa um endereço de partição errado para o kernel.

Para evitar esta situação você pode alterar seu processo de boot para que ele use identificadores ao se referir aos seus discos, ao invés de usar nomes dos dispositivos. Há duas maneiras de se fazer isso: usando labels ou as UUID, que são suportadas pelo Debian desde o "etch". Ambas possuem vantagens e desvantagens.

Usar labels é mais fácil, mas se tem o risco de ter 2 discos com o mesmo label na mesma máquina. Já as UUID são mais feias e difíceis de referenciar, especialmente por usarem um padrão de nomeação que deixa os discos com identificação parecida com isto: 66b99075-76e2-4d92-aedc-5a375aef9e1e.

Por outro lado, é altamente improvável que você tenha dois discos com a mesma UUID na mesma máquina.

Não abordaremos o método que usa labels, mas, se você se interessa por eles, pode procurar por aqui:
a. Troque a identificação dos discos pelas UUID, antes de reiniciar (e após a atualização), por ser a abordagem mais segura.

Para isso descubra as UUID de suas partições com o comando:

# ls -l /dev/disk/by-uuid

Você terá algo parecido com isto:

lrwxrwxrwx 1 root root 1 2009-03-26 17:26 dc8073ce-d274-429d-8e49-7cb759b2e5c4 -> ../../sda1
lrwxrwxrwx 1 root root 1 2009-03-26 17:26 66b99075-76e2-4d92-aedc-5a375aef9e1e -> ../../sda6

que nada mais é do que um symlink que aponta para o dispositivo que identifica a partição.

Edite o arquivo /boot/grub/menu.lst e localize a linha que se parece com a linha abaixo:

# kopt=root=/dev/hda6 ro

E a substitua por:

# kopt=root=UUID=66b99075-76e2-4d92-aedc-5a375aef9e1e ro

(!) O sinal # é necessário, obrigatório e deve ser mantido.

(!!) Note que a UUID usada acima (66b99075-76e2-4d92-aedc-5a375aef9e1e) é apenas um exemplo e não corresponde a uma constante. Você deverá identificar a UUID que corresponde à sua partição raiz e substituí-la por ela. Do mesmo modo, hda6, sda6 são exemplos hipotéticos.

Atualize as linhas do kernel no menu.lst através do comando:

# update-grub

Edite o arquivo /etc/fstab e altere a linha que monta a partição raiz (/). Por exemplo, troque:

/dev/hda6   /   ext3   defaults,errors=remount-ro 0 1

Por:

UUID=66b99075-76e2-4d92-aedc-5a375aef9e1e   /   ext3 defaults,errors=remount-ro 0 1 #tudo na mesma linha

b. Se você não atualizou a identificação dos discos antes do reboot e está tendo problemas, pode efetuar estas mudanças diretamente pelo menu do grub, antes de entregar o boot para o kernel.

Na splash screen do grub, ou seja, a tela do grub onde você seleciona por qual imagem irá bootar o sistema, tecle ESC antes que o carregamento do kernel se inicie.

Selecione a linha que representa a imagem pela qual você pretende iniciar o boot e pressione a tecla "e" para editá-la. Você verá algo parecido com:

root (hd0,0)
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
initrd /initrd.img-2.6.26-1-686

Selecione a linha que se inicia pela palavra "kernel" e pressione a tecla "e" novamente para que o grub permita que você edite o conteúdo desta linha.

Substitua então a identificação do disco de /dev/hda6 por /dev/sda6, lembrando que hda6 e sda6 são nomes hipotéticos para identificar sua partição raiz. Não modifique a entrada root (hd0,0).

Pressione a tecla "Enter" para confirmar a modificação e a tecla "b" para confirmar o boot.

(!) Note que estas alterações não são permanentes e servem somente para o processo boot em que foram executadas. Quando a máquina for reiniciada novamente, o problema persistirá e, para torná-la permanente, execute a etapa "a" deste passo, após concluir o boot.

c. Outras 2 maneiras de corrigir o problema da nomenclatura dos discos são possíveis utilizando o modo de recuperação do próprio CD/DVD de instalação do Debian ou um LiveCD de qualquer distro Linux, que lhe permita montar a partição que contem o diretório /boot e editar manualmente os arquivos /boot/grub/menu.lst e /etc/fstab. Lembre-se apenas que atualização das linhas "kernel" no menu.lst, nestes casos, tem que ser feita manualmente.

9. Não se esqueça de reconfigurar o bootloader antes do reboot, conforme descrito no passo anterior, e, se você usa o LILO, execute o comando:

# /sbin/lilo

Depois disso, reveja o conteúdo do arquivo /etc/kernel-img.conf e certifique-se que a entrada do_bootloader = Yes existe nele.

Observe que esta atualização é necessária mesmo que você não tenha atualizado o kernel.

----

Este tutorial foi inteiramente baseado no capítulo 4 das release notes do Debian 5.0:
Alguns trechos foram traduzidos literalmente, outros adaptados livremente.

Página anterior    

Páginas do artigo
   1. Antes de tudo, previna-se
   2. Prepare o gerenciador de pacotes
   3. Atualize o gerenciador de pacotes
   4. Atualize a distribuição
   5. Considerações finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Slackware no notebook Toshiba Satellite M55-S3262

HP LaserJet 1020 em LTSP

Entendendo o boot-update

Configurando DNS (bind9) no Debian Sarge

Entendendo TCP/IP (parte 2) - Endereços IP

  
Comentários
[1] Comentário enviado por brunobns em 22/05/2009 - 23:28h

Eu consegui atualizar do Etch para o Lenny apenas modificando os repositorios...o Kernel também foi atualizado, será que há risco de ocorrer algum problema? Muito bom o artigo, abraço!

[2] Comentário enviado por boxmga em 25/05/2009 - 08:47h

<quote>
Eu consegui atualizar do Etch para o Lenny apenas modificando os repositorios...o Kernel também foi atualizado, será que há risco de ocorrer algum problema? Muito bom o artigo, abraço!
</quote>

Na realidade acredito que não. Usualmente a atualização do debian requer apenas a modificação do repositório. No caso da atualização em questão, há alguns pormenores que **podem** deixar o sistema inacessível no primeiro boot, caso da incompatibilidade da libc ou mudança na nomenclatura dos dispositivos de I/O e armazenamento. Mas isto vai depender totalmente do seu hardware.

Se atualizou e deu certo, me parece que está tudo ok.

[3] Comentário enviado por landex em 17/06/2010 - 11:46h

Poxa legal, vou ver se instalo o Debian qualquer hora no meu note...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts