Disk doesn't contain a valid partition table

I know this is an old bug, and I have tried some of the solutions here to no success. I am posting because the external HDD that doesn’t mount has my dissertation and I really don’t feel, in this case, like tinkering around with code I don’t really understand (I don’t want to corrupt the file-system).

I’m using Opensuse 12.1 KDE on a Lenovo G570 64bit. The device is a Lacie 500Gb disk, formatted for Windows, where it works properly. I just made a fresh install of Opensuse, using all the hard drive but using a separate partition for /home. The suspect HDD was running fine under Debian. The physical USB port works fine and two other flash-drives work properly. I can see the drive on the device notifier but I cannot mount it.

This is some output that might be useful:


$ sudo /sbin/fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009a943

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    46153727    20972544   83  Linux
/dev/sda3        46153728   976773119   465309696   83  Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table


$ sudo mount /dev/sdb /mnt

NTFS signature is missing.
Failed to mount '/dev/sdb': Invalid argument
The device '/dev/sdb' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?


$ rpm -qa | grep ntfs

libntfs-3g81-2011.4.12-3.1.2.x86_64
ntfs-3g-2011.4.12-3.1.2.x86_64
ntfsprogs-2011.4.12-3.1.2.x86_64

$ sudo mount -t ntfs-3g /dev/sdb /mnt

root's password:
NTFS signature is missing.
Failed to mount '/dev/sdb': Invalid argument
The device '/dev/sdb' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?


$ mount

devtmpfs on /dev type devtmpfs (rw,relatime,size=1991948k,nr_inodes=497987,mode=755)
tmpfs on /dev/shm type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sda2 on / type ext4 (rw,relatime,user_xattr,acl,commit=600,barrier=1,data=ordered)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=21,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
tmpfs on /media type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /var/lock type tmpfs (rw,nosuid,nodev,relatime,mode=755)
mqueue on /dev/mqueue type mqueue (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /var/run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sda3 on /home type ext4 (rw,relatime,user_xattr,acl,commit=600,barrier=1,data=ordered)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfs-fuse-daemon on /home/monorhesus/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)

I have added ntsf to /etc/filesystems:


$ kdesu kwrite /etc/filesystems 

vfat
hfs
minix
reiserfs
ntfs
*

And I have tried the dirty old trick of restarting the laptop with the HDD connected. Nothing works.

Please let me know if I can provide any additional info. Any insight most appreciated.

Edit: Sorry, I the HDD has an HFS+ filesystem. I have installed hfsutils and retried to no avail.

I believe you need to add hfsplus in /etc/filesystems.

Thanks for your time. I had already done that, but I hadn’t restarted the computer. Now it works.

For those who might in the future come across this post with the same problem:

I installed hfsutils,
From a terminal added the word ‘hfsplus’ in /etc/filesystems with ‘kdesu kwrite /etc/filesystems’, right below ‘hfs’
Saved and restarted.

I’m not sure if the restarting part is necessary though.

Thanks again.

I’m not sure if the restarting part is necessary though.
Yes it is .