On 01/23/2011 02:28 PM, walt wrote:
Okay, I genuinely have grub2 installed and doing exactly what it's supposed to do: boot your machine using only partition LABELS, not device names/numbers...
If you got through part 1 you should have all the files you need to install grub2 to your drive's boot block -- that's the part that is potentially dangerous, so practice installing to a USB thumb drive *before* you try it for real. All of my USB thumb drives were formatted FAT16 at the factory, and grub2 (being a bit of a pig) won't fit in a FAT16 partition table. The answer is to reformat the drive to FAT32 or ext2, or you can use a tool like gparted to shrink the FAT16 fs and create a new very tiny partition for ext2. Even 3MB is big enough to hold grub -- the size of the file system isn't important -- it's the partition table that's too small in FAT16. Assume you have the ext2 partition of the thumb drive mounted on /mnt/floppy, for example, and the thumb drive is /dev/sdc. For the actual install you need to be root because you will be writing to the device as well as the ext2 fs on the device. # mkdir -p /mnt/floppy/boot/grub # /home/walt/sbin/grub-install --boot-directory=/mnt/floppy/boot/ /dev/sdc That second step will write the actual grub2 boot block to the thumb drive, as well as copying lots of grub modules to /mnt/floppy/boot/grub from /home/walt/lib/grub/i386-c. All of those grub 'modules' contain the actually code that does things like print the boot menu on your screen and accept keystrokes from your keyboard, search for partition LABELs, UUIDs, display boot splash screens, play idiotic tunes, load custom fonts and fancy colors, and tons of other stuff you won't ever want if you're still sane. That should be enough to let you boot into the grub2 shell from your thumb drive, assuming you set your BIOS to allow it. Just like legacy grub, the grub2 command shell will always show you what you can type next if you hit the tab key -- and there is quite a long list. The important commands to learn are 'ls', 'search', 'probe', 'help', and 'linux'. That 'linux' command is what actually loads your kernel from the /boot partition after you have located it with the search and (possibly) the probe commands. Use the help command and the tab key whenever you don't know what to do next. You'll pick it up very quickly that way -- far faster than trying to read any of the incomplete documentation. One very clueful tool is the brand new utility 'grub-menulst2cfg' which you should find in your ~/bin directory. Running that on your existing /boot/grub/menu.lst will show you the equivalent commands for your new /boot/grub/grub.cfg file. Very neat, and isn't included in the current stable grub-1.98. Once you play with the grub2 command shell you will easily see how to use the same commands in grub.cfg because the syntax is the same. Next time I'll explain how to use GPT (GUID Partition Table) to let your kernel find and mount your root partition using its UUID without an initrd. Very nifty!