OS13.1 64bit would not mount external USB drive

Hello all,

Please let me ask for your help in the following issue.

I newly bought an external USB storage drive (Seagate Expansion 1TB). It was preformated to NTFS. First I connected it to System1 (OS13.2 32bit, “classic” BIOS) where it mounted okay. GParted complained, though: “/dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos partition table, as it should. …]”. Similar to PitaJ’S instructions at this link , I zapped the GPT data.

Next I connected the drive to System2 (Win8.1 64bit, UEFI in Legacy mode) where the drive was well recognized. For no particular reason, I formated the drive to NTFS before I shrunk the NTFS partition through Disk Management to about 465GB. Back on System1, I then claimed the remaining disk space for an EXT4 Linux partition. The NTFS partition is still mountable.

Now I want to use the drive on System3 (OS13.1 64bit, UEFI in Legacy mode - dual boot with System2). The issue is that the Device Notifier does not bring it up, nor does GParted. An older external drive is well recognized by the Device Notifier with one FAT32 and one EXT4 partition.

Using ‘lsusb’ on System3, I do see the new drive:


linux-7cdu:~> lsusb
...]
Bus 002 Device 008: ID 0bc2:2322 Seagate RSS LLC 
...]
linux-7cdu:~> uname -r
3.18.6-1.gec2a744-desktop

(Remark about the kernel version: In order to make OS13.1 handle the ethernet card properly, I had to install a newer version than the one OS13.1 was released with.)

Why is the new external USB drive not being brought up with its two partitions on System3? What can I do to change that?

Thanks in advance for your help.

I suggest that install “gptfdisk-fixparts”. I know that’s available (in the repos) for 13.2. I don’t currently have a 13.1 system to check if it is available there.

Then run

# fixparts /dev/sdX

where the “X” is what matches the USB device.

This fixes broken partition tables that can result when GPT partitioning is changed to legacy partitioning.

I don’t know if that will solve your problem, but it is at least worth a try.

On System1 (OS13.2 32bit, “classic” BIOS) and System3 (OS13.1 64bit, UEFI in Legacy mode), I installed “gptfdisk-fixparts”. Some output on System1:


linux-lcog:~ # fdisk -l /dev/sdb

Disk /dev/sdb: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x000491a9

Device     Boot     Start        End   Sectors   Size Id Type
/dev/sdb1               1  975177630 975177630   465G  7 HPFS/NTFS/exFAT
/dev/sdb2       975177631 1953525166 978347536 466.5G 83 Linux

Partition 2 does not start on physical sector boundary.

Partition 3 does not start on physical sector boundary.

linux-lcog:~ # fixparts /dev/sdb
FixParts 0.8.10

Loading MBR data from /dev/sdb

MBR command (? for help): p

** NOTE: Partition numbers do NOT indicate final primary/logical status,
** unlike in most MBR partitioning tools!

** Extended partitions are not displayed, but will be generated as required.

Disk size is 1953525167 sectors (931.5 GiB)
MBR disk identifier: 0x000491A9
MBR partitions:

                                                   Can Be   Can Be
Number  Boot  Start Sector   End Sector   Status   Logical  Primary   Code
   1                     1    975177630   primary     Y        Y      0x07
   2             975177631   1953525166   primary              Y      0x83

MBR command (? for help): q
This will abandon your changes. Are you sure? (Y/N): y

linux-lcog:~ # gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************

Warning! Main partition table overlaps the first partition by 33 blocks!
You will need to delete this partition or resize it in another utility.

Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.

