"Usando" 2 Slackwares instalados no mesmo HD - O problema: vmlinuz

Bem, se você tem curiosidade de experimentar uma nova versão do Slackware e não tem certeza se vai dar tudo certo (sem apagar a sua distro instalada), a situação que aqui descrevo pode acontecer com você. Irei me restringir apenas a explicar como fazer com que o sistema encontre o vmlinuz de cada partição, em particular, das partições dos 2 Slacks instalados.

[ Hits: 21.001 ]

Por: lindberg em 05/07/2006


Resolvendo o problema



Essa lâmpada na realidade foi um intuito que deu certo. Quem é Slackware sabe do que eu estou falando. Tem de ter a grande sacada. Tem que pegar a idéia, entrar no jogo. "And I take it!!". Qual era o problema? A máquina estava bootando de um mesmo vmlinuz para os dois Slacks. Quem entender mais de informática do que eu pode explicar melhor essa loucura, mas eu sei que o que estava acontecendo era realmente isso. A solução foi, mais uma vez, enganar a máquina.

Quando configurava o LILO a partir do Slack 9.1, esta partição, de certa forma, se torna a raiz e sempre que se referia a um vmlinuz, a MBR sempre procurava o mesmo desta raiz para os dois. Fazendo isso a partir do Slack 10.2, ficou assim:

# vi lilo.conf

boot="/dev/hda"
lba32
prompt
timeout="30"
root=/dev/hda5
vga="791"

image=/boot/vmlinuz
   label="Slack10"
   root=/dev/hda4
   read-only

image=/boot/vmlinuz
   label="Slack9"
   root=/dev/hda5
   read-only

other=/dev/hda1
   label="Windows"

De alguma forma eu tinha agora que fazer com que a máquina discernisse o /boot/vmlinuz entre a partição /dev/hda4 e /dev/hda5, partições do Slack 10.2 e Slack9.1, respectivamente. Como fiz? Estando dentro do 10.2, renomeei o /boot/vmlinuz desta partição (/dev/hda4) referente ao Slack 10.2 para /boot/vmlinuz10, e o mesmo arquivo da partição /dev/hda5 (do Slack 9.1), para /boot/vmlinuz9:

boot="/dev/hda"
lba32
prompt
timeout="30"
root=/dev/hda5
vga="791"

image=/boot/vmlinuz10
   label="Slack10"
   root=/dev/hda4
   read-only

image=/boot/vmlinuz9
   label="Slack9"
   root=/dev/hda5
   read-only

other=/dev/hda1
   label="Windows"

Salvei, executei o LILO como de "prache":

# lilo

Mas ao dar o boot novamente, ainda vi que ele não discernia entre o vmlinuz9 e o vmlinuz10. Até agora, apenas havia o "eureca". Só sabia que o problema era esse. Mas agora sim, foi quando veio a "grande sacada". A pasta /boot continua a mesma para ambas as partições. Como não posso mudar a pasta, mudo então o direcionamento do arquivo. Essa é a sacada. Em outras palavras, mandei que, ao buscar o arquivo /boot/vmlinuz9, ele buscasse o /dev/hda5/boot/vmlinuz9, ou seja, criei um "link simbólico" para o vmlinuz9, que obviamente está em outra partição:

# ln -sf /dev/hda5/boot/vmlinuz9 /boot/vmlinuz9

Mas o link simbólico ficou com uma cor diferente (que geralmente é azul). Ficou VERMELHO. Fiquei em alerta com isso. Restartei a máquina e ele continuou carregando o vmlinuz errado. Voltei para o Slack 10.2...

Voltei pra mais um golpe contra a máquina, desta vez mortal. Ele não reconheceu quando coloquei /dev/hda5/boot/vmlinuz9, porque isso é um dispositivo e não uma partição. Ele é DIRECIONADO para a partição (assim pensei). Massa... então: já que estava montada no diretório /slack9, direcionei o link simbólico para esta pasta. Eis a sacada:

# ln -sf /slack9/boot/vmlinuz9 /boot/vmlinuz9

e o lilo permaneceu:

boot="/dev/hda"
lba32
prompt
timeout="30"
root=/dev/hda5
vga="791"

image=/boot/vmlinuz10
   label="Slack10"
   root=/dev/hda4
   read-only

image=/boot/vmlinuz9
   label="Slack9"
   root=/dev/hda5
   read-only

other=/dev/hda1
   label="Windows"
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O problema
   3. Resolvendo o problema
   4. Conclusões e pretensões
Outros artigos deste autor

Instalação do winmodem HSP56 Pctel no Slackware

Atualizando sua versão Slackware - upgrade de pacotes

Metodologia LFS - Contruindo seu Linux do zero

Instalando e Configurando o Modem HSP56 MicroModem no RedHat 9.0

Configurando Placa Wireless Broadcom BCM43142 no SlackWare 14.2

Leitura recomendada

Virtualização para servidores com VirtualBox

