[Android Q&A, Help & Troubleshooting] herlgl:
I'm using a Xiaomi Redmi Note 9S with MIUI 11.0.10 which is Android 10. There seems to be some bug with root that can soft-brick your phone. When you boot into TWRP, it can no longer mount the System partition - pressing it, will do nothing.

So I connect via adb to the phone. It's root adb and I am root according to "whoami".

cat /proc/partitions output:

~ # cat /proc/partitions
major minor #blocks name

1 0 8192 ram0
1 1 8192 ram1
1 2 8192 ram2
1 3 8192 ram3
1 4 8192 ram4
1 5 8192 ram5
1 6 8192 ram6
1 7 8192 ram7
1 8 8192 ram8
1 9 8192 ram9
1 10 8192 ram10
1 11 8192 ram11
1 12 8192 ram12
1 13 8192 ram13
1 14 8192 ram14
1 15 8192 ram15
8 0 120479744 sda
8 1 8 sda1
8 2 32768 sda2
8 3 1024 sda3
8 4 512 sda4
8 5 512 sda5
8 6 131072 sda6
8 7 1048576 sda7
8 8 131072 sda8
8 9 131072 sda9
8 10 64 sda10
8 11 64 sda11
8 12 16384 sda12
8 13 393216 sda13
8 14 393216 sda14
8 15 16384 sda15
259 0 8192 sda16
259 1 8388608 sda17
259 2 109786956 sda18
8 16 8192 sdb
8 17 7168 sdb1
8 18 128 sdb2
8 64 4194304 sde
8 65 512 sde1
8 66 4096 sde2
8 67 512 sde3
8 68 262144 sde4
8 69 1024 sde5
8 70 4096 sde6
8 71 32768 sde7
8 72 8192 sde8
8 73 32768 sde9
8 74 512 sde10
8 75 512 sde11
8 76 512 sde12
8 77 128 sde13
8 78 64 sde14
8 79 2048 sde15
259 3 2048 sde16
259 4 512 sde17
259 5 4096 sde18
259 6 512 sde19
259 7 262144 sde20
259 8 1024 sde21
259 9 4096 sde22
259 10 32768 sde23
259 11 8192 sde24
259 12 32768 sde25
259 13 512 sde26
259 14 512 sde27
259 15 512 sde28
259 16 128 sde29
259 17 64 sde30
259 18 2048 sde31
259 19 2048 sde32
259 20 4 sde33
259 21 1024 sde34
259 22 256 sde35
259 23 8192 sde36
259 24 33424 sde37
259 25 4 sde38
259 26 1024 sde39
259 27 8192 sde40
259 28 2048 sde41
259 29 65536 sde42
259 30 128 sde43
259 31 32 sde44
259 32 32 sde45
259 33 512 sde46
259 34 28 sde47
259 35 512 sde48
259 36 1024 sde49
259 37 64 sde50
259 38 131072 sde51
259 39 24576 sde52
259 40 64 sde53
259 41 24576 sde54
259 42 131072 sde55
8 32 8192 sdc
8 33 7168 sdc1
8 34 128 sdc2
8 80 131072 sdf
8 81 104 sdf1
8 82 2048 sdf2
8 83 2048 sdf3
8 84 10240 sdf4
8 85 128 sdf5
8 48 131072 sdd
8 49 104 sdd1
8 50 128 sdd2
8 51 1024 sdd3
253 0 934804 dm-0
253 1 1403780 dm-1
253 2 2356452 dm-2

df -h output after flashing new .EU ROM - this is how it should look like:

~ # df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 2.7G 752.0K 2.7G 0% /dev
tmpfs 2.7G 0 2.7G 0% /mnt
tmpfs 2.7G 0 2.7G 0% /apex
tmpfs 2.7G 6.4M 2.7G 0% /tmp
/dev/block/sda18 104.7G 14.5G 90.2G 14% /data
/dev/block/sda18 104.7G 14.5G 90.2G 14% /sdcard
/dev/block/dm-1 1.3G 1.2G 33.4M 97% /vendor
/dev/block/sda13 356.0M 428.0K 328.7M 0% /cache
/dev/block/dm-2 2.2G 2.1G 109.5M 95% /system_root
/dev/block/dm-2 2.2G 2.1G 109.5M 95% /system

