GRUB arranca el sistema de moltes maneres

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

A vegades hem tingut la necessitat d'arrancar un disquet per modificar o fer una còpia de les particions del disc, o arrancar amb DOS per actualitzar la BIOS, o també de provar un disquet o un CDROM d'una utilitat, però no podem perquè potser el nostre PC ni tant sols té disquetera, o potser no és compatible amb el sistema d'arrancada del CDROM. Tenim diverses opcions amb les que GRUB ; acompanyat d'altres utilitats, ens donen una solució.

Finalitat

Tots coneixem les possibilitats de GNU GRUB com un gestor d'arrancada que ens permet arrancar múltiples Sistemes Operatius, de com arranca els kernels de forma nativa i els sistemes de fitxers amb el chainloader. També el seu interfase és molt simple però efectiu, ens deixa escollir entre una llista d'opcions amb les tecles del cursor; la llista d'opcions és un fitxer de text anomenat menu.lst que hem preparat prèviament. A més dona la possibilitat d'editar les línies del menú en el moment d'arrancar i inclús executar algunes ordres.

Aquest article tracta de preparar el gestor d'arrancada GRUB amb altres opcions no tant convencionals per escollir com arranca el sistema en una única pantalla.

Tenim una màquina amb un Sistema Operatiu GNU/Linux i GRUB com a gestor d'arrancada. Prepararem GRUB perquè arranqui altres sistemes operatius des de fitxers imatge residents en la partició GNU/Linux, o també des de el CDROM.

Imatge de disquet

Per arrancar una Imatge de disquet utilitzem memdisk que forma part del paquet Syslinux

Per exemple, arranquem Balder FreeDOS, que és un DOS compatible creat amb les llibreries lliures del projecte FreeDOS

Hi ha disquets DOS preparats amb utilitats com gestors de particions de disc, editors de text, actualitzacions de BIOS, ... que podem arrancar amb aquest sistema. p.ex. a FreeDOS Ripcord BootDisk ens en donen una bona llista. La configuració que escriuríem a menu.lst en aquests casos:

title FreeDOS
  kernel /boot/memdisk.gz
  initrd=/boot/balder10.gz
  boot
#
title FreeDOS 100Mg
  kernel /boot/memdisk.gz
  initrd (hd0,4)/jpujol/fdos_8h1.img
  boot
#

El CDROM o una partició del disc

Amb el gestor d'arrancada Smart BootManager podem arrancar el CDROM o una partició del disc sense haver de configurar el BIOS ni preparar el disc per canviar la partició arrancable. La configuració que escriuríem a menu.lst seria com:

title Smart BootManager
  kernel /boot/memdisk.gz
  initrd /boot/sbm.bin.gz
#

El fitxer sbm.bin.gz podem trobar-lo en el paquet debian-cd o buscar-lo en un ftp-search

Imatge ISO de Knoppix

Knoppix, i les seves variants, suporten el paràmetre bootfrom que ens deixa arrancar des de la imatge ISO. Però abans hem de copiar el kernel i el ramdisk inicial a un directori del disc.

Muntem la ISO en un directori temporal, i copiem el kernel i el ramdisk, (en comptes del minirt.gz original aconsello el minirt_511a.gz descarregat del fòrum knoppix.net , ja que porta vàries millores en els escripts d'arrancada)

mkdir /tmp/iso
mount -o loop KNOPPIX_V5.1.1CD-ES-2007-01-09.iso /tmp/iso

Copiarem el ramdisk inicial i el kernel,

mkdir /home/jpujol/knoppix/
cp /tmp/iso/boot/isolinux/linux /home/jpujol/knoppix/linux-5.1.1-ES
cp /tmp/iso/boot/isolinux/minirt.gz /home/jpujol/knoppix/minirt-5.1.1-ES.gz
umount /tmp/iso

La configuració que escriuríem a menu.lst

title Knoppix 5.1.1 CD
  kernel (hd0,4)/jpujol/knoppix/linux-5.1.1-ES  ramdisk_size=100000 lang=ca vga=791 nomce quiet noeject
   fromhd=/dev/null bootfrom=/dev/sda5/jpujol/knoppix/KNOPPIX_V5.1.1CD-ES-2007-01-09.iso
  initrd (hd0,4)/jpujol/knoppix/minirt-5.1.1-ES.gz
#
title Knoppix 5.1.1 DVD
  kernel (hd0,4)/jpujol/knoppix/linux-5.1.1-ES  ramdisk_size=100000 lang=ca vga=791 nomce quiet noeject
   fromhd=/dev/null bootfrom=/dev/sda5/jpujol/knoppix/KNOPPIX_V5.1.1DVD-ES-2007-01-12.iso
  initrd (hd0,4)/jpujol/knoppix/minirt-5.1.1-ES.gz

Una partició de disc

Amb el chainloader GRUB arranca una partició del disc dur que contingui un sistema de fitxers preparat per això. L'exemple més clar és el Finestres en totes les seves versions. La configuració que escriuríem a menu.lst

#
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda2
title   Microsoft Windows 95/98/2000/XP
  rootnoverify    (hd0,1)
  savedefault
  makeactive
  chainloader +1

Instal·lar GRUB en un CD

Farem un CD amb el gestor d'arrancada GRUB i ens pot servir per rescat del sistema, o per engegar el DOS, o per arrancar un sistema Operatiu amb uns paràmetres concrets.

Ens situem en un directori de treball i fem un directori per GNU GRUB

mkdir -p iso/boot/grub

Copiem el fitxer stage2_eltorito

cp /usr/lib/grub/i386-pc/stage2_eltorito iso/boot/grub
cp -r /boot/grub/* iso/boot/grub/

Fem el fitxer menu.lst segons les nostres necessitats

vi iso/boot/grub/menu.lst

Copiarem els kernels, ramdisk inicials, memdisk , o el FreeDOS, segons lo que volem fer,

cp /boot/linux iso/boot
cp /boot/initrd.gz iso/boot

Podem afegir fitxers a la imatge ISO, per exemple actualitzacions de BIOS

cp -r flash.img iso/flash/*

I construim la imatge grub.iso

mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
  -boot-load-size 4 -boot-info-table -o grub.iso iso

tenim preparada una imatge personalitzada i arrancable de CD; amb GNU GRUB com a gestor d'arrancada; i el podem gravar en un CD fent servir el nostre programa de gravació preferit.

Instal·lar GRUB en un disquet

Formatejarem un disquet

mkfs /dev/fd0

li posarem el gestor d'arrancada.

mount /dev/fd0 /mnt
mkdir -p /mnt/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /boot/grub/menu.lst /mnt/boot/grub/
umount /mnt/

i activarem el sector boot

grub --batch --device-map=/dev/null <<EOT
device (fd0) /dev/fd0
root (fd0)
setup (fd0)
quit
EOT

En el fitxer de configuració menu.lst hem de posar la configuració adient a la finalitat del nostre disquet.

Instal·lar GRUB en un disc dur

Podem posar GRUB com a gestor d'arrancada d'un disc dur. No fa falta que aquest disc tingui GNU/Linux instal·lat, només necessitem una partició amb espai lliure, amb format FAT, FAT32, ext2, ext3 o ReiserFS

Per posar-hi el gestor d'arrancada, hem de copiar els fitxers en els directoris corresponents. Suposem que treballem amb GNU/Linux. La còpia la podriem fer des de altres S.O.

mount /dev/hda1 /mnt
mkdir -p /mnt/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /boot/grub/menu.lst /mnt/boot/grub/
umount /mnt/

Suposem que podem arrancar des d'un CDROM o un disquet amb el gestor d'arrancada GRUB, entrem en el mode d'ordres i activarem el sector boot

root (hd0,0)
setup (hd0)
quit

En el fitxer de configuració menu.lst hem de posar la configuració adient a la nostre finalitat.

Creació d'imatges de disket o CDROM

Unes petites notes sobre com fer servir la utilitat dd “Duplicate Disk” que ens permet gravar imatges de discs, disquets o CDROM's i tornar-les a escriure una altra vegada en un altre suport.
La seva sintaxi és molt senzilla:

dd if=copiaorigen of=copiadesti

Podem crear l'imatge ISO d'un CDROM

dd if=/dev/cdrom of=/path/imatgecdrom.iso

I tornar a escriure un CD, ( segurament per aquesta finalitat son millors programes com el cdrecord )

dd if=/path/imatgecdrom.iso of=/dev/cdrom

Podem copiar disquets a un fitxer.

dd if=/dev/fd0 of=/path/disquet.img

I tornar-lo a escriure en un altre disquet:

dd if=/path/disquet.img of=/dev/fd0 bs=1440k

També es pot fer la copia d'una partició de disc dur a una altra, o de un disc dur complert a un altre, però és millor copiar els fitxers que contenen.

Referències

GRUB GRand Unified Bootloader

GNU GRUB Manual 0.97 GRand Unified Bootloader Manual

Pàgina man dd