Configurar som (CMI-8738 e VIA AC'97)

Passo-a-passo: Instalação de uma placa Wireless

Configurando o CACIC (parte 5)

Indicador de Caps Lock

  
Comentários
[1] Comentário enviado por removido em 05/07/2006 - 19:10h

um... achei que fez muito barulho pra poca coisa, mais ta valendo, muito bom

[2] Comentário enviado por rapatao em 05/07/2006 - 22:24h

mais uma vez usamos o talento pra resolver ações simples :D
poderia ter criado uma partição /boot comum para os dois sistemas, assim os vmlinuz ficariam no mesmo lugar e não geraria esse problema!
Apesar que muito pouca gente faz isso e essa sua solução vem bem a calhar em muitos casos ehhehe

[]'s

[3] Comentário enviado por jllitvay em 06/07/2006 - 07:21h

Uma solução que encontrei para esses casos do lilo, é na instalação do slackware, quando chegar na etapa de configurar o lilo,
use o modo expert e não o modo simples.
Assim voce pode definir muitos detalhes, como as partições de boot, windows, partições onde o lilo deve ser gravado, outras instalações linux...

[4] Comentário enviado por davidsonpaulo em 06/07/2006 - 09:53h

Salve Lindberg!

Veja: no seu lilo.conf, você colocou assim:

boot="/dev/hda"
lba32
prompt
timeout="30"
root=/dev/hda5
vga="791"

O problema é a opção "root=/dev/hda5", inserida no local das configurações globais. Bastava você ter comentado essa linha, pois já existe um "root=/dev/hdxx" para cada imagem do kernel. O link simbólico é, portanto, desnecessário. Renomear os kernels é necessário.

Procedimento 50% correto. Mas se funciona, tá valendo.

Abraços

[5] Comentário enviado por removido em 06/07/2006 - 11:00h

[editado]
Parece que eu e o davidsonpaulo escrevemos na mesma hora, eu perguntando e ele respondendo.

Caras, não entendo muito o LILO, mas eu queria saber sobre as opções globais desse exemplo:

boot="/dev/hda"
lba32
prompt
timeout="30"
root=/dev/hda5
vga="791"

Qual a função do comando root nessas opções globais? Eu procurei na Internet e só achei que "é opcional e se não for mencionada será usada uma configuração padrão".
Será que essa linha é que estava fazendo o lilo carregar o vmlinuz que está dentro dessa partição indicada pelo parâmetro root?

[6] Comentário enviado por davidsonpaulo em 06/07/2006 - 11:24h

A opção root serve para especificar em qual partição a imagem do kernel será encontrada. Se ela for colocada na seção de configurações globais, o LiLo vai procurar a imagem do kernel sempre na partição referida. É por isso que, no caso do Lindberg, a imagem da partição /dev/hda6 não estava sendo encontrada, porque ele estava procurando no /dev/hda5.

A opção root deve ser inserida na seção específica de cada imagem:

image=/boot/vmlinuz10
root=/dev/hda5
label=Slackware-10.2
read-only

É isso. Abraços

[7] Comentário enviado por removido em 06/07/2006 - 13:05h

também axei, muito barulho pra poca coisa! Mas pra novatos pode ser útil...
"Sou um cara acomodado", ainda por cima é a cara do Zeca Pagodinho... :) Vão te confundir hein!

Deus te abençoe!
Abraços

[8] Comentário enviado por irado em 06/07/2006 - 15:18h

bem.. já disseram o suficiente sôbre o barulho. Eu acho que falta ao colega lindbergluiz o ter estudado um pouco mais os FAQ's/HowTo's disponíveis em quase todo canto. Tenho 4 linux diferentes na minha máquina, em 3 hd's diferentes, mais uma versão recente do FreeBSD. O /home está num hd secundário. Tudo administrado pelo Lilo (o /home e o /boot pelo fstab), que não é todo êsse pavor que foi colocado. Uma partição /boot separada mantém 4 vmlinuz (vmlinuz-slack9, vmlinuz-slack10.. ) e não dá problema algum.
Para os novatos, o artigo pode dar a impressão (errônea) de que o Linux compartilhando um hd é complicado.


[9] Comentário enviado por removido em 06/07/2006 - 15:27h

Gente, depois de toda essa confusão, será que o lindbergluiz podia apagar ou editar o artigo?

Vai que alguém lê o artigo e não olha os comentários, pode ter dor de cabeça se não conhecer tanto...

[10] Comentário enviado por allanhc em 07/07/2006 - 08:08h