df -h output - what it actually looks like after soft-brick:

~ # df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 2.7G 752.0K 2.7G 0% /dev
tmpfs 2.7G 0 2.7G 0% /mnt
tmpfs 2.7G 0 2.7G 0% /apex
tmpfs 2.7G 2.6M 2.7G 0% /tmp
/dev/block/sda13 356.0M 1.1M 328.0M 0% /cache
/dev/block/sda18 104.7G 15.3G 89.4G 15% /data
/dev/block/sda18 104.7G 15.3G 89.4G 15% /sdcard

Trying to mount the "dm" devices, you can mount dm-0 and dm-1, but dm-2 (which should be system) fails:

~ # mount -r /dev/block/dm-2 /fufu/ -v -t ext4
mount: mounting /dev/block/dm-2 on /fufu/ failed: Read-only file system

DM-verity is disabled:

adb enable-verity
verity not enabled - ENG build

e2fsck fails because it claims to have no write access:

~ # e2fsck /dev/block/dm-2
e2fsck 1.44.4 (18-Aug-2018)
e2fsck: Operation not permitted while trying to open /dev/block/dm-2
You must have r/w access to the filesystem or be root
~ # whoami
root

File system is still intact. You can "dd" the dm-2 partition to some other place and access it via Linux or an ext4 viewer on Windows (https://www.diskinternals.com/linux-reader/ for example). You can also do it via adb: "adb pull /dev/block/dm-2"

When mounting (see above) and then looking in the log (dmesg):

<6>[ 1057.614782] EXT4-fs (dm-2): INFO: recovery required on readonly filesystem
<3>[ 1057.614797] EXT4-fs (dm-2): write access unavailable, cannot proceed

tune2fs for dm-1 and dm-2:

~ # tune2fs -l /dev/block/dm-1
tune2fs 1.44.4 (18-Aug-2018)
Filesystem volume name: vendor
Last mounted on: <not available>
Filesystem UUID: 6d16bab1-58d9-3c5d-8f14-f608f924affd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode filetype extent sparse_super large_file uninit_bg
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Remount read-only
Filesystem OS type: Linux
Inode count: 87824
Block count: 350944
Reserved block count: 0
Free blocks: 12643
Free inodes: 84860
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 87
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 7984
Inode blocks per group: 499
Last mount time: n/a
Last write time: Thu Jan 1 08:00:00 1970
Mount count: 0
Maximum mount count: -1
Last checked: Thu Jan 1 08:00:00 1970
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: tea
Journal backup: inode blocks

~ # tune2fs -l /dev/block/dm-2
tune2fs 1.44.4 (18-Aug-2018)
Filesystem volume name: /
Last mounted on: /
Filesystem UUID: bbcb9ad2-245d-035f-a549-7d500312efe1
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode filetype needs_recovery extent sparse_super large_file uninit_bg
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Remount read-only
Filesystem OS type: Linux
Inode count: 147456
Block count: 589113
Reserved block count: 0
Free blocks: 32124
Free inodes: 142168
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 143
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Last mount time: Sun Aug 2 03:07:27 2020
Last write time: Thu Jan 1 08:00:00 1970
Mount count: 4
Maximum mount count: -1
Last checked: Thu Jan 1 08:00:00 1970
Check interval: 0 (<none>)
Lifetime writes: 692 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: tea
Journal backup: inode blocks

-> dm-2 has a flag called "needs_recovery" set.

- I can run e2fsck on the dd exported image of dm-2 which recovers it fine, but I cannot dd it back to dm-2 - again no write access:

~ # dd if=/sdcard/systemfile.img of=/dev/block/dm-2
dd: writing '/dev/block/dm-2': Operation not permitted
1+0 records in
0+0 records out
0 bytes (0B) copied, 0.000131 seconds, 0B/s

Ideas how I can write anything to /dev/block/dm-2 (I also cannot change anything via tune2fs to the other dm devices).

Thank you