Is it safe to use a USB external drive without a valid partition table?
Here's what I did:
- Installed the SATA hard disk in the enclosure
- Connected it via USB
- With Disk Utility I formatted the drive with an EXT4 file system
- Started using the hard drive without any issue (copying and deleting files from it)
When I was doing a random fdisk -l
, I noticed that the drive didn't have a valid partition table:
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 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/sdc doesn't contain a valid partition table
Is it safe to keep using the drive like this? Should I be worried? :)
Thanks!
Solution 1:
Given what you've shared so far, you're fine. Essentially, you're using the entire disk as if it was a partition. Your system is smart enough to look at the first few bytes of the disk, and find "oh, gee, this device is being used as a partition."
Partitions are just ways to carve up a disk for different reasons; for most people's external storage needs, that would only matter if you wanted to boot an operating system from that drive.
What would be risky is if you take that drive and plugged it into either a mac or a pc; by default, these operating systems have a popup saying "the disk you've inserted doesn't have a valid file table, would you like me to initialize it?" If you accidentally hit the return/enter key, it may do just that. That said, it's the same risk even if you did put partitions on it.
Solution 2:
Curious that you mention that case. I have the same case here. Let me add that I have tested this hard drive since 11.10 all the way to 13.04 right now. Keep on reading to see everything the hard drive has gone through with the no problems at all.
To start, doing sudo fdisk -l
brings me the following:
Disk /dev/sdd: 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/sdd doesn't contain a valid partition table
Now, I have used this drive internally and in an USB External enclosure. It works perfectly and is detected correctly with no problems in other Ubuntu systems. Note that I am talking about working correctly for any general intent and purpose (files, movies, text, music, etc.. ). In it I have many movies and tv series. I even ran Disk Utility on it and got the following:
Now here is the only problem I have found. When checking the Drive with Gparted I get the following message for it:
And even though it looks like an "OMG ITS GOING TO DIE!!", it has been like that for little over a year. Which means, it lasted the use I gave it on Ubuntu 11.10, 12.04, 12.10 and right now 13.04.
I can actually run fsck
on it and it would say everything is perfect.
I can even check how it is mounted using mount
. When I mount the unit using the Nautilus file manager it shows like this:
/dev/sdd on /media/cyrex/stuff type ext4 (rw,nosuid,nodev,uhelper=udisks2)
So with a year of a lot of copying, pasting, deleting, executing stuff from it, changing it from one PC to the next and basically doing anything to it, it still works, the data is safe and I love Linux. I also invite you to read this question which should set your mind at ease.
Additional Information regarding Gparted (Thanks to chaskes)
As an aside, the error messages from gparted just mean what you already know: there's no partition table. When providing information, gparted calls programs in e2fsprogs (if installed). These programs require the device name to be passed in. The problem is that gparted is a partition editor. When it sees /dev/sdd by itself in /proc/partitions, it assumes there must really be a partition 1 and passes /dev/sdd1. (Note the path gparted reports.) e2fsprogs can't find the superblock since the device name it has been given doesn't exist. But, if you run the e2fsprogs from the cmd line using the actual device name /dev/sdd, they work fine. In other words, despite the anxiety the gparted errors may cause, the filesystem and it's superblock are just fine.
Solution 3:
Partitions are indeed not strictly necessary for using block devices, I also have been using such scheme in some of my USB drives with no problems.
Having said that, partitions are good for some things. One that comes to mind is booting. If the BIOS tries to boot from that device, it will expect to find a partition table and a MBR at some fixed locations. Compatibility is another point. For instance, I am not sure what Windows will think of this minimalistic approach, probably nothing too good.
I'd just say to be careful when you are running partitioning programs, installing GRUB or connecting the USB drive to non-Unix operating systems.