You are on page 1of 7

Como utilizar o GRUB

Enviado por DarkWarrior em Qua, 2007-01-17 13:58. Artigo Tcnico Autor: Luiz Aguiar (crashx) eMail: luizaguiar[NOSPAM]softhome.net Data: 28 de agosto de 2003 Este um artigo de nivl bsico, que visa mostrar as opes e funcionalidades bsicas do GRUB. Para um aprofundamento nos detalhes de configuraes e opes, leia a documentao disponvel na sua distribuio e no site oficial http://www.gnu.org/software/grub/. 1 - O que o GRUB ? O GRUB (Grand Unified Boot Loader) um gerenciador de boot, assim como Lilo e outros, que utiliza o padro Multiboot, sendo capaz de carregar diversas imagens de boot e mdulos. O GRUB tambm permite buscar imagens pela rede, por cabo seriais, suporta discos rgidos IDE e SCSI, sistemas sem discos e terminais remotos. Possui interface por linha de comandos ou menus de escolha. Ele flexvel, funcional e poderoso, podendo iniciar sistemas operacionais como FreeBSD, OpenBSD, NetBSD, GNU/Linux, GNU/Hurd (o nico bootloader capaz). Sistemas operacionais proprietarios como o Windows (9x, ME, NT, 2000 e XP), Dos e IBM OS/2 sao suportados usando a funo chainloader. Podemos destacar tambm o suporte aos sistemas de arquivos ext2 , ext3 e reiserfs (novos sistemas de arquivos journaling do Linux), FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS) e etc. Alm das citadas acima o GRub possui ainda as seguintes caractersticas: * Suporte a no-Miltiboot sistemas operacionais. * Leitura de mltiplos mdulos (no so mdulos do kernel como no GNU/Linux). * Arquivo de configurao simples e fcil. * Interface de selecao por Menu. * Interface de linha de comandos flexvel, simples para novos usurios e poderosa para usurios avanados. * Acesso a dados em qualquer dispositivo instalado. * Deteco de toda memria RAM disponvel. * Suporte a Logical Block Address (LBA). 2 - Nomenclatura das parties O GRUB no faz distino entre discos IDE e SCSI, ele chama ambos por (hd?). Abaixo segue uma tabela comparativa entre as nomenclaturas adotas pelo GNU/Linux e pelo GRUB para tratar discos e parties. No Linux / No GRUB

/dev/hda (hd0) /dev/hda1 (hd0,0) /dev/hda2 (hd0,1) /dev/hdb (hd1) /dev/hdb1 (hd1,0) /dev/hdb2 (hd1,1) /dev/sda (hd0) /dev/sda1 (hd0,0) /dev/sda2 (hd0,1) /dev/sdb (hd1) /dev/sdb1 (hd1,0) /dev/sdb2 (hd1,1) /dev/fd0 (fd0) 3 - Como instalar o GRUB (MBR e disquete) Ao contrrio do Lilo, o GRUB necessita ser instalado uma nica vez. Toda alterao deve ser feita no arquivo de configurao /boot/grub/menu.1st, desde uma incluso de disco ou apenas alterao de imagem de kernel. Um arquivo de exemplo fica localizado em /usr/share/doc/grub/examples/menu.1st. Voc pode utiliz-lo como referncia para fazer o seu prprio menu.1st Instalando no MBR (Master Boot Recorde): # grub-install /dev/hda Instalando no disquete: Modo linha de comando: # dd if=/usr/lib/grub/i386-pc/stage1 of=/dev/fd0 count=1 1+0 records in 1+0 records out # dd if=/usr/lib/grub/i386-pc/stage2 of=/dev/fd0 seek=1 153+1 records in 153+1 records out Modo por menu de seleo: # mke2fs /dev/fd0 # mount /dev/fd0 /floppy -t ext2 # mkdir /floppy/grub # cp /usr/lib/grub/i386-pc/stage1 /floppy/grub # cp /usr/lib/grub/i386-pc/stage2 /floppy/grub # cp /boot/grub/menu.lst /floppy/grub # umount /floppy