Bem pessoal, eu discordo de vocês um pouco pois tive que fazer o mesmo que ele aqui, porem descobri bem rapido e foi bem facil resolver.
A tempos resolvi instalar o kurumin para ver como era e não consegui fazer o meu lilo do slack chamar o kernel do kurumin, resultado... fiz o lilo do slack chamar o grgub do kurumin que estava instalado no primeiro registro da partição dele(isso foi idiota, mas só queria ver o kurumin mesmo não preocupei).
Tenho muitas partições na minha maquina e nunca quis e continuo sem querer criar uma partição só para o /boot, já apanho para as que tem aqui.
Sempre usei slack, nunca tive problemas deste tipo, mas depoisde um tempo resolvi instalar o debian e botar le pra funcionar, ai veio novamente este problema.
Como o lilo não carregou o kernel do debian na outra partição a primeira coisa que pensei fio copiar o kernel do debian para o /boot do slakc, mas antes resolvi tentar algo e coloquei no lilo o caminho da partiçao do debian montada no slack, e..... funcionou.
Hj uso o Gentoo na partição de teste(desisti do debian) e funciona da mesma forma. aqui tem o meu lilo sem os comentarios que tem nele:

# LILO configuration file
boot = /dev/hda
bitmap = /boot/boot.bmp
bmp-colors = 14,0,0,0,14,0
bmp-table = 61,15,1,3
bmp-timer = 73,29,15,0,0
prompt
timeout = 100
default = Slackware
change-rules
reset
vga=791
# End LILO global section
# Linux bootable partition config begins - Gentoo
image=/testing/boot/kernel-2.6.16-gentoo-r7
root=/dev/hda6
label = Gentoo
append="mtrr,ywrap splash=verbose,fadein,fbcon=scrollback:128K,theme:emergence CONSOLE=/dev/tty1"
read-only
# Linux bootable partition config ends
# Linux bootable partition config begins - Slackware
image = /boot/vmlinuz
root = /dev/hda5
label = Slackware
read-only
append="hdc=ide-scsi"
# Linux bootable partition config ends
# Windows bootable partition config begins - Windows no HDB
other=/dev/hdb1
label=Testing
table=/dev/hdb
map-drive=0x80
to=0x81
map-drive=0x81
to=0x80
# Windows bootable partition config ends

Para quem não quer ter o /boot em uma partição separada, nosso amigo lindbergluiz deixou aqui uma solução, que inclusive é bem simples, pareceu complicada pois ele explicou todo o processo para a solução. Quem já passou por isso não vê complicação nenhuma, e ate consegue se identificar com ele pois é explicado detalhadamente todos os passos tomados por ele e porque cada um não funcionou. Só faltou mesmo explicar que quem tem o /boot em outra part. não é necessário nada disso. Mas ele mesmo afirmou que não sabe o motivo do problema e que não entendia bem o que o Lilo fazia e deixou aberto a comentarios que pudessem esclarecer.

Eu por não ser acomodado que deixei meu lilo assim(não criei a partição para o /boot), pois se fosse acomodado teria feito o que todo mundo faz ao inves de achar a solução do meu interesse.

Eu sinceramente fiquei meio decepcionado com alguns comentarios que fazem parecer que só existe uma opção(criar a /boot em outra part.), isso sim deixa os novatos insatisfeitos, pelo menos os novatos em busca de aprendizado. Porque ao inves de receber a explicação do porque que não funciona do jeito que ele quer(se realmente não funciona) ou como fazer funcionar, recebem sempre respostas que levam a caminhos básicos, padrões e muitas das vezes restritos, e é justamente por isso que eu uso o linux, cansei de ter que me adaptar ao sistema.

Espero ter deixado claro meu ponto de vista aqui sem complicar ou criar qualquer confusão, e desculpem pelo post gigante.

Abraços.

[11] Comentário enviado por removido em 07/07/2006 - 08:20h

Alanhc, concordo com o seu ponto de vista, mas o que faz esse artigo ser polêmico é que o nosso colega usou uma opção "root" nas configurações globais e isso confundiu o lilo.

Como o davidsonpaulo já explicou, apenas remover a opção "root" da configuração global já resolveria o problema do lindbergluiz.

[12] Comentário enviado por allanhc em 07/07/2006 - 17:40h

xisberto, estas certo, Aquele "root=/dev/hda5" não deveria estar lá não, mas no meu caso não tem o root nas conf. globais e mesmo assim tive que fazer o mesmo que ele, colocar o caminho do kernel já em uma pasta montada, porem ele fez isso atrraves de um link simbolico e eu coloquei o proprio caminha.

Eu até entendo a checagem que o lilo faz ao dar o comando "#lilo" ele teria que ver o kernel para saber se esta correto, mas mesmo assim acho q tem algo estranho.

Alguem sabe dizer o porque disso?

[13] Comentário enviado por lindbergluiz em 09/07/2006 - 11:53h

Agradeço à TODOS, sem exceção!!! Assim como sou um ótimo aluno, todos vocês são ótimos professores.

Em relação à "muito barulho pra pouca coisa", sou muito detalhista e quiz que todos ficassem sabendo de cada "vígula" do processo. Foi muito estressante pra mim ter de sair descubrindo tudo aos poucos e dar a grande sacada no fim ( sacada de amador, mas pra não ter de pesquisar detalhes, fiz a gambiarra).

Uma frase resume tudo:

FOREVER LINUX.

[]'s

[14] Comentário enviado por removido em 16/07/2006 - 17:44h

Muito dez kra..
vlw..
vo tenta instala...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts