External nvme drive not working. How to troubleshoot?

Using TW, Gnome, Wayland. I successfully did a sudo zypper dup this morning. I’ve got a 2TB nvme drive in an external USB-C case. I’ve been using this external drive for about 3 months to successfully do Clonez images. Now it’s not recognized by File Mngr. It appeared in Gparted as “unallocated” so I formatted it to fat32. Now it does not appear as /dev/sda like usual, like before. It now appears as /dev/nvme1n1p3.

(My other 2 internal nvme drives are /dev/nvme1n1p and 2p.)

/dev/nvme1n1p3 is appearing in Clonez so looks like I can use it for Clonez images as usual. So that’s good.

Is there a way to convert this external nvme drive from /dev/nvme1n1p3 back to /dev/sda?

I took a bunch of screenshots so let me know if you need to see any of them.

advait@localhost:~> sudo nvme list
Node                  Generic               SN                   Model                                    Namespace  Usage                      Format           FW Rev  
--------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------
/dev/nvme0n1          /dev/ng0n1            50026B768478F2B9     KINGSTON OM8PCP3512F-AI1                 0x1        512.11  GB / 512.11  GB    512   B +  0 B   ECFK52.8
/dev/nvme1n1          /dev/ng1n1            7QH00Y67             Seagate FireCuda 520 SSD ZP2000GM30002   0x1          2.00  TB /   2.00  TB    512   B +  0 B   STNSC014

advait@localhost:~> dmesg | grep nvme
[    2.179540] [    T125] nvme nvme0: pci function 0000:07:00.0
[    2.179541] [    T120] nvme nvme1: pci function 0000:06:00.0
[    2.221438] [    T125] nvme nvme0: missing or invalid SUBNQN field.
[    2.221445] [    T120] nvme nvme1: missing or invalid SUBNQN field.
[    2.221505] [    T120] nvme nvme1: D3 entry latency set to 10 seconds
[    2.221559] [    T125] nvme nvme0: D3 entry latency set to 10 seconds
[    2.223267] [    T120] nvme nvme1: 8/0/0 default/read/poll queues
[    2.223490] [    T125] nvme nvme0: 8/0/0 default/read/poll queues
[    2.226181] [    T121]  nvme0n1: p1
[    2.226289] [    T116]  nvme1n1: p1 p2 p3
[    7.460959] [    T650] BTRFS: device fsid 534cdd53-9ccc-44d6-85a2-087dce3d1f2b devid 1 transid 370879 /dev/nvme1n1p2 (259:4) scanned by mount (650)
[    7.461272] [    T650] BTRFS info (device nvme1n1p2): first mount of filesystem 534cdd53-9ccc-44d6-85a2-087dce3d1f2b
[    7.461287] [    T650] BTRFS info (device nvme1n1p2): using crc32c (crc32c-intel) checksum algorithm
[    7.461293] [    T650] BTRFS info (device nvme1n1p2): using free-space-tree
[    8.508208] [    T134] audit: type=1400 audit(1726135475.326:3): avc:  denied  { search } for  pid=685 comm="ibft-rule-gener" name="var" dev="nvme1n1p2" ino=262 scontext=system_u:system_r:systemd_ibft_rule_generator_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[    8.739812] [      T1] systemd[1]: Starting Load Kernel Module nvme_fabrics...
[    8.753756] [    T134] audit: type=1400 audit(1726135475.573:7): avc:  denied  { search } for  pid=726 comm="systemd-modules" name="local" dev="nvme1n1p2" ino=265 scontext=system_u:system_r:systemd_modules_load_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[    8.754648] [    T134] audit: type=1400 audit(1726135475.573:8): avc:  denied  { getattr } for  pid=726 comm="systemd-modules" path="/usr/local" dev="nvme1n1p2" ino=265 scontext=system_u:system_r:systemd_modules_load_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[    8.757261] [      T1] systemd[1]: modprobe@nvme_fabrics.service: Deactivated successfully.
[    8.757412] [      T1] systemd[1]: Finished Load Kernel Module nvme_fabrics.
[    8.797813] [    T134] audit: type=1400 audit(1726135475.616:9): avc:  denied  { getattr } for  pid=737 comm="systemd-sysctl" path="/usr/local" dev="nvme1n1p2" ino=265 scontext=system_u:system_r:systemd_sysctl_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[    8.797824] [    T134] audit: type=1400 audit(1726135475.616:10): avc:  denied  { search } for  pid=737 comm="systemd-sysctl" name="local" dev="nvme1n1p2" ino=265 scontext=system_u:system_r:systemd_sysctl_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[    9.159525] [    T134] audit: type=1400 audit(1726135475.976:11): avc:  denied  { search } for  pid=896 comm="tlp" name="var" dev="nvme1n1p2" ino=262 scontext=system_u:system_r:tlp_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
[  987.072747] [  T75440] NILFS (nvme0n1): couldn't find nilfs on the device
advait@localhost:~> 

