Bootloader / multi-boot Bootloaders • Grand Unified Bootloader (GRUB) • Linux Load (LILO) GRUB • Discovers boot images, kernels, and root filesystems from GRUB command shell • Stores boot info in a filesystems (not the MBR) • Reads filesystems and kernel executables – Does not restrict user to disk geometry • OS independent – Store GRUB in a separate boot partition • Remove and reinstall OS’s w/o having to reinstall the bootloader GRUB and LILO • Can boot non-Linux systems – Windows, OS/2, BSD, etc • Chain loading – Points to OS’s bootloader (ie, Windows) MBR • First 512 bytes of the first sector of the first partition on a drive – Contains partition table and 1st stage bootloader • 1st stage is first 445 bytes – Point to 2nd stage loader » Stored in /boot directory • Remaining 66 bytes – Partition table Linux • Limited to 63 total partitions per IDE drive – 3 primary – 4th: contains up to 60 logical partitions in a single extended partition • SCSI drives – Limited to 15 partitions • 3 primaries • 12 logicals Scenario • LILO installed, you wish to install GRUB – Determine the version of grub $grub –version grub (GNU GRUB 0.94) – Hard copy your partition table fdisk –l | lpr – Hard copy lilo.conf – Back up data – Keep rescue disk handy • LILO boot or Knoppix – Leave LILO intact… in case • • • • Create GRUB boot diskette Install GRUB to MBR Boot the system Edit GRUB configuration file – menu.lst Scenario • Create GRUB boot diskette /grub/i386-pc (can vary) could be in /usr/lib or /usr/share or… – Copy stage1 and stage2 to diskette with dd command $ dd if=stage1 of=/dev/fd0 bs=512 count=1 • • Reboot the system (you get the GRUB screen) Find the root device grub> find /boot/grub/stage1 (hd0,0) • Set the root device grub> root (hd0,0) • Install GRUB to MBR grub> setup (hd0) • Set the root device (again) • grub> root (hd0,0) Enter the path to the kernel and the root filesystem (in lilo.conf) – MAKE SURE YOU APPEND “ro” (read only) grub> kernel /boot/vmlinuz-2.4.21 root=/dev/hda1 ro • Now, boot the system grub> boot Gotchas • Linux refers to drives as hd1, hd2, etc… • GRUB starts with “0” (h0, h1, etc) – Both SCSI and IDEs are hd, floppies are fd • Linux primary partitions • 1-4 • 5 and up.. Extended partitions • GRUB • 0-3 • 4 and up primary extended • Identifying the root filesystem does not use GRUB’s numbering sytem grub> kernel /boot/vmlinuz-2.4.21 root=/dev/hda1 ro Install GRUB w/o floppy • Start a grub shell # grub • Find the stage1 loader grub> find /boot/grub/stage1 (hd0,0) • Run grub> root (hd0,0) grub> setup (hd0) grub> quit • Reboot Multi-booting Linux • Standalone /boot partition • Shared /home and /swap partitions • Standard Fedora install (on 20Gb IDE) – /dev/hda1 – /dev/hda2 – /dev/hda3 – /dev/hda4 – /dev/hda5 – Free space primary primary primary extended 100Mb 2,500Mb 3,000Mb /boot / /home 256Mb 14,144 /swap Disk Druid • Used to partition • Delete any existing partitions • Highlight ‘free space’ – Click ‘new’ • Mountpoint is /boot ext2, 100Mb • Select ‘free space’ again – ‘new’ • Mountpoint is “/” ext3, 2500Mb – Next • /home • Find “swap” ext3, 3000Mb no mountpoint, 256Mb • When done, save changes using Disk Druid • Continue install, using GRUB (not LILO) QTPared • Create, delete, move and resize partitions – Included on Knoppix • Can be used to set up partitions even before new Linux install • Can be used to make changes to partitions even if data on them • /swap – Performance issues, put in its own partition • Shared on multiboot system • /home – Own partition • Share between different Linux systems • Not forced to restore data from backup when installing or removing systems Adding another Linux • • • Add additional Linux systems into logical partitions Create a GRUB boot menu entry for each After 1st Linux installed – Boot install of the new Linux – Partition and drive layouts • Highlight “free” and select “new” – 2500Mb for size (mountpoint is “/”) » Select filesystem type and initialize it (/dev/hda6) • Select /dev/hda3 to “Modify” – Select /home and ext3, do not initialize it – When done, write the partition info to disk • When prompted, you should only be formatting or initialing the “/” partition – Do NOT overwrite the MBR • Do you want Linux to handle booting system? “NO” – You want boot files installed to first sector of the root partition (/dev/hda6) • Use GRUB grub> root (hd0,0) grub> kernel / boot/vmlinuz-2,4,21 root=/dev/hda6 ro grub> boot Finding the boot parameters using GRUB • As grub is booting up, hit “c” – Get to the GRUB command shell grub>root (hd0, <tab> [tab completion] • possible partitions identifies along with filesystem type and partition type – Try them if needed… grub> root (hd0,0) • Search for kernel image grub> kernel /boot/vmlinuz<tab> » May report file not found grub> root (hd0,1) grub> kernel /boot/vmlinuz<tab> possible files are: vmlinuz vmlinuz-2.4.2 grub> kernel / boot/vmlinuz-2,4,21 root=/dev/hda2 ro grub> boot Miscellaneous • grub> cat /etc/shadow • grub> root(hd<tab> – Possible disks are: hd0 hd1 • Grub can be password protected • Documentation www.gnu.org/software/grub/manual/grub.html GRUB boot menu • /boot/grub/menu.lst • “stanza” – GRUB boot entry title root kernel initrd Fedora 1 core (hd0,0) /boot/vmlinuz-2.4.22-1 root=/dev/hda1 ro /boot/initrd-2.4.22-1.img • Title: required, can be anything • Each OS requires a stanza entry • Initrd: ramdisk (not all Linux implementations require a ramdisk) GRUB boot menu • menu.lst (or grub.conf) • Default entry – Number of the stanza (sequential) • Timeout entry – How long to wait for default entry to boot • splashimage • defaultsaved – Last image used to boot is saved as the next default Adding Windows to a Linux system • Different considerations for 95 thru ME as opposed to NT/2000/XP • XP – Make sure there’s enough free space and unused primary partition – Hard copy the partition table • Note what’s installed on each partition – Install from CD • Install complete – Restore the GRUB to the MBR • Load GRUB boot floppy grub> root (hd0,0) grub> setup (hd0) grub> reboot • Boot to Linux, and make an entry for the Windows system title WindowsXP on /dev/hda4 rootnoverify (hd0,3) makeactive chainloader +1 Restore GRUB to MBR w/Knoppix • If installation of Windows overwrote the MBR and GRUB with the Windows Boot Menu you can no longer boot to Linux – Boot the Knoppix CD – su to root and run GRUB – Put GRUB onto the MBR grub> Root (hd0,0) grub> setup (hd0) grub> quit – Reboot and GRUB menu appears Password protecting GRUB # grub-md5-crypt • Copy and paste the encrypted password into menu.lst before the boot stanzas password –md5 $1$riAfJ0$QTuA1S/BGqlkYHQADZejs1 Or… plaintext password can be used… password mypasswordisthis • • Chmod the menu.lst file if needed (root only) When booting GRUB, hit “p” and enter the password to unlock the command shell – Users can still select.. Just can use command shell • (**** if you forget the GRUB password, anyone can simply boot with rescue disk and edit menu.lst *****) Assignment: • Install Red Hat on box w/GRUB • Install Mandriva as second Linux • Install Windows XP as third system