grub errors and read-only

Ken Moffat ken at kenmoffat.uklinux.net
Fri Aug 5 09:51:09 PDT 2005


On Fri, 5 Aug 2005, Donal Farrell wrote:

> yupe, i tried to put sarge on /dev/hda2 which didn't exist at all when
> i just had suse and lfs. the /dev/hda2 was the primary partition i
> made for debian, and thought you can't mount this on / as suse is on /
> on /dev/hda1 (am I totally wrong here?).

 You probably can't mount over '/' because your shell is running under
'/' (loose terminology), so I think I agree.

> therefore i chose to make a
> /boot on /dev/hda2 which i take to mean that sarge will be mounted on
> /boot on /dev/hda2. the debian installer kicks out but only after it
> partitions the drive.

 If the host system mounts something at /boot (which is a standard
directory), and that something is another install, then

(1.) the existing contents of /boot are inaccessible
(2.) the files from the (debian) install are at /boot /boot/boot
/boot/bin /boot/etc /boot/usr and so forth, which is usually not very
convenient.

> As per instructions in lfs, the lfs grub
> bootloader takes precedence over all otheres, by which i mean it loads
> itself or suse or whatever. this menu.lst is
>
> title LFS 6.0
> root (hd0,0)
> kernel /boot/lfskernel-2.6.8.1 root=/dev/hda1
>
> why is root on /dev/hda1 when lfs is on /dev/hda4??

 Like I said, I'm *not* a grub user (well, I've still got it on one box
at the moment) but I imagine that is telling grub to use hda1 (0,0) to
find that kernel, and then telling the kernel that hda1 is '/' which
sounds very wrong - if you aren't using modules, that might work
(running the LFS kernel on Suse).

> also, from the same menu.lst, suse is
>
> title SuSE Linux 9.1 Professional
>     kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=0x31a splash=silent
> desktop resume=/dev/hda5 showopts
>     initrd (hd0,1)/boot/initrd
>
> this shows a swap on /dev/hda5, which i deleted and put on /dev/hda3
> and shows root=/dev/hda2 :(
>

 Wow, now that's going over my head : 0,2 is probably hda2 ?  Sounds as
if Suse thinks it's on hda2.  If Suse and fedora both use initrds, you
will need to rename at least one of them in case you end up putting
them in the same /boot/ directory (also edit the corresponding grub
entry).  BUT, mixing software suspend with recovering from disaster is
asking for pain - I don't recognise all of those options, but resume=
will cause pain if wherever you point it to doesn't contain the stored
system image (which it won't after booting a different system and using
swap).

> the actual menu.lst in suse's grub is
>
> title SuSE Linux Professional 9.1
>     kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 vga=0x31a splash=silent
> desktop resume=/dev/hda3 showopts
>     initrd (hd0,0)/boot/initrd
>
> here i can see the valid swap
>
> by the way, i only have suse, FC4 and lfs, along with the swap now. By
> right, I should have shared /home and by right i should have extended
> partitions.
>
> do i HAVE to overwrite suse now and reinstall it or is there indeed
> some magic i can perform here? what must i do in /etc/fstab in fedora
> to allow entries for suse and lfs? by the way, i also have xen, bochs
> and vmware on suse and their kernel images are also in /boot
>

 It all depends.  You shouldn't need to overwrite Suse, just change
various things within it.  But, to be able to repartition, you need
unallocated space on the drive.  Copying to another drive, or perhaps
writing to CD or DVD, could preserve the data, but you then need a
bootable CD that you are comfortable with to repartition and restore the
data [ using a rescue CD plus a CD/DVD of backed-up data in the *same*
drive imposes severe constraints on the rescue CD and forces it to use a
very minimal busybox and uclibc, or a minimal shell with dietlibc ] so
you will probably need to reinstall after making and testing backups.

 Then decide on the required partition layout [ perhaps with multiple
dedicated swap partitions if you are going to try suspend-to-disk,
perhaps with a partition to eventually share as /boot ], then
reinstalling one distro and tweaking its partitioning.  This is NOT
something to rush into.

 You've reached the limits of my understanding about how grub works, but
I still believe you can probably boot the installed Suse and LFS using
the type of procedure I outlined earlier.  BUT, you need to become clear
where grub is installed, which partition is which, and how grub sees
them.  IF your last install was fedora AND you let it set up grub, THEN
go with what is in fedora's /boot (don't rename any of the fedora
kernels or initrds) and try to add the others.  After each attempt to
add them, reboot, see if the extra system boots, and if it does, see if
it's using the expected system (fedora probably has /etc/redhat-release
or similar, Suse will have something unique, LFS should have
/etc/lfs-release).  You'll still need to fix the fstabs in the Suse and
LFS systems before trying to boot them.

Ken
-- 
 das eine Mal als Tragödie, das andere Mal als Farce




More information about the blfs-support mailing list