0---------------------------

advait@localhost:~> lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    1     0B  0 disk 
sdb           8:16   1  14.3G  0 disk 
├─sdb1        8:17   1  14.3G  0 part /run/media/advait/Ventoy
└─sdb2        8:18   1    32M  0 part 
nvme1n1     259:0    0   1.8T  0 disk 
├─nvme1n1p1 259:3    0   512M  0 part /boot/efi
├─nvme1n1p2 259:4    0   1.8T  0 part /var/lib/containers/storage/overlay
│                                     /var
│                                     /root
│                                     /usr/local
│                                     /opt
│                                     /srv
│                                     /boot/grub2/x86_64-efi
│                                     /home
│                                     /.snapshots
│                                     /boot/grub2/i386-pc
│                                     /
└─nvme1n1p3 259:5    0     2G  0 part /run/media/advait/6CF8-057F
nvme0n1     259:1    0 476.9G  0 disk 
└─nvme0n1p1 259:2    0 476.9G  0 part 
advait@localhost:~> 

It is quite normal for an NVME device to get a device file names in this way. The p3 part points to a partition with number 3 on it.

That is a wrong assumption. They are partition 1 and 2 of the same device.

Please interpret your lsblk listing.
There are three (3) devices: sda, sdb and nvme1n1.

Where sda seems to have no partition table and nothing that lsblk is able to detect.

And sdb has two partitions. sdb1 seems to have some file system (alas you did not use lsblk -f, else you would have seen the type) that is mounted using desktop features for usr advait. For sdb2 there is no further information.

And then you have nvme1n1 that p1 that is mounted on /boot/efi and that thus, most probably is the EFI partition of this machine. From the listings about p2 (again the file sysemtype information is missing) I assume with high probablity that it contains a Btrfs file system that is used is the root file system for your present running operating system. p3 is again mounted through the desktop for user advait.

I hope you now understand what the present situation is. Maybe you can formulate your question better that the title says “not working”.

2 should be 2p

Gparted shows /dev/nvme1n1p1 and /dev/nvme1n1p2 and 2 separate physical drives. Not one drive. What am I missing?

Screenshot. /dev/nvme1n1p3 is the external drive.
0-----------

Sorry I was still typing as an edit, but that took so much time that you already tried to answer.

But no, I need no screenshot of any so called GUI tool. And I am not interested in any information from such a tool. You showed the lsblk (but lsblk -f would have been better). And my interpretation of it is above.

Please read it and ask if you do not understand it.

advait@localhost:~> lsblk -f
NAME        FSTYPE FSVER LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                  
sdb                                                                                  
├─sdb1      exfat  1.0   Ventoy  5C66-1A5E                               1.3G    91% /run/media/advait/Ventoy
└─sdb2      vfat   FAT16 VTOYEFI 3F32-27F5                                           
nvme1n1                                                                              
├─nvme1n1p1 vfat   FAT32         E061-B855                             505.1M     1% /boot/efi
├─nvme1n1p2 btrfs                534cdd53-9ccc-44d6-85a2-087dce3d1f2b                /var/lib/containers/storage/overlay
│                                                                                    /var
│                                                                                    /root
│                                                                                    /usr/local
│                                                                                    /opt
│                                                                                    /srv
│                                                                                    /boot/grub2/x86_64-efi
│                                                                                    /home
│                                                                                    /.snapshots
│                                                                                    /boot/grub2/i386-pc
│                                                                                    /
└─nvme1n1p3 vfat   FAT32         6CF8-057F                                 2G     0% /run/media/advait/6CF8-057F
nvme0n1                                                                              
└─nvme0n1p1 vfat   FAT32         3249-171B                                           
advait@localhost:~> 

I removed my USB Ventoy drive to make it simpler. See below. So looks like nvme1n1 is my main 2TB internal system nvme. And nvme0n1 is my 2TB external nvme. That sound right?

(I don’t know what sda is. I also have a 500GB spare internal nvme that I don’t use.)

