Restore /boot? (wiped out by ubuntu install)

Gene Smith gds at chartertn.net
Tue Jan 8 03:55:41 UTC 2008


Hi Paul,
Thanks for the excellent help. I appreciate the effort you went to 
writing this up. I now have it working the way I want. See my comments 
below.

-gene

Paul Johnson wrote, On 01/06/2008 05:06 PM:
> On Jan 6, 2008 3:36 PM, Gene Smith <gds at chartertn.net> wrote:
>> I had a working Fedore 8 on /dev/sdb. On unused LogVol's on sdb I
>> installed ubuntu. However, ubuntu (live version) *insisted* on
>> reformatting /boot (/dev/sdb1). I did not go back and save the original
>> Fedora 8 /boot files (vmlinuz-, etc) thinking I could easily get them
>> back somehow, but can't determine how.
>>
>> Is there a way to restore the Fedora 8 /boot contents (w/o a complete
>> reinstall) so it will run again?
> 
> You should not have let Ubuntu share the boot partition that Fedora
> was already using.  That was the mistake, in my opinion.

Well, I think it insisted that it had to re-format a /boot partition. I 
was hoping it would share the one on /dev/sdb with fedora 8. The other 
choice was to use the /boot partition on /dev/sda which was also in use 
by fc 6. Anyhow, I let it do its thing thinking I could probably 
"rescue" it later. Was a bit harder than I thought!

> 
> Now, how to fix?  I'd try this way.  The Most direct route is to
> create a new partition where you can boot ubuntu from.  Create &
> format that partition, copy the files from your sdb1 to that new
> partition, then do the grub magic so that the system will boot from
> that new partition.  That amounts to running grub install and editing
> grub.conf so that it knows where your boot partition is.  I have
> actually done this job and followed a few web pages while doing it.
> 
> Be sure Ubuntu runs from that new boot partition before proceeding.

Since both the fc 6 on sda and f8 installed on sdb are lvm based, 
creating a new partition would require wiping the drive, I think, 
Instead I had created some new LogVol's on the copious free space of 
500G sdb for ubuntu where it installed OK previously (but taking over 
/boot).

To restore the f8 /boot I first saved the ubuntu vmlinuz and initrd.img 
over on to sda (in they got deleted, which they didn't) and, like you 
suggested, ran "grub-install /dev/sda". But first I had to get a few 
rpms from the current updates repository to get back the f8 specific 
contents of /boot:

kernel-2.6.23.9-85.fc8.i686.rpm
fedora-logos-8.0.3-1.fc8.noarch.rpm
grub-0.97-19.i386.rpm

I copied these to the f8 /boot after downloading with fc 6. The 
fedora-logos rpm was just to get back the grub splash screen for f8. 
Don't think I really needed grub but had to have kernel.

When running the f8 rescue (in chroot mode), these rpms reported as 
already installed. So I had to --force the installs which placed the 
proper f8 vmlinuz, etc files back into /boot. I then edited the 
/boot/grub/grub.conf that ubuntu put there to reference the respective 
operating systems. Then, again from f8 rescue I ran "grub-install 
/dev/sdb" to install the bootloader on sdb. Now when I set the bios to 
boot from sdb I see the fedora 8 splash and have choice of f8 and ubuntu 
on sdb and can also select fc 6 (installed on sda) from there too.
> 
> The old partition from which you were booting probably had a label
> from Fedora.  Probably it was /boot.  You can reformat that partition
> and re-install that label with e2label.  Then boot from your fedora
> rescue disk and it will dump you into a shell, where you can chroot to
> mount the existing drive.  I believe if you re-install the kernel rpm
> from that point, it will probably do the work needed to drop vmlinuz
> onto your hard disk.  Perhaps you also need to re-install the grub
> rpm.

I did "--force" the re-install of grub rpm but I don't think it had any 
useful effect. Didn't change anything in /boot AFAIK.

> 
> Supposing that works, then, depending on how you mark your partitions,
> either the Fedora or the Ubuntu will start by default.  In the
> grub.conf on the system that runs, you can put in the commands needed
> to boot the other one.

Yes, also set the grub.conf on sda so it will boot fc 6 (on sda) as well 
as f8 and ubuntu on sdb. So regardless of which disk I boot from, I can 
select any OS.

> 
> Be careful about disk labels. If Ubuntu is using labels like Fedora,
> you need to make sure that only the Fedora boot partition has the
> label /boot.  The Ubuntu should be labeled something else
> (Use e2label).

Didn't seem to have a problem with labels. Possibly because I am using 
LVMs (except for the sda1 and sdb1 /boot sectors).

> 
> I'm googling a bit to get you started. This one looks better than most.
> 
> http://danleff.net/myarticles/fedorainstall/linuxinstallharddrives5.html

Good article.

> 
> For me, the most difficult thing was to understand that the term
> "root" is used in 2 senses in the grub. conf.
> 
> title Fedora (2.6.23.9-85.fc8)
>         root (hd0,2)
>         kernel /vmlinuz-2.6.23.9-85.fc8 ro root=LABEL=/laproot agp=off
> agpgart=off
>         initrd /initrd-2.6.23.9-85.fc8.img
> 
> The first one refers to the partition where /boot is located.  The
> second one, in the kernel like, refers to the partition in which "/"
> is located.  

Well, what got me confused was the concept of (hdx,y). I originally 
thought /dev/sdb1 was *always* (hd1,0) and /dev/sda1 == (hd0,0). I 
finally realized that if my bios is set to boot from, say, /dev/sdb1 
(2nd hard drive) then to grub on sdb, sdb1 is seen as (hd0,0) and 
/dev/sda1 is (hd1,0).

> I'm just a simple political scientist, Captain Kirk, but
> wouldn't it have been better to call the first option "boot"?

Yes, but obfuscation is so much fun!

> 
> When you reboot your system, it may be necessary to use the "e"
> option in the boot prompt and fix these references.  Once it starts
> properly, you can get in and revise /etc/grub.conf.
>

Seems OK without using "e"

P/S: There is still one thing I don't understand. When the "live-ubuntu" 
installed on sdb it seemed to install grub on sda (I didn't tell it to). 
I had to always boot from sda via the bios. (Booting from sdb just 
printed "GRUB" and hung.) Not sure how you do this yourself. Would not 
boot from sdb but /boot on sdb contained the grub.conf for ubuntu. 
Possibly the DVD install of ubuntu is more flexible?





More information about the fedora-list mailing list