[Techtalk] I lost my filesystem

Carla Schroder carla at bratgrrl.com
Mon Apr 14 09:15:09 EST 2003


On Monday 14 April 2003 6:14 am, Hanlie Pretorius wrote:
> Hi,
>
> I'm fairly new to Linux and I use Redhat 8.
>
> I had one disk that I shared between Windows 2000 and Linux. I then got a
> new disk and loaded Linux on the second disk as well. I could see the old
> Linux partition and Windows from the second disk and everything worked
> fine.
>
> Then I used PartitionMagic in Windows to delete the old Linux partitions
> and I extended the Windows partition to cover the whole disk. From that
> time on the Linux boot sequence on the second disk stops where it tries to
> find my root file system (the second partition on my 2nd hard disk - hdb2).
> It then gives me the option to go to a shell and at that point I'm more or
> less in the same place as a rescue boot.
>
> Our systems administrators have looked at it and they say I've lost the
> label of the partition or GRUB doesn't know where the parition is. Although
> I can reload Linux on the second drive, I'd prefer to save everything that
> I've setup on it from oblivion.
>
> We've tried the following to solve the problem:
>
> * change fstab to remove references to hda but the whole system is in
> read-only mode and we can't save fstab (we can see the three partitions
> though)
> * change the label of hdb2 with fdisk and parted
>
> Can someone out there help me please? I feel very frustrated (and stupid!)
>
> Thanks
> Hanlie

How familiar are you with GRUB? GRUB reads filesystems and kernel executables, 
rather than inflexibly restricting the user to disk geometry. It uses a 
different partition numbering scheme than fdisk, GRUB starts from 0:

 /dev/hda1
 /dev/hda2
 /dev/hda4

 translates to

 hd0,0
 hd0,1
 hd0,2
 A second hard drive is hd1, and so forth..

GRUB can find the boot partition and kernel. At boot, hit C to get to GRUB's 
command line. To boot manually, you need 3 things: root, kernel, then the 
'boot' command. Use tab completion to find the root and kernel values. Type 
the known value, in your case hd1, then keep hitting tab until something 
happens:

#use tab-completion
 grub> root (hd1, 

GRUB will respond something like this:

 Possible partitions are:
 Partition num: 0, Filesystem type is reiserfs, partition type 0x83
 Partition num: 1, Filesystem type unknown, partition type 0x92
 Partition num: 3, Filesystem type unknown, partition type 0x17
 Partition num: 4, Filesystem type is ext2fs, partition type 0x83

Enter the correct partition, yours is hdb2, so it looks like this:

grub> root (hd1,1)

GRUB will confirm:

 Filesystem type is ext2fs, partition type 0x83

Now find the kernel:

 #use tab-completion
 grub> kernel /boot/vmlinuz 
 Possible files are: vmlinuz vmlinuz-2.4.19

Enter vmlinuz-2.4.xx, whatever yours is, plus append the correct root line. 
Notice the trickiness, on this line use fdisk-type values:

grub> kernel /boot/vmlinuz-2.4.19 root=/dev/hdb2

Enter the boot command:

 grub> boot

If you found the correct root partition and kernel, it will boot. Then edit 
your GRUB boot menu, and there you are. Don't listen to people who tell you 
to change your partition labels, they don't know what they are talking about.

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~
Carla Schroder
www.tuxcomputing.com
this message brought to you
by Libranet 2.7 and Kmail
~~~~~~~~~~~~~~~~~~~~~~~~~


More information about the Techtalk mailing list