The Haiku/BeOS Tip Server
Tips and tricks for Haiku/BeOS users

Making “hidden” Linux partitions visible to BeOS

Contributed by: Eugenia Loli-Queru
This tip is valid for: Both BeOS and Haiku

Some users may have the bad experience where BeOS is neither able to mount nor “see” any partitions (logical ones mostly) on a hard disk that was re-partitioned by Linux’s fdisk or DiskDruid.

The reason for this is that BeOS is trying to identify partitions named after their physical position in the drive. For example, hda3 is the third physical partition of a drive on primary master channel. This is the model that DOS/Windows partitioning tools follow as well.

Linux tools, however, do not name a partition after their physical order on the disk, but relative to WHEN they were created. So, if you keep re-partitioning your hard drive to create swaps or / partitions for Linux, you will end up with partitions having names like hda10 or hda11 etc depending on when they were created. So, the number on the name of a partition does not reflect the position of the partition inside the drive.

MS-DOS and Windows are capable of reading such overlapping partitions, which is why FAT32 partitions are sometimes rendered unbootable after installing Linux.

BeOS 5, on the other hand, does not allow this. Because it “sees” the partitions as a linked list, it does not allow any differentiations in order to protect itself. This is also why you can’t see any logical partitions on a drive that has been re-partitioned with Linux (most likely BeOS will be able to see only the primary one).

Because Linux most definitely is not going to change the way it is creating partitions and because Be may never “fix” this security “gotcha,” there is only one way to fix this situation. Note: the following tip is NOT for newbies and not for the faint of heart:

The linux program sfdisk lets you reshuffle partitions. Another tool is cfdisk, which you can try if you don’t trust the plain fdisk (for the love of God don’t use DiskDruid).

Find the exact partition boundaries with this command:

fdisk -l /dev/hdX

And write them down on paper. Next, delete them all and recreate them in the correct physical order again. As long as you don’t make any typos and enter the exact partition boundaries again, no data will be lost. Be aware that you must boot Linux afterwards with the reshufled root=/dev/hdX LILO option, since the numbering changed, and make any changes that have to be made accordingly to the /etc/fstab file. BeOS will now be able again to read the partition’s table.

Posted in Miscellaneous


(comments are closed).