this post was submitted on 27 Jan 2024
48 points (91.4% liked)

Linux

48310 readers
645 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
48
submitted 9 months ago* (last edited 9 months ago) by i_am_hiding@aussie.zone to c/linux@lemmy.ml
 

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: failed to setup loop device for /dev/sdc1.

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

mount: /mnt: 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.

Edit: Output of fdisk -l when connected via SATA. Note the sector size is now 512 and the drive mounts happily.

Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HDN724040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 5852E3A7-A2E4-4589-9D93-F8020C2D7E54

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 7814035455 7814033408  3.7T Linux filesystem
you are viewing a single comment's thread
view the rest of the comments
[–] ares35@kbin.social 6 points 9 months ago* (last edited 9 months ago) (1 children)

i have a some sata->usb adapters/enclosures/docks that can't be used with > 2tb drives or with 4Kn (native 4k sectors, no 512 emulation) drives. i also have a 2-bay cheap nas that can only do 2x1tb or smaller and there's no new firmware or hacks to 'fix' it even though it's linux under-the-hood.

start with hooking it back up to sata to copy anything on it you want elsewhere, check the filesystem, and run the extended diagnostics.

[–] onTerryO@lemmy.ca 0 points 9 months ago* (last edited 9 months ago) (1 children)

This is the most likely problem. There is no way the output from fdisk should be different between the two connections (the USB and SATA) if they are both working correctly.

[–] ReversalHatchery@beehaw.org 1 points 9 months ago

Probably I'm wrong, but it feels like nobody has read the post. As I understand it's not a problem between 2 computers, but 1 computer and the drive being connected over USB with an enclosure or normally through SATA.