Hi All,

I have a 4TB drive that was originally in a PC connected via SATA. I now wish to put it in an external enclosure and connect it via USB, however this is proving more difficult than I expected, and from what I understand it’s Windows XP’s fault.

On attempting to mount the drive with sudo mount /dev/sdc /mnt, I receive the following error:

mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sdc, missing codepage or helper program, or other error.

The output of fdisk -l is as follows:

Disk /dev/sdc: 3.64 TiB, 4000787025920 bytes, 976754645 sectors
Disk model: Expansion Desk
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start        End    Sectors Size Id Type
/dev/sdc1           1 4294967295 4294967295  16T ee GPT

As can be seen, the disk is detected correctly as a 3.64TiB drive, but there is a partition that’s read as 16TB. This, AFAIK, is because the sectors are incorrectly read as 4096 bytes long when they should be 512 bytes, and this is a thing that external enclosures do to ensure MBR compatibility with Windows XP.

I tried overcoming this by mounting as follows:

$ sudo mount -o ro,offset=$((1*512)) /dev/sdc1 /mnt

however now I have a new error:

mount: /mnt/tmp: failed to setup loop device for /dev/sdc1.

Trying to mount with sudo mount /dev/sdc1 /mnt only yields

mount: /mnt/tmp: special device /dev/sdc1 does not exist.

I’m at a loss as to how to mount this drive - at least, without reformatting it. Is it at all possible? Once I’ve cracked the code, can I configure /etc/fstab to do it automatically for me, or am I stuck in this limbo-land where I have data on my disk that’s only readable with a hacky workaround? As a last resort, I think I can plug it back in via SATA, copy all 4TB off, plug it in via USB, reformat it and copy everything back on, but I want to avoid that hassle.

  • FigMcLargeHuge@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    8 months ago

    I think the first time you are trying to mount the drive and not the partition “sudo mount /dev/sdc /mnt” and on the second and third attempt have the sdc1 right, but need to make a folder under mnt to mount the drive onto. Make a folder like ‘tempdrive’ under /mnt and then try it with this since you said it was an ext4 filesystem. Note, you can name it whatever you want I just picked that as an example:

    cd /mnt

    sudo mkdir tempdrive

    sudo mount /dev/sdc1 /mnt/tempdrive

    If it doesn’t recognize the filesystem then use -t

    sudo mount -t ext4 /dev/sdc1 /mnt/tempdrive

    And yes, once you get it down, an fstab entry will make this mount every time, but I would use the uuid in the fstab. I have two mounted on a machine like this in my /etc/fstab:

    UUID=“6a95603a-2112-4c4d-ad4d-e146e646a74a” /media/largedrive ext4 auto,nofail,noatime,rw,user 0 0

    UUID=“3E31-540B” /media/new4tbdrive exfat auto,nofail,noatime,rw,user 0 0