No GRUB digite: # grub grub> install (fd0)/grub/stage1 d (fd0) (fd0)/grub/stage2 p (fd0)/grub/menu.lst grub> quit Est pronto o disquete com seleo por menu. 4 - Exemplo de arquivo de configurao menu.1st timeout 30 default 0 fallback 1 color light-cyan/black white/blue password minha-senha-secreta # Para boot com o GNU/Hurd title GNU/Hurd root (hd0,0) kernel /boot/gnumach.gz root=hd0s1 module /boot/serverboot.gz # Para boot com o GNU/Linux title Linux 2.4.21 lock root (hd0,0) kernel (hd0,0)/boot/vmlinuz-2.4.21 vga=6 mem=512M ramdisk=0 hdc=ide-scsi 5 # Para boot com FreeBSD title FreeBSD 4.8 root (hd0,2,a) kernel /boot/loader # Para boot com Windows (qualquer um) title Windows XP unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive Opes: timeout = Define o tempo (em segundos) de espera para bootar a imagem padro. default = Define qual a imagem padro a ser dado boot, detalhe, a numerao comea em 0, definindo que a primeira entrada de imagem, 1 para a segunda entrada de imagem, e assim por diante. fallback = Caso o boot na imagem padro no ocorra devido a algum erro/problema, pode ser definido aqui uma outra opo a ser dado boot. color = Define as cores a serem usadas no menu.

password = Aqui atribu-se uma senha a ser usada para no permitir alteraes no menus e acesso a ouras funes como a linha de comando. title = Define um ttulo que ser apresentado no menu de boot. root = Determina qual a partio raiz do sistema. rootnoverify = Idntico a opo root, mas no tenta montar a partio-alvo, o que necessrio para alguns sistemas como Dos e Windows. kernel = Nesta opo voc informa qual a imagem de kernel vai ser iniciada. Voc pode passar parmetros diretamente para o kernel tambm, como vga, mem, ramdisk, etc. module = Faz com que algum mdulo necessrio para o boot seja carregado. So mdulos necessrios ao boot de alguns sistemas, como por exemplo o GNU Hurd e no mdulos de kernel como som, rede, file systems, etc. lock = Faz com que a senha especificada com o parmetro "password" seja solicitada no momento em que se tentar carregar a imagem em questo. makeactive = Torna a partio ativa. Este comando est limitado a parties primrias dos discos. chainloader = Alguns sistemas como o Windows armazenam seu prprio gerenciador de boot no incio da partio em que ele est instalado. A opcao chainloader carregar o gerenciador de boot de tal sistema deixando-o efetuar o boot normalmente. map = Alguns sistemas no permitem ser iniciados quando no esto no primeiro disco (Dos, Win 9x, etc.). A opo map faz um mapeando das unidades de disco de modo como que possa contornar esse problema. hide e unhide = Esconde e mostra partio, necessrio quando houver mais de uma verso do Windows na mquina. Suponha que exista o Windows 98 na primeira partio primria (hd0,0) e o Windows XP na segunda partio primria (hd0,1), o menu.1st ficaria assim: title Windows 98 hide (hd0,1) # esconde o XP unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive title Windows XP hide (hd0,0) # esconde o 98 unhide (hd0,1) rootnoverify (hd0,1) chainloader +1 makeactive

5 - Especificando o runlevel do sistema Uma opo muito verstil do GRUB poder especificar o runlevel do sistema na entrada de configurao do mesmo. Para isso basta colocar o nmero do runlevel que deseja utilizar no final da opo kernel. Exemplos: # Modo single user kernel (hd0,0)/boot/vmlinuz-2.4.21 vga=6 hdc=ide-scsi single Voc pode passar o parmetro init=/bin/sh pra cair direto no shell, no caso de perder a senha do root por exemplo. # Modo console (runlevel 2) kernel (hd0,0)/boot/vmlinuz-2.4.21 vga=6 hdc=ide-scsi 2 # Modo com boot grfico (runlevel 5) kernel (hd0,0)/boot/vmlinuz-2.4.21 vga=6 hdc=ide-scsi 5 6 - Como utilizar a linha de comandos Com certeza um dos recursos mais interessantes do grub a linha de comandos, que alias j me salvou vrias vezes :-), ela de d opes muito bacanas para adicionar ou remover entradas, editar opes do boot do sistema desejado, procurar imagens a serem bootadas, entre outras coisas, e tudo isso sem mesmo bootar em sistema algum. Ex.: Voc acabou de compilar o kernel 2.6.0-test3 e est louco para test-lo, e aps o reboot recebe aquela mensagem to bonita de "kernel panic" :-), ai voc se lembra que no fez um disco de boot e nem adicionou sua imagem atual como alternativa de boot e no sabe onde esta o CD de instalao para um boot modo rescue. Nessas horas com certeza voc ver como til a linha de comandos, atravs dela voc localiza sua antiga imagem e pode dar boot em seu sistema normalmente. Obtendo ajuda: Para obter ajudar sobre qualquer dos comandos do GRUB utilize o comando help, exemplo: grub> help find find: find FILENAME Search for the filename FILENAME in all of partitions and print the list of the devices which contain the file. Situao 1: Como bootar o sistema atravs do disquete usando a linha de comandos ? Voc pode usar a seguinte sequncia: grub> root (hd0,0) grub> kernel (hd0,0)/boot/vmlinuz-2.4.21 grub> boot