Command (? for help): p
Disk /dev/sdb: 1953525167 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A401E82B-FD39-4603-A493-B7A7CBE78E9E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525133
Partitions will be aligned on 8-sector boundaries
Total free space is 0 sectors (0 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1               1       975177630   465.0 GiB   0700  Microsoft basic data
   2       975177631      1953525166   466.5 GiB   8300  Linux filesystem

Command (? for help): q

Not being familiar with the above tools, nor with details of partitioning, I just picked up ‘fixparts’ and ‘gdisk’ from your above reply and various posts. For relative beginners, what is their purpose resp. difference?

On System3, when I plug in the external drive, I do see it listed in the ‘lsusb’ output, yet no /dev/sd? entry, hence no ‘fixparts’ and ‘gdisk’ output.

Can I provide further information to solve this problem? What is the next step?

Okay, thinking to have as bare a device as possible, I removed from the external disk the EXT4 partition using the OS13.2 system and the NTFS partition using Win8.1.

Then gleaning some commands from https://askubuntu.com/questions/285539/detect-and-mount-devices , I did the following on the troublesome OS13.1 system:


[disk unplugged]
linux-7cdu:/tmp # ls -l /dev/* > dev-unplugged.lst
[disk plugged]
linux-7cdu:/tmp # ls -l /dev/* > dev-plugged.lst  
linux-7cdu:/tmp # diff dev-plugged.lst dev-unplugged.lst 
265d264
< lrwxrwxrwx 1 root root 18 Oct 30 12:20 189:138 -> ../bus/usb/002/011

[disk unplugged]
linux-7cdu:/tmp # dmesg -H|tail
...]
[Oct30 12:14] usb 2-3: new high-speed USB device number 10 using xhci_hcd
  +0.166296] usb 2-3: New USB device found, idVendor=0bc2, idProduct=2322
  +0.000009] usb 2-3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
  +0.000004] usb 2-3: Product: Expansion
  +0.000004] usb 2-3: Manufacturer: Seagate
  +0.000003] usb 2-3: SerialNumber: NA81R7RC
...]
  +8.618755] usb 2-3: USB disconnect, device number 10

Back on the OS13.2 system:


[disk unplugged]
linux-lcog:/tmp # ls -l /dev/* > dev-unplugged.lst
[disk plugged]
linux-lcog:/tmp # ls -l /dev/* > dev-plugged.lst
linux-lcog:/tmp # diff dev-plugged.lst dev-unplugged.lst
51d50
< brw-rw----  1 root     disk      8,  16 Oct 30 12:26 /dev/sdb
54d52
< crw-rw----  1 root     disk     21,   2 Oct 30 12:26 /dev/sg2
188d185
< lrwxrwxrwx 1 root root 6 Oct 30 12:26 8:16 -> ../sdb
196d192
< crw------- 1 root root 252, 2 Oct 30 12:26 4:0:0:0
251d246
< lrwxrwxrwx 1 root root 18 Oct 30 12:26 189:391 -> ../bus/usb/004/008
263d257
< lrwxrwxrwx 1 root root  6 Oct 30 12:26 21:2 -> ../sg2
271d264
< lrwxrwxrwx 1 root root 14 Oct 30 12:26 252:2 -> ../bsg/4:0:0:0
399,400c392,393
< drwxr-xr-x 2 root root 520 Oct 30 12:26 by-id
< drwxr-xr-x 2 root root 160 Oct 30 12:26 by-path
---
> drwxr-xr-x 2 root root 460 Oct 30 12:26 by-id
> drwxr-xr-x 2 root root 140 Oct 30 12:26 by-path

linux-lcog:/tmp # dmesg -H|tail -30
...]
  +4.427767] usb 4-3: new high-speed USB device number 10 using ehci-pci
  +0.134538] usb 4-3: New USB device found, idVendor=0bc2, idProduct=2322
  +0.000013] usb 4-3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
  +0.000010] usb 4-3: Product: Expansion
  +0.000009] usb 4-3: Manufacturer: Seagate
  +0.000008] usb 4-3: SerialNumber: NA81R7RC
  +0.005488] scsi6 : uas
  +0.001630] scsi 6:0:0:0: Direct-Access     Seagate  Expansion        9300 PQ: 0 ANSI: 6
  +0.002376] sd 6:0:0:0: Attached scsi generic sg2 type 0
  +0.000242] sd 6:0:0:0: [sdb] Spinning up disk...
  +1.003696] ...ready
  +2.008516] sd 6:0:0:0: [sdb] 1953525167 512-byte logical blocks: (1.00 TB/931 GiB)
  +0.174026] sd 6:0:0:0: [sdb] Write Protect is off
  +0.000017] sd 6:0:0:0: [sdb] Mode Sense: 4f 00 00 00
  +0.000818] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
  +0.010664]  sdb:
  +0.003947] sd 6:0:0:0: [sdb] Attached SCSI disk

linux-lcog:/tmp # fdisk -l /dev/sdb

Disk /dev/sdb: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x000491a9