advait@localhost:~> lsblk -f
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                
nvme1n1                                                                            
├─nvme1n1p1 vfat   FAT32       E061-B855                             505.1M     1% /boot/efi
├─nvme1n1p2 btrfs              534cdd53-9ccc-44d6-85a2-087dce3d1f2b                /var/lib/containers/storage/overlay
│                                                                                  /var
│                                                                                  /root
│                                                                                  /usr/local
│                                                                                  /opt
│                                                                                  /srv
│                                                                                  /boot/grub2/x86_64-efi
│                                                                                  /home
│                                                                                  /.snapshots
│                                                                                  /boot/grub2/i386-pc
│                                                                                  /
└─nvme1n1p3 vfat   FAT32       6CF8-057F                                 2G     0% /run/media/advait/6CF8-057F
nvme0n1                                                                            
└─nvme0n1p1 vfat   FAT32       3249-171B                                           
advait@localhost:~> 

Looks fine. We now see that sdb2 has a vfat file system that is not in use at the moment.

Sorry but I missed in your first lsblk listing that there is also nvme0n1 that has one large partition nvme0n1p1 with a vfat file system on it. Not in use (mounted) at the moment.

Now what is your problem with this? Four (4) mass-storage devices (two probably rotating disks, two NMVE).

  1. sda no partitioning, no file system direct on the device, nothing interesting and the size is 0 Bytes, a bit strange, could be a memory card reader.
  2. sdb two partitions with file systems of type exfat resp. vfat, also labeled, one mounted by the desktop for user advait.
  3. nmve1n1 three partitions with file systems vfat, btrfs and vfat, EFI, System and mounted for user advait by the desktop.
  4. nvme0n with one, all space taking, partition of type vfat.
1 Like

Again, you are so fast answering that we are not in sync :wink:
Thus my post above (#8) is an answer to your #6.

I will now answer to your #7.

When you mean with that the sdb is gone, you are correct. Remind that the wording you, as a human being, might give to something, is not the same that it is called by the system. Also please see that the way a mass-storage device is connected (e.g. USB, CGI, whatever) is of no influence to the usage and also can not be seen in the lsblk listing.

Again, the wording “internal” and “external” in this context (of mass-storage devices) might have some meaning in a computer shop (maybe influenced by MS Windows lingo??), but the Linux system can not “see” if such a device is inside or outside of the metal case. So when you think, rightful or not, that a device in “internal” or “external”, that is fine but has no meaning to us here who can not look at the physical boxes you have in front of you.

Apart from that, as I said above, nvme1n1 has, what is called, an “EFI partition” and a partition with a Btrfs file system used as root partition. Yes, many people will call that their “system disk”. Mind that there is there a third partition with a non-Linux file system (vfat), I do not know where for.

And then there is nvme0n1 with again something non-Linux on it.

BTW those are all things that should not surprise you. I am still at a loss what your problem is.

As far as I know NVMe has something to do with the physical connection of a storage device to the system bus (see here for more information).

If you connect an NVMe-storage-device via USB-C (you need some sort of interface adapter and) your system will no longer recognize this device as NVMe-device but as usb-storage i.e. that device will not be seen as /dev/ nvmexn1 but as /dev/sdx.

Looking at the data you provided so far I agree with @hcvv that you showed 4 devices

  • /dev/sda (unknown, probably that NVMe connected via USB-C)
  • /dev/sdb (USB storage with ventoy on it, later removed)
  • /dev/nvme0n1 (a KINGSTON OM8PCP3512F-AI1 with 512.11 GB)
  • /dev/nvme1n1 (a Seagate FireCuda 520 SSD ZP2000GM30002 with 2.00 TB)

I guess your problem relates in some way to /dev/sda so could you please show the result of

parted -l

(needs to be executed as “root”)

1 Like

Here it is:

advait@localhost:~> sudo parted -l
Model: KINGSTON OM8PCP3512F-AI1 (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  512GB  512GB  fat32              msftdata


Model: Seagate FireCuda 520 SSD ZP2000GM30002 (nvme)
Disk /dev/nvme1n1: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  538MB   537MB   fat32        EFI system partition  boot, esp
 2      538MB   1998GB  1998GB  btrfs
 3      1998GB  2000GB  2147MB  fat32                              msftdata

advait@localhost:~> 

The “Disks” app shows /dev/sda/ but gives no info about it. /dev/sda/ does not appear in File Manager or GParted. So I think there’s something wrong with the drive enclosure or the drive itself.

And ideas how I can determine if the problem is with the drive enclosure or the drive itself? One way is to buy another drive enclosure. Anything I can test before taking that step? I don’t have any other nvme drives.

Try the drive inside a computer.
Try the assembly with some other computer(s).
Try the enclosure with some other drive(s).

1 Like

I got it fixed. I opened the enclosure and the drive was loose. I re-secured it and now it’s working normally and fully recognized. A good reminder for me to try the simple troubleshooting tasks first. :slightly_smiling_face:

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.