Nexus 5 stuck on OS loading animation, pressing Volume-/Power only shows fastboot for a second, adb shows nothing

This is the normal LineageOS loading screen, which I had until yesterday:

enter image description here

Problem: Since yesterday, only one circle is going from right to left, forever. In other words, it never reaches the 3 circles (even after 8 hours overnight), and my Nexus 5 has become useless.

After reading Nexus 5 stuck on "flying color dots lollipop" screen after Hard Factory Reset I tried pressing Power/Volume- at the same time for 30 seconds. Result: It makes the fastboot screen appear for less than a second (during that split second I can move the cursor with Volume+/-), then the screen turns black, then fastboot for a split second again, then this boot-loop:

  1. white Google+unlocked lock on black background, for a few second
  2. black screen
  3. Vibration
  4. Back to step 1

Pressing the same Volume-/Power during the earlier “white Google+unlocked lock on black background” screen results also results in the same boot-loop.

During all of these phases (animation, fastboot, boot-loop), running adb logcat from my connected computer only shows waiting for device.

I am performing all of this with the charger plugged in. I even changed the battery to make sure it was not a power problem. To check I managed to quickly push “Power off” in fastboot and it shows the battery level: 100%.

The computer/port/cable I am using are the ones that I have been using everyday for years to transfer files and debug apps over USB. I also tried a wall charger and new cable too to make sure, same result.

After plugging the phone into a Windows conmputer (instead of my usual Linux), fastboot miraculously stayed on, and I was able to get the following information:

Partitions

~ # cat /proc/partitions major minor  #blocks  name   179        0   30535680 mmcblk0  179        1      65536 mmcblk0p1  179        2       1024 mmcblk0p2  179        3        512 mmcblk0p3  179        4        512 mmcblk0p4  179        5        512 mmcblk0p5  179        6        512 mmcblk0p6  179        7       2048 mmcblk0p7  179        8       1024 mmcblk0p8  179        9        512 mmcblk0p9  179       10        512 mmcblk0p10  179       11        512 mmcblk0p11  179       12       3072 mmcblk0p12  179       13       3072 mmcblk0p13  179       14        512 mmcblk0p14  179       15      16384 mmcblk0p15  179       16      16384 mmcblk0p16  179       17       3072 mmcblk0p17  179       18      22528 mmcblk0p18  179       19      22528 mmcblk0p19  179       20      22528 mmcblk0p20  179       21       3072 mmcblk0p21  179       22        512 mmcblk0p22  179       23        512 mmcblk0p23  179       24        512 mmcblk0p24  179       25    1048576 mmcblk0p25  179       26      30720 mmcblk0p26  179       27     716800 mmcblk0p27  179       28   28551146 mmcblk0p28  179       29          5 mmcblk0p29  179       32       4096 mmcblk0rpmb 

Mount

~ # mount rootfs on / type rootfs (rw,seclabel) tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755) devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,seclabel,relatime) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,seclabel,relatime) /dev/block/mmcblk0p25 on /system type ext4 (ro,seclabel,relatime,data=ordered) 

Block names

~ # ls -l /dev/block/platform/msm_sdcc.1/by-name lrwxrwxrwx    1 root     root            21 Jan  1 01:00 DDR -> /dev/block/mmcblk0p24 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 aboot -> /dev/block/mmcblk0p6 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 abootb -> /dev/block/mmcblk0p11 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 boot -> /dev/block/mmcblk0p19 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 cache -> /dev/block/mmcblk0p27 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 crypto -> /dev/block/mmcblk0p26 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 fsc -> /dev/block/mmcblk0p22 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 fsg -> /dev/block/mmcblk0p21 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 grow -> /dev/block/mmcblk0p29 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 imgdata -> /dev/block/mmcblk0p17 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 laf -> /dev/block/mmcblk0p18 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 metadata -> /dev/block/mmcblk0p14 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 misc -> /dev/block/mmcblk0p15 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 modem -> /dev/block/mmcblk0p1 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 modemst1 -> /dev/block/mmcblk0p12 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 modemst2 -> /dev/block/mmcblk0p13 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 pad -> /dev/block/mmcblk0p7 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 persist -> /dev/block/mmcblk0p16 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 recovery -> /dev/block/mmcblk0p20 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 rpm -> /dev/block/mmcblk0p3 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 rpmb -> /dev/block/mmcblk0p10 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 sbl1 -> /dev/block/mmcblk0p2 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 sbl1b -> /dev/block/mmcblk0p8 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 sdi -> /dev/block/mmcblk0p5 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 ssd -> /dev/block/mmcblk0p23 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 system -> /dev/block/mmcblk0p25 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 tz -> /dev/block/mmcblk0p4 lrwxrwxrwx    1 root     root            20 Jan  1 01:00 tzb -> /dev/block/mmcblk0p9 lrwxrwxrwx    1 root     root            21 Jan  1 01:00 userdata -> /dev/block/mmcblk0p28 

Filesystem

~ # blkid /dev/block/mmcblk0p28 /dev/block/mmcblk0p28: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4" 

Wiping cache

~ # twrp wipe cache Formatting cache using make_ext4fs... Failed to mount '/cache' (Invalid argument) Done processing script file  ~ # mke2fs -t ext4 /dev/block/mmcblk0p27 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 44832 inodes, 179200 blocks 8960 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=184549376 6 block groups 32768 blocks per group, 32768 fragments per group 7472 inodes per group Superblock backups stored on blocks:         32768, 98304, 163840  Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done  ~ # twrp reboot command is: 'reboot' and there is no value Failed to mount '/data' (Invalid argument) Failed to mount '/data' (Invalid argument) E:a Done processing script file 

Doing that cache wipe did not solve the problem, unfortunately.

Question: How to at least get the content of my Nexus 5’s /sdcard saved to a computer? Or maybe even fix the Nexus if possible?