linux-lcog:/tmp # fixparts /dev/sdb
FixParts 0.8.10

Loading MBR data from /dev/sdb

MBR command (? for help): p

** NOTE: Partition numbers do NOT indicate final primary/logical status,
** unlike in most MBR partitioning tools!

** Extended partitions are not displayed, but will be generated as required.

Disk size is 1953525167 sectors (931.5 GiB)
MBR disk identifier: 0x000491A9
MBR partitions:

                                                   Can Be   Can Be
Number  Boot  Start Sector   End Sector   Status   Logical  Primary   Code

MBR command (? for help): q
This will abandon your changes. Are you sure? (Y/N): y

linux-lcog:/tmp # gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): p
Disk /dev/sdb: 1953525167 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A0737D80-156D-4B72-B697-BE32C79E779D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525133
Partitions will be aligned on 2048-sector boundaries
Total free space is 1953525100 sectors (931.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Command (? for help): q

I hope this is helpful.

I would also have used that “q” to exit, on seeing that output.

It does show that when you setup legacy partitioning, there were remnants of the GPT partition table still there. And that’s probably the source of your problems.

I’m not sure how to fix that without damaging the data still there. Perhaps someone else can advise.

When I have run into problems with remnants of a GPT partition table, I have used “gdisk” to fix it. In the advanced commands of “gdisk”, there is a “z” (to “zap” the GPT partition table). I’ve used that, and then started over.

When you use “z”, it does ask if you want the partitioning converted to MBR legacy partitioning. But I don’t know whether it will lead to damaged data, given what it says about a partition overlapping the GPT table.

Personally, I would probably use that “z”, then plan on a complete reinstall (assuming that some of the data was damaged).

Is it possible that you feel you must go back to your Windows machine to do anything with the NTFS partition? If so, you needn’t do so. You can do all the necessary work through your linux machine. gparted is then the best option.

A summary of the current state of affairs: The new external drive (from Seagate) currently has no data and no partition on it; in that respect (almost) any operation on it is fair game since there would not be any data loss involved.

The drive is intended as backup device for a number of different users working on different systems (Win8.1 and Linux), therefore its capacity should be devided between NTFS and EXT4.

Plugging it into System1 (OS13.2 32bit, “classic” BIOS) the disk is mounted successfully as /dev/sdb . As indicated in my OP, I already used ‘gdisk’ on the drive to zap the GPT data. Here is the log of the repeated ‘gdisk’ application:


linux-lcog:/ # gdisk /dev/sdb 
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): x

Expert command (? for help): o

Disk size is 1953525167 sectors (931.5 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1   1953525166   primary     0xEE

Expert command (? for help): p
Disk /dev/sdb: 1953525167 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 69413484-989D-436E-AC7A-BADF16FD2CF0
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525133
Partitions will be aligned on 2048-sector boundaries
Total free space is 1953525100 sectors (931.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Expert command (? for help): d
Partitions will begin on 2048-sector boundaries.

Expert command (? for help): z
About to wipe out GPT on /dev/sdb. Proceed? (Y/N): Y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): N
MBR is unchanged. You may need to delete an EFI GPT (0xEE) partition
with fdisk or another tool.
linux-lcog:/ # 
linux-lcog:/ # gdisk /dev/sdb 
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/sdb. Proceed? (Y/N): Y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): N
MBR is unchanged. You may need to delete an EFI GPT (0xEE) partition
with fdisk or another tool.
linux-lcog:/ # 

NB, although zapping the GPT data using ‘gdisk’, it still “complains” about invalid GPT data the next time ‘gdisk’ is invoked on it.

What is the significance of the statement “You may need to delete an EFI GPT (0xEE) partition with fdisk or another tool” in this case? Note that the system where the disk currently cannot be mounted as /dev/sdb (although it shows up as /dev/bus/usb/002/xyz ) is an EFI system, although on the same hardware (and EFI) Win8.1 does recognize the disk.

Thank you in advance for further advice.

There is a partition. You don’t mount a drive you mount a partition so you need to mount /dev/sdb1 not sdb

I know Windows confuses people because they call partitions drives. Oh well :stuck_out_tongue:

Since I have hardly any technical background knowledge about partition business, correct terminology is almost a matter of luck in this case. :wink: So what do you do with a drive if not “mount” it?

