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
Run the command partprobe
to make the computer rescan the disk for partitions.
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 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.
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).
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.
User contributions licensed under CC BY-SA 3.0