Note que vc pode usar o para auto-completar os nomes ou para listar o conteudo da partio em uso. Exemplo: grub> kernel (hd0,0)/boot/ Possible files are: grub message.ja message config-2.4.20-8 boot.b chain.b os2_d.b module-info-2.4.20-8 System.map-2.4.20-8 vmlinuz System.map vmlinux-2.4.20-8 vmlinuz-2.4.20-8 module-info kernel.h initrd-2.4.20-8.img grub> kernel (hd0,3)/boot/ Depois disso fica fcil encontrar uma imagem decente pra dar boot no sistema. Situao 2: Dei boot em modo rescue pelo cd da minha distribuio porque gravei uma configurao errada no MBR, como instalar o GRUB no HD ? # grub grub> root (hd0,0) # Indica a partio raiz do sistema. grub> setup(hd0) # Grava o GRUB no MBR do disco 0. ou # grub-install /dev/hda Exemplos de comandos: Mostra o conteudo do arquivo /usr/share/doc/grub/exemples/menu.1st: grub> cat (hd0,1)/usr/share/doc/grub/exemples/menu.1st L o arquivo de configuracao do GRUB: grub> configfile (hd0,0)/boot/grub/menu.lst Lista os devices que contem o arquivo stage1: grub> find stage1 Especifica a particao raiz: grub> root = (hd0,0) Exibe a ajuda do comando kernel: grub> help kernel Sai do prompt de comando: grub> quit Reinicia o computador: grub> reboot 7 - GRUB com splashimage O Grub no tem suporte oficial a imagens grficas na tela de boot (ou seleo de sistemas). Enquanto escrevia esse artigo, a verso do Grub a 0.93. Segundo um de seus prprios desenvolvedores, eles precisam aperfeioar e adicionar recursos mais

importantes para o Grub no momento, como suporte ao novo sistema de arquivos do FreeBSD UFS2. O que acontece, a disponibilidade de alguns patchs feitos pelos hackers do Grub para ele suportar imagens grficas. Esse patch foi desenvolvido inicialmente por Paulo Csar Pereira de Andrade. Distribuies como Red Hat, Conectiva entre muitas outras, j utilizam tais patchs, alguns desenvolvidos pela prpria equipe de desenvolvedores da distribuio. Por enquanto, se voc utiliza o Grub e quer colocar uma imagem em seu tela de boot, s mesmo adicionando um pacth. Como isso no faz parte da documentao oficial do software, isso no ser abortado (por enquanto) neste artigo. :-) Uma tima referncia pode ser encontrada na seguinte url: http://ruslug.rutgers.edu/~mcgrof/grub-images/ 8 - Como remover o GRUB do MBR No existe um comando do prprio GRUB para remov-lo do MBR. Por qu ? Porque no existe uma utilidade para um MBR vazio. :-) Voc pode substitu-lo por outro gerenciador de boot, como por exemplo instalar o lilo "por cima" dele, assim o lilo sobrescreve o MBR e apaga o GRUB. Ou ainda usar o comando fdisk/mbr atravs de um disquete de boot do DOS (de preferncia FreeDOS). :-) Mais detalhes e documentos, veja o site oficial do GRUB: http://www.gnu.org/software/grub/ Referncias: GRUB Manual: http://www.gnu.org/software/grub/ Guia Foca GNU/Linux: http://focalinux.cipsga.org.br/

You might also like