Deleting the Bootloader Config File
This question is a bit academic, but I could see a case for this happening in real life, in a lab.
CentOS uses /boot/grub/grub.conf as the bootloader config file. /etc/grub.conf and /boot/grub/menu.lst are both symlinks to /boot/grub/grub.conf.
I'm in the process of polishing up my linux skills and I asked, "What would happen if the /boot/grub/grub.conf file was pooched."
Here's what happened:
I boot and I am greeted with the grub prompt:
Uh oh! Now what?
Well, if your distro has /boot/vmlinuz symlinked to the most recent kernel file in /boot, then you can just run:
(note which device it finds for boot, possbibly root (hd0,0))
root (hd0,0) (or use the device found above)
Now, the problem I have is what do we do when there is no symlink and you don't know which kernel files exist AND when you don't have a cdrom available AND there's no network avalable to boot from. Are we screwed?
I'd love to be able to list the files in /boot/ so that I can see the name of the kernel file. But that functionality doesn't come with the grub find command.
I'm going to try and boot with a network image from the grub prompt so that I can then mount the /boot partition and see the files.
This seems like something they'd do to you on the RHCE test.
I'm an idiot
I never thought to use tab completion.
Again, the scenario is:
Some genius deleted /boot/grub/grub.conf on a CentOS system.
The computer worked fine for weeks.
The computer had custom kernels.
Someone booted it.
The genius now works for another company.
You are the admin, you need to boot the server.
You get a grub> prompt and that's it.
1. Run root and note the location of the boot partition:
(hd0,0): Filesystem type is ext2fs, partition type is 0x83
2. Run root (hd0,0):
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83.
3. run kernel <tab> And you'll see your list of vmlinuz-blah kernels. Pick one and finish the command line with ro:
grub> kernel /vmlinuz-2.6.18-53.1.4.el5 ro
[Linux-bzImage, setup=0x1e00, size=0x1b32d4]
4. run initrd:
grub> initrd /initrd-2.6.18-53.1.4.el5.img
[Linux-initrd @ 0xfd17000, 0x2c8dbb bytes]
5. run boot
My answer was to not mount the boot partition unless it was required for something like installing a new kernel. Saves a lot of possible headaches like the one you created.
FYI: Nothing is in the RHCE test that is not in the manuals.
Any User can write a Grub menu.lst/grub.conf.
Any installed and health Linux can be booted up by Grub, even without a boot loader installed.
A user can use "geometry (hd0)" to examine the partition details. Usually the first Type 83 partition is the /boot for a Red Hat. It can also be located by command "find /boot/grub/grub.conf".
The vmlinuz and initrd can also be located by the "find " command in a Grub prompt. This together with using the tab key are enough for any Linux to be booted "manually.
In fact any health PC system, be it a Dos, Windows, Linux, BSD or Solaris, can be booted up by a Grub prompt. I never have run into a PC system that cannot be booted up by a Grub prompt.
|All times are GMT -5. The time now is 10:34 PM.|