Configurao do LILO (LInux LOader) Introduo 11.. PPrrooppóóssiittoo O _L_i_n_u_x pode ser inicializado usando-se mecanismos diferentes. A inicializao envolve a leitura e a alocao na memória do arquivo do kernel (às vezes chamado zImage, às vezes vmlinuz), e então sua execuo. Apesar de isso parecer simples, há vários detalhes para se levar em conta, e é por isso que inicializar um sistema operacional é um tipo de ``arte obscura''. Diferentemente de outros carregadores feitos para outros sistemas operacionais comerciais, o _L_I_L_O é completamente documentado e é de longe, um dos carregadores mais versáteis existente. Primeiro será explanado o que está envolvido com o LILO, e depois o quê você pode fazer com ele. 22.. OOss pprriinnccííppiiooss ddoo LLIILLOO Sem se aprofundar demais, segue uma explicao sobre do que se trata inicializar uma máquina PC: 22..11.. OO pprriimmeeiirroo hhaabbiittaannttee:: oo BBIIOOSS Quando um PC inicializa, o primeiro programa a assumir o controle é o _B_I_O_S, que é residente na _R_O_M. Depois de inicializar a maior parte do hardware de sua máquina, é carregado um programa pequeno, que normalmente se encontra no primeiro setor de um disquete ou no primeiro setor de um disco rígido. Este programa é chamado de _M_B_R ou _R_e_g_i_s_t_r_o _M_e_s_t_r_e _d_e _I_n_i_c_i_a_l_i_z_a_o. 22..22.. DDoo MMBBRR ddoo ddiissccoo rrííggiiddoo aaoo SSOO O _M_B_R do disco rígido, usando o BIOS, faz uma ao entre duas opes: A primeira possibilidade (como o MBR incluído com o DOS) é que ele localiza a partio ativa e carrega o primeiro setor _d_e_s_s_a partio. Esse setor contém um programinha bem pequeno que sabe um pouco mais sobre detalhes internos do _s_i_s_t_e_m_a _o_p_e_r_a_c_i_o_n_a_l que está nessa partio. Ele irá carregar ou os componentes básicos do sistema ou simplesmente outro carregador de inicializao mais sofisticado que terminará o trabalho. A segunda possibilidade é que o MBR do disco rígido possa carregar informaes diretamente de uma das parties, e usá-las para carregar sistemas operacionais em qualquer partio. O LILO pode ser configurado dessa maneira, assim como o carregador de inicializao do OS/2 e o Partition Magic, dois carregadores bem conhecidos. 22..33.. OO sseettoorr ddee iinniicciiaalliizzaaoo ddoo ddiissqquueettee O setor de inicializao de um disquete pode ser comparado ao setor de inicializao de uma partio ativa. Normalmente, é processada a carga do sistema operacional presente no próprio disquete. 22..44.. EE oo LLIILLOO O _L_I_L_O é extremamente flexível, e aqui está o porquê: · Ele pode ser instalado ou como um substituto ao _M_B_R ou como o setor de inicializao de uma partio, e ainda inicializar o _L_i_n_u_x e muitos outros SOs de qualquer partio ou drive. · Ele pode ser instalado no setor de inicializao de um disquete e ainda fazer sua tarefa normal de inicializar quase tudo no(s) disco(s) rígido(s). · Fora o setor de inicializao, ele não tem arquivos escondidos, nem usa uma partio especial. E além disso, seus arquivos de configurao podem ser instalados em qualquer partio, até mesmo naquelas que não são _L_i_n_u_x, e até num subdiretório de uma partio _D_O_S. · Ele pode inicializar várias configuraes diferentes de kernel e até mesmo vários kernels diferentes. · Ele pode inicializar mais de uma instalao do _L_i_n_u_x. · Ele pode inicializar o _L_i_n_u_x em qualquer drive. 22..55.. OO LLIILLOO,, oo LLiinnuuxx,, ee oo mmuunnddoo Quando instalar o _L_i_n_u_x em um sistema com muitos SOs (fora o _L_i_n_u_x), encare isso como uma regra fixa: instale e configure a inicializao de todos os outros SOs primeiro, porque eles são menos flexíveis. Assim será mais fácil configurar o LILO para inicializar todos os outros SOs. 33.. AA ccaaiixxaa ddee ddiiáállooggoo ddee ccoonnffiigguurraaoo ddoo LLIILLOO Agora que você sabe um pouco sobre o que o _L_I_L_O pode fazer, você pode configurá-lo usando o _C_o_n_f_i_g_u_r_a_d_o_r _L_i_n_u_x. A caixa de diálogo principal é divida em duas sees. Aqui vai uma introduo para cada seo: 33..11.. OOppeess bbáássiiccaass Esta seo cuida de como instalar o _L_I_L_O. 33..11..11.. DDeessaabbiilliittaannddoo oo LLIILLOO Se você inicializar seu sistema _L_i_n_u_x sem o _L_I_L_O, você poderá achar o _C_o_n_f_i_g_u_r_a_d_o_r _L_i_n_u_x um pouco chato pois ele sempre tenta se certificar que o _L_I_L_O está configurado corretamente. Você pode desativar o suporte do _C_o_n_f_i_g_u_r_a_d_o_r _L_i_n_u_x ao _L_I_L_O à qualquer hora. Isso afeta apenas o _C_o_n_f_i_g_u_r_a_d_o_r _L_i_n_u_x, e nada mais. Isso não irá desinstalar o _L_I_L_O, apenas dirá ao _C_o_n_f_i_g_u_r_a_d_o_r _L_i_n_u_x: ``pare de checar o LILO''. 33..11..22.. IInnssttaallaarr eemm O _L_I_L_O é levantado na inicializao executando-se um programinha bem pequeno, chamado sseettoorr ddee iinniicciiaalliizzaaoo. Este programa deve ser instalado em um lugar estratégico. A lista de ajuda deste campo lhe oferece uma lista de escolhas válidas em ordem de preferência. Se o _L_i_n_u_x é a partio aattiivvaa isso não tem muita importância. Se não for, ou se sua partio _L_i_n_u_x não for a primeira do disco rígido, você deve instalar o setor de inicializao ou no Registro Mestre de Inicializao do primeiro drive, ou em um disquete. Note que instalar o setor de inicializao num disquete é além de tudo rápido, pois apenas um setor é lido a partir dele. Todos os outros arquivos ficam na partio _L_i_n_u_x de seu disco rígido. Se você tiver outro gerenciador de inicializao (o _g_e_r_e_n_c_i_a_d_o_r _d_e _i_n_i_c_i_a_l_i_z_a_o _d_o _O_S_/_2, ou o Partition Magic), então o mais correto é instalar o setor de inicializao na partio do Linux. Você terá que informar ao seu outro gerenciador de inicializao sobre essa partio nova. O _g_e_r_e_n_c_i_a_d_o_r _d_e _i_n_i_c_i_a_l_i_z_a_o _d_o _O_S_/_2 pode (como o LILO) inicializar o Linux mesmo que ele esteja localizado em um segundo disco rígido (não o primário). 33..11..33.. MMooddoo ddee iinniicciiaalliizzaaoo ddoo BBIIOOSS Conhecido por inicializar mais rápido. Conhecido por não funcionar em algumas máquinas. Não se tem experiências relatadas com ele. 33..11..44.. CCóóddiiggoo ddaa ttaabbeellaa ddee iinniicciiaalliizzaaoo O LILO cria uma tabela que deixa o carregador de inicializao localizar os arquivos do kernel. Esta codificao é feita ou como trilha/cabeça/setor, ou como um número de bloco linear. Com alguns controladores SCSI, a primeira estratégia não funciona. Se você passar por isso, tente usar o modo linear. Muitos computadores modernos trabalham bem quando você usa um número de bloco linear. 33..11..55.. mmoossttrraarr oo pprroommpptt LLIILLOO bboooott:: Com essa opo, o LILO mostrará seu prompt. Normalmente está ativa. LILO boot: Daqui você pode: · Iniciar um SO diferente ou uma configurao diferente. · Passar parâmetros de tempo de inicializao ao kernel. No prompt, você pode selecionar uma configurao. Aperte a tecla TAB para ver a lista de configuraes. Digite o nome de uma configurao ou simplesmente aperte para selecionar a configurao padrão. Se você precisa passar parâmetros de tempo de inicializao ao kernel, você precisa digitar primeiro o nome da configurao, mesmo que seja a configurao padrão. 33..11..66.. TTeemmppoo ddee eessppeerraa ddoo pprroommpptt Sem um tempo de espera, o LILO ficará para sempre no prompt. Você pode especificar um tempo de espera após o qual o LILO irá inicializar a configurao padrão automaticamente. O tempo de espera padrão é 5 segundos. 33..11..77.. EEssppeerraa ddaa iinniicciiaalliizzaaoo O LILO pode esperar algum tempo antes de apresentar o prompt LILO boot: (caso esteja configurado para mostrar o prompt) ou inicializar (caso esteja configurado para não mostrar o prompt). Durante essa espera, você pode interceptar a seqncia de inicializao pressionando Shift+Tab, e o LILO mostrará seu prompt normal LILO boot:. Se você desativar o prompt, uma espera de 5 segundos é recomendada. Informando 0 desativa a espera. 33..11..88.. AArrqquuiivvoo ddee mmeennssaaggeennss Você colocar aqui a rota de um arquivo texto. O ideal é que esse texto seja breve e que caiba na tela, deixando o prompt do _L_I_L_O no final. Isso é usado para disquetes de inicializao de algumas distribuies, mas você pode usá-lo, por exemplo, para dar instrues a usuários de um laboratório ou para membros da família que não se lembram quais teclas pressionar. 33..22.. OOppeess eexxttrraa Esta seo provê a configurao padrão, que o Configurador Linux aplica às diferentes entradas de configurao do _L_i_n_u_x. Colocar informaes aqui lhe poupa o trabalho de repeti-las mais tarde. 33..22..11.. PPaarrttiioo rraaiizz Você deve dizer onde está sua partio raiz _L_i_n_u_x. Uma lista de ajuda lhe mostra todas as parties. 33..22..22.. TTaammaannhhoo ddoo ddiissccoo eemm mmeemmóórriiaa Os discos em memória são usados para disquetes de inicializao para a instalao do Linux. Eles são raramente usados num sistema instalado. O desenvolvimento dos módulos do kernel mais recentes tornam os discos em memória configuráveis em tempo de execuo. Um valor de 0 desativa essa funcionalidade. 33..22..33.. MMooddoo ddee iinniicciiaalliizzaaoo:: ssoommeennttee lleeiittuurraa?? Normalmente está ativa. Para instalaes _U_M_S_D_O_S, esta deve estar desativada, e geralmente usa-se o _l_o_a_d_l_i_n para inicializar o sistema ao invés do _L_I_L_O. A menos que você realmente sabia o que está fazendo, deixe-a ligada. Por quê? Porque quando o _L_i_n_u_x inicializa em modo somente leitura, ele pode fazer inspees extensivas das parties sem mexer nelas. Isso é bom, especialmente se a inicializao for após uma travada que deixou as parties meio estranhas. E por quê não mexer nas parties? Bem, o _L_i_n_u_x suporta múltiplos registros de horário (time stamp) por arquivo. Um é o "horário do último acesso", que significa que o sistema de arquivos está mudado (dados foram escritos ao disco) apenas por ter sido lido (que é exatamente o que acontece na inicializao). Este registro do último acesso é muito útil, mas se torna algo incômodo na inicializao. O "somente leitura" diz ao _L_i_n_u_x para desativar essa funcionalidade. Depois que a partio for checada, o sistema irá para o modo "escrita" automaticamente. 33..22..44.. OOppeess ddee iinniicciiaalliizzaaoo Alguns drives requerem algumas informaes para se inicializar corretamente. Por exemplo, alguns drives de CDROM não são reconhecidos. Para dizer ao Linux qual é o seu CDROM (que funcione), você pode precisar de algo como: hdc=cdrom Isso dirá ao Linux que o dispositivo IDE mestre na segunda interface IDE (/dev/hdc) é um drive de CDROM. 33..33.. CCoonnffiigguurraaeess ddoo LLIILLOO ppaarraa oo LLiinnuuxx A seo padrão é seguida de várias sees idênticas, que definem uma configurao de inicializao _L_i_n_u_x. Cada uma dessas configuraes repetem todos os parâmetros da seo padrão. Você pode simplesmente sobrescrevê-los em cada uma, caso você queira mudá-los. A primeira configurao será a padrão. Isso significa que o _L_I_L_O a inicializará a menos que dito diferente no prompt LILO boot:. Apenas dois campos diferem da seo padrão. 33..33..11.. AArrqquuiivvoo ddaa iimmaaggeemm ddoo kkeerrnneell A rota do arquivo do kernel que inicializará esta configurao. Note que um arquivo de kernel pode ser usado por várias configuraes. 33..33..22.. IIddeennttiiffiiccaaoo É um nome curto e único que identifica a configurao. Uma vez que um arquivo de kernel pode ser compartilhado por várias configuraes, precisamos de uma chave única, que será usada para interceptar o processo de inicializao. O _L_I_L_O espera que uma dessas identificaes seja digitada para inicializar sua configurao correspondente. 33..44.. CCoonnffiigguurraaeess ddoo LLIILLOO ppaarraa oouuttrrooss SSOOss O _L_I_L_O pode inicializar quase todos os sistemas operacionais existentes. Para cada sistema operacional que você queira inicializar, simplesmente especifique a sua partio e uma identificao. O _L_I_L_O simplesmente carrega o setor de inicializao da partio e o executa. 44.. MMoovveennddoo aarrqquuiivvooss ddee ccoonnffiigguurraaoo ddoo LLIILLOO Às vezes, quer-se fazer testes com o arquivo de configurao do _L_I_L_O. As boas notícias são que ele pode ser movido de lugar e que você pode informar o Configurador Linux sobre isso. Vá a ao menu "Configurar todos os arquivos de configurao", ache a linha do /etc/lilo.conf e aperte o botão Editar. Coloque uma rota nova para o arquivo de configurao do _L_I_L_O. Note que o _L_I_L_O espera encontrar seu arquivo de configurao em /etc/lilo.conf, então ao mover-se esse arquivo, ele deve ir a um subdiretório que tenha um subdiretório chamado etc, onde ficará o lilo.conf, por exemplo, /mnt/tmp/etc/lilo.conf. 44..11.. MMoovveerr oo LLIILLOO ?? PPaarraa qquuêê?? Há razões diferentes do porquê de alguém querer fazê-lo. Aqui vão algumas: · Seu disco rígido tem mais de 1024 cilindros e a partio raiz está depois do cilindro número 1024. O _L_I_L_O usa o BIOS para carregar os arquivos do kernel (além de outros), e se o arquivo do kernel estiver acima desse limite de 1024, o _L_I_L_O não poderá inicializá-lo apropriadamente. Caso isso aconteça, o _L_I_L_O lhe avisará em sua instalao. · Sua partio raiz está localizada no terceiro ou quarto disco rígido e seu BIOS (de novo) é muito antiga e não sabe da existência do segundo canal IDE. Nesse caso, o LILO lhe avisará em sua instalao que alguns BIOS não conseguem acessar o drive. E na inicializao do sistema você terá vários erros. Por outro lado, algumas distribuies instalam todos os arquivos necessários para a inicializao no diretório /boot, que está numa partio separada do seu diretório raiz, caso ele não estiver inteiro abaixo da marca do cilindro 1024. Nesse caso, você não precisará mover o LILO. 44..22.. CCoommoo mmoovvêê--lloo?? PPaarraa oonnddee?? Em uma máquina que tem apenas o Linux, com um disco grande com mais de 1024 cilindros, muitas pessoas criarão uma partio menor para o sistema básico e uma maior para os dados, assegurando-se que todos os arquivos do LILO estão abaixo do cilindro 1024. Às vezes, isso pode tornar o gerenciamento mais complexo, pois você terá duas parties parcialmente completas. Outra soluo é criar uma partio bem pequena (poucos megabytes) no início do disco e reservá-la para a configurao do _L_I_L_O e os arquivos do kernel. Assim você pode criar apenas uma única partio raiz que é mais fácil de gerenciar. (uns podem argumentar que criar uma única partio é ruim pois você está colocando "todos os ovos na mesma cesta". Dado que o formato do sistema de arquivos EXT2 distribui o gerenciamento de informaes por toda a partio, com replicao, isso não é um problema) Então você tem uma partio que se encaixa nesses termos, e que é totalmente acessível pela BIOS. Supondo que essa partio esteja montada no diretório /lilo e você quer colocar todos os arquivos de configurao na raiz dessa partio, aqui vão os passos a se seguir: · mkdir /lilo/etc · cp /etc/lilo.conf /lilo/etc/lilo.conf · mkdir /lilo/boot · cp /boot/* /lilo/boot · cd / · tar cf - dev | (cd /lilo && tar xvf -) · cp /vmlinuz /lilo Você pode ativar essa recém-movida configurao assim: /sbin/lilo -r /lilo E você pode fazer isso com o Configurador Linux, dizendo que o /etc/lilo.conf agora é /lilo/etc/lilo.conf. De agora em diante, usando o Configurador Linux, isso será completamente transparente para você ou quem quer que venha a gerenciar sua máquina. 55.. AAlltteerrnnaattiivvaass aaoo LLIILLOO O _L_i_n_u_x pode ser inicializado de um disquete ou usando-se o loadlin. Isso não tem muito a ver com o _L_I_L_O, mas é importante saber. Assumindo que sua partio raiz do _L_i_n_u_x é /dev/hdaX... 55..11.. UUssaannddoo uumm ddiissqquueettee Para criar um disquete de inicializao, faça: · cp zImage /dev/fd0 · rdev /dev/fd0 /dev/hdaX · rdev -R /dev/fd0 1 55..22.. UUssaannddoo oo llooaaddlliinn Para inicializar com o loadlin (um programa _D_O_S), copie o arquivo do kernel para sua partio _D_O_S e digite, no prompt do _D_O_S: loadlin zimage root=/dev/hdaX ro