I have a 4TB hard drive /dev/sdb, which has a formatted NTFS filesystem occupying the whole drive. It apparently has no partition table of any kind, or if it does, it is out of date or corrupted.
fdisk -l
shows this:
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 / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x2052474d
This doesn't look like a partition table
Probably you selected the wrong device.
Device Boot Start End Blocks Id System
/dev/sdb1 ? 6579571 1924427647 958924038+ 70 DiskSecure Multi-Boot
Partition 1 does not start on physical sector boundary.
/dev/sdb2 ? 1953251627 3771827541 909287957+ 43 Unknown
Partition 2 does not start on physical sector boundary.
/dev/sdb3 ? 225735265 225735274 5 72 Unknown
Partition 3 does not start on physical sector boundary.
/dev/sdb4 2642411520 2642463409 25945 0 Empty
Partition table entries are not in disk order
gdisk -l
says only an MBR partition table is present.
The drive works fine when running under Linux; I can mount /dev/sdb without issues. But I want to load the drive using an hard drive enclosure on a windows machine so that I can run chkdsk
on it. Windows however sees this MBR as shown in fdisk, and shows 4 partitions, none of which are usable (none are even marked as NTFS).
Is it possible to simply write a partition table to this drive without changing the contents of the NTFS filesystem, so that Windows 7 can access it as a single partition occupying the whole drive? If so, how?
Edit:
If it's not possible to simply write a partition table, is there some non-destructive method to accomplish the same goal of using the drive under Windows, perhaps by downsizing the file system by a few kilobytes and then writing a partition table? (ie, with gparted
).
33*512
bytes just after, and also a similar space at the end of the disk.