Correct terms aside: You are saying,

Where, why? I do not see any /dev/sdb entry at all! Let alone /dev/sdb[n] which currently should not be there anyways since all partitions that I had defined (one NTFS, one EXT4) are supposed to be removed from this external drive.

Why is there a /dev/bus/usb/002/xyz, yet no /dev/sdb? How do I get it to appear? I am assuming here that once I get a /dev/sdb entry, then the partitions I would define on it in the future would also appear as /dev/sdb[n].

Help and explanations still highly welcome!

Clarification: Above questions refer to System3 (OS13.1 64bit, UEFI in Legacy mode. On System1 (OS13.2 32bit, “classic” BIOS) there is indeed a /dev/sdb entry, and when the NTFS/ EXT4 partitions were still in place, there were /dev/sdb[12] entries.

You mount partition not drives and there is exactly one partition on the drive. Note that in Linux the drives and partitions are designated with /dev/sdX# where X is the drive letter A,B,C etc and the partitions are numbered 1 onward . Drives are devices where the important partitions lives. They are not mounted. Only MS calls partitions drives.

note this in the gdisk out put you showed for /dev/sdb


Number  Boot  Start Sector   End Sector   Status      Code    1                     1   1953525166   primary     0xEE

Note that there is one large partition we would address it as /dev/sdb1
Gdisk also says that the drive is using legacy partitioning NOT GPT I’d guess it is a MS format. If you plan to re partition this drive you can resize the current partition and add an ext4 partition for use of Linux or you can just use the single partition but you need to TAR the backup from Linux to maintain the permission bits if you use MS formatted partitions to back Linux files.

To change to GPT I’d recommend a full wipe including the first track because hybrid partitioning can get messy

Thank you, gogalthorp, for your remarks. The little I understand about partitions, I got this part.

But that is exactly the reason why I am very confused and see a discrepancy here. On the “working” Linux system (OS13.2 32bit, “classic” BIOS) I do see a /dev/sdb, but no /dev/sdb1 or higher. Well, okay - as described earlier, all partitions were removed (as best as I could) so I do not expect any /dev/sdb#. On the other hand, ‘gdisk - Expert command - o (print protective MBR data)’ says,


Disk size is 1953525167 sectors (931.5 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1   1953525166   primary     0xEE

But if this means there is a partition, where is it mounted, how can I save data to it etc.? Then again, ‘gdisk - Expert command - p (print the partition table)’ says,


Expert command (? for help): p
Disk /dev/sdb: 1953525167 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 5836D757-5247-465C-BE83-4ADF296F1866
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525133
Partitions will be aligned on 2048-sector boundaries
Total free space is 1953525100 sectors (931.5 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name


In other words, the table is empty!? So it says there is no partition!?

How is a full wipe incl. the first track done?

At this point, I do not care (should I?) if things are called GPT or MBR. The (minimal) goal is a NTFS partition on the external drive that mounts on Win8.1 and an EXT4 partition that mounts on Linux (incl. OS13.1) which probably would at least read the NTFS one anyways.

OK just resize the partition. There are lots of tools to do that in Windows and Linux. Then add a EXT4 formatted partition via yast partition manager or other Linux partition utility. DO NOT auto mount it unless it is always plugged in and on. If you do and it is not found boot will fail. The boot mount list is in /etc/fstab. If you want it to appear at a give location you can add to the fstab but include the “nofail” option so boot does not fail if the drive is not found

Note that in Linux the desktop (which ever you use) is responsible on mounting/mountings any removable drives. This normally happens with a notice (if you have the device notifier in use) It will allow you to do various things depending on the desktop settings and you can open it in a browser which will mount the first partition. You have to manually mount any additional I believe. or you can ignore the desktop notice and simply use the mount and umount commands it can be mounted anywhere in the file system. You should avoid the normal system directories. Doing so will crash the system

If you need step by step instruction explain exactly what you want and the disk utility programs you have available

Since there is no data on the drive that you want, I would:

Zero the drive (using one of several HD utilities, Seagate actually provides an HD utility for free).

(That is also referred to as low-level format or LLF by some.)

Use Linux tools to partition and format the drive. You can create NTFS partitions with Linux tools and Windows will work just fine with them.

Use MBR partition tables to do this, will make it more compatible across multiple machines.

The general behavior I am familiar with: When plugging in an external USB drive, the Device Notifier pops up and suggests a number of actions. At this point, there are already /dev/sdX# entries visible. Choosing, for example, the action ‘Open with File Manager’ then mounts a given partition as /run/media/username/partitionlabel.

Again the core of my problem: While plugging the external drive to System1 (OS13.2 32bit, “classic” BIOS) causes the above behavior of the system, plugging the same drive to System3 (OS13.1 64bit, UEFI in Legacy mode) does not show any /dev/sdX# entries, nor does the Device Notifier suggest any action. - In any case, there is no partition on the drive at this time.

Please provide step by step instructions for what you are suggesting.

Goal: External drive with one NTFS partition and one EXT4 partition. Intended purpose is data backup storage for Win8.1 and Linux (openSUSE) respectively.

Available tools:

  • System1 (OS13.2 32bit, “classic” BIOS) actually “sees” the external drive as /dev/sdX; System2 (Win8.1 64bit, UEFI in Legacy mode) also “sees” it in the Disk Management. - The problematic case of System3 (OS13.1 64bit, UEFI in Legacy mode - dual boot with System2) does not “see” the external drive as /dev/sdX; plugging in the drive makes an entry /dev/bus/usb/00?/xyz appear.
  • On System1 available: fdisk, fixparts, gdisk, gparted, Yast Partitioner; more tools could be installed
  • On System2 available: Disk Management; more tools could be installed

Please indicate if more information is needed at this point.

There is a partition. you gdisk output showed it. Try a different USB port. the older OS may have problems with some USB 3 hardware.

On System3 (OS13.1 64bit, UEFI in Legacy mode), tried all available USB ports, one of them USB3 - to no avail.


linux-7cdu:~ # lsusb|grep "Seagate"
Bus 003 Device 003: ID 0bc2:2322 Seagate RSS LLC 
linux-7cdu:~ # ls /dev/bus/usb/003/*
/dev/bus/usb/003/001  /dev/bus/usb/003/003
linux-7cdu:~ # ls /dev/sd*
/dev/sda   /dev/sda10  /dev/sda3  /dev/sda5  /dev/sda7  /dev/sda9
/dev/sda1  /dev/sda2   /dev/sda4  /dev/sda6  /dev/sda8

/dev/sda is the built-in disk. For what it is worth, the external drive is a Seagate Expansion Portable Drive, model STEA1000400 (1TB capacity).

You want to download this:

You are interested in the section G.

This is the tool, you will download the ISO and burn it to a CD. Instructions are lower down on this same page:

Make absolutely certain that you choose the right drive to zero-fill!

Once you have zero-filled, launch GParted.

Again, make absolutely certain that you choose the right drive.

In there, you go to Device=>Create Partition Table

Choose to create msdos partition table, most compatible and suitable for your two-partition needs.

Once the partition table is created, create two Primary partitions, one as ext4 (or, ext2 if you prefer) and the other as NTFS.

Make sure you align the partitions to boundaries (the option will be shown in GParted to do that) to avoid any potential related problems.

(You should probably make the first partition on the disk as the NTFS partition to avoid any size limitations in different Windows versions.)

Done.

If you run into any problems during this process, stop at that point and post back here for further help.

Thank you, Fraser_Bell, for your detailed instructions.

I had problems starting off with the SeaTools for DOS CD. Booting from it, I was not able to find and see the external drive when I plugged it into various USB ports on different machines.

Instead I downloaded and installed the SeaTools for Windows tool on System2 (Win8.1 64bit, UEFI in Legacy mode). With that I zeroed the external drive. In addition I erased the boot sector since I was not sure if that was already included in the previous action. Then I proceeded with partitioning as described on System1 (OS13.2 32bit, “classic” BIOS).

Result: The drive would still not be recognized in the familiar way on System3 (OS13.1 64bit, UEFI in Legacy mode). :frowning:

Any more ideas??

Hmmm!

Very disappointing.

I have not yet reread this thread, this is just a quick drive-by visit, so forgive me if this suggestion was already addressed:

Did you try plugging it into different USB ports on System3? Sometimes that can be the answer.

Good luck. The rest of us here, no doubt, will be trying to come up with more ideas.