What are the ramifications of not having a valid partition table?

10,125

Solution 1

It is possible to have a filesystem directly on a block device with no partition table on it, and there's nothing intrinsically wrong with that. It just means you can have only one filesystem and nothing else on it (no swap partition, etc...). However, it is unlikely that such a block device is bootable. The bootloader (grub) usually sneaks itself into some free space that results when the disk is split up into partitions, and there would be nowhere to put it without that.

So yes, per psusi's comment, the tool must be "wrong".

What's possible is that your disk has a GPT partition table and no PC legacy partition table. fdisk only supports PC legacy partition tables, so it could be reporting that it can't find one. That's not supposed to happen because GPT partitions are supposed to contain a valid dummy fdisk partition table for backward compatibility, but I suppose it's possible. To check for that, use parted or gdisk or ask the kernel what it thinks the partitions are by looking at /proc/partitions.

Another possibility is that fdisk cannot read the disk for some reason (do you have permission? Are you root?).

Solution 2

This is not really a good or bad thing. The error "doesn't contain a valid partition table" does not always actually mean that. You can have a valid partition table at an unrecognized offset and get the same error.

For instance:

  • if you create a LVM volume on a raw disk without first creating a partition and then lay down a file system on the volume you will get this error
  • if you are trying to create "aligned" storage and changed the beginning sector to be divisible by 8 I have seen this error or more commonly a boundary error

I run several machines that to achieve disk alignment I start the beginning sector at 4096 (divisible by 8) and create partition 1 starting from this point.

or

Create LVM without first creating a partition so that it starts from the beginning of the disk and not from the default offset.

Example:

By default most disks start at sector 63 when you look at them using fdisk -lu

Disk /dev/sdb: 21.4 GB, 21475885056 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41945088 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    37752749    18876343+  8e  Linux LVM
/dev/sdb2        37752750    41752934     2000092+  8e  Linux LVM

-receive the boundary error when modifying the starting sector

Disk /dev/sda: 98.7 GB, 98784247808 bytes
255 heads, 63 sectors/track, 12009 cylinders, total 192937984 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *         128      204799      102336   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2          204800    78329807    39062504   82  Linux swap / Solaris
/dev/sda3        78329808   192937983    57304088   83  Linux

-partition table error when adding LVM to a drive without first creating a partition thus no partition table

Disk /dev/dm-5: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-5 doesn't contain a valid partition table

--> this partition is /usr and is mounted /dev/dm-5 on /usr type xfs (rw) --> and fully accessible

ll /usr
total 272
drwxr-xr-x   5 root root    38 Jan  3 11:10 X11R6
drwxr-xr-x   2 root root 57344 May  9 16:25 bin
..........

Add in your output from fdisk -lu to you question, likely you are receiving this error on something other than your main drive and definitely not from /dev/sda1 since you did not state that you had to do any custom modifications to get the system to boot.

This is all supposition without seeing your specific details.

Edit: A lot of what I said was contained in Celada's answer (in a more succinct and much easier to read fashion :}). Hopefully my "exposition" has not added to the confusion.

Share:
10,125

Related videos on Youtube

John Aten
Author by

John Aten

Updated on September 18, 2022

Comments

  • John Aten
    John Aten over 1 year

    I recently upgraded my Ubuntu from 11.10 (Oneiric) to 12.04 (Precise Pangolin) on a Dell Inspiron B130 Laptop. When I run fdisk -l it says that my HD doesn't contain a valid partition table. I have been reading a great deal about proper partitioning that leads me to believe that this is bad, but I have noticed no strange behavior or problems. What are the ramifications of not having a valid partition table?

    • Admin
      Admin about 12 years
      The tool must be wrong since you could not boot from the disk without one. Try parted -l.
    • Admin
      Admin about 12 years
      If you could (1) run the Boot Info Script, then (2) copy/paste the result to a pastebin (e.g. paste.ubuntu.com), and finally (3) add the URL of the pastebin to your question, then we might be able to provide more useful feedback. Or another way to create a pastebin with the Boot Info Summary using a utility program is outlined here.
  • Nils
    Nils about 12 years
    +1 for the detailed answer - although a little bit off topic - regarding the original question. ;-)
  • 2bc
    2bc about 12 years
    Yeah I got a bit carried away!
  • John Aten
    John Aten about 12 years
    Running sudo fdisk -l did the trick.
  • John Aten
    John Aten about 12 years
    They say that if you hear hoofbeats in Central Park, you don't think of zebras, but I would add that you should know what a zebra looks like just in case.