13

I recently unmounted a 4TB hard drive from one computer in order to access the files directly from another computer. It seemed like there were no problems with the unmounting process. When connecting the hard drive to the other computer, the hard drive is recognized in "/dev" as sdb, but the partition "sdb1" is not appearing, therefore I cannot mount it. If I run

fdisk -l /dev/sdb


WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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

Device Boot          Start     End      Blocks      Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT

The sdb1 partition shows up. Since this is a 4TB partition, I also ran the command

parted /dev/sdb

GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ASMT 2105 (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Then typed "print". In this case, the sdb1 partition does NOT show up.

Why is there a mismatch of information here? Does this mean that the partition has been deleted? Is there any way to possibly recover this partition and mount it?

Thank you very much in advance

  • There are three reasons why that /dev/sdb1 line doesn't appear but the /dev/sdb does. 1. because there is no partition table on that disk on account that it wasn't created. 2. Partition table is damaged or 3. the partition table houses a primary filesystem that this computer can't recognize on account that libraries for it aren't installed. Remedy: You can run diagnostics on the partition table by using the fdisk /dev/sdb and typing 'p' for more info. If the partition is there, and not damaged, and you have libraries to parse and read, that line should appear. – Eric Leschinski Apr 27 '17 at 1:42
16

Run the command partprobe to make the computer rescan the disk for partitions.

  • Thanks for the response. I tried running that command, along with just restarting the entire computer with no success. – rmsrms1987 Nov 15 '13 at 1:30
  • What's the output of fdisk -l /dev/sdb ? Also what's the output of dmesg ? – Lawrence Nov 15 '13 at 1:56
  • 1
    @rmsrms1987 This is odd... You are using fdisk on a 4TiB partition, and it seems to work fine. However this article ibm.com/developerworks/linux/library/l-gpt/index.html explains that partitions larger than 2 TiB cannot be handled by MBR (only by GPT), and that fdisk cannot handle GPT. This seems to imply you have a MBR on your disk. Could you please give us the output of fdisk -l /dev/sdb ? TY – MariusMatutiae Nov 15 '13 at 8:44
  • I believe the partition was created with GNU Parted since it is more than 2TBs, but nothing is being output when I try to access through this method. For some reason, sdb1 only appears when using fdisk. – rmsrms1987 Nov 15 '13 at 14:38
  • 1
    I have edited my original post to show a more detailed output of the fdisk and parted outputs. Thank you again for helping me with this issue. – rmsrms1987 Nov 15 '13 at 18:20
3

I don't know if this is still an up to date problem, but I had the same issue with one of my harddrives. I used testdisk and told it to analyze the disk. It found the missing partition and updated the disks partition table. Then I ran the command partprobe and the partition showed up in /dev/ fully functional.

  • This looks like a duplicate of another answer. – bwDraco Jan 24 '15 at 16:43
1

This is likely not your issue, but I had an issue with similar symptoms that was caused by there being a RAID superblock on the drive.

Now, granted, I wanted to wipe everything on my drive anyway, so this is not recommended if that is not the case for you. Butmdadm --zero-superblock /dev/sdb did the trick for me in my case.

0

No one had talked about booting from a modern LiveCD / LiveUSB that supports GPT?

Just try to boot the computer with a Live distro of any modern Linux, also give a try with the GParted live disk, SystemRescueCD, etc.

It could be that the computer you used do not have compatibility with GPT and/or <2TiB disks, also could be the SATA controller not supporting >2TiB disk (i saw some on my hands, some on motherboards, some on USB enclosures)... and your is 4TiB, that is also worst, some controllers only support upto Three TiB, but not 4TiB or more per disk.

Why you see the main partition when use fdisk -l? You are most probably seeing the 'protective' MBR partition that protects the GPT partition/s; that is stored on the very first sector of the disk... most SATA controllers that have problems with disck >2TiB and also some that only has problems with >3TiB can see the first 2TiB/3TiB of the disk, and so they see the MBR (first sector) correctly, but not the GPT, since GPT sotres data after the MBR and at the very end of the disk.

Try to ensure both things: You have GPT compativility (use gfisdk instead fo fdisk to check) and have a SATA controller not limited to only <2TiB neither one limited to <3TiB.

Best way to check it: Boot from any LiveLinux, like GParted, SystemRescueCD, etc. and try to list partitions (with fdisk), modern fdisk -l can list GPT partitions.

P.D.: MBR fields structure limits usable zone to first 2TiB, because of fields length (MBR was designed with that limitation).

0

While fdisk - depending on version - will try to create a partition on a 4TB drive, and even mark the partition type as GPT, that partition will not be recognised by parted.

The solution is to delete the partition you created with fdisk and use parted to do the whole thing:

parted /dev/sdb
mklabel gpt
unit TB
mkpart primary 0 3
print
quit

You may need to run "mkpart primary 0 3TB" instead of "mkpart primary 0 3".

In the unlikely event you don't see /dev/sdb1 after this, run partprobe and look again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.