[Huawei P9 Guides, News, & Discussion] zgfg:
Partitions, other than Data (if Data partition not 'decrypted', see EDIT 2 below), can be backed-up and restored via TWRP

Image files of stock partitions like Ramdisk, Kernel and Recovery-Ramdisk (EMUI Recovery), eRecovery-Ramdisk (eRecovery) can be also extracted by Huawei Update Extractor from update.app (download the corresponding FullOTA update.zip from Firmware Finder and unzip first)

Image files can be directly dumped to SD card from TWRP / Advanced / Terminal (applicable for OTA installations, no need to download update.zip from FF)

dd if=/dev/block/bootdevice/by-name/ramdisk of=/external_sd/ramdisk.img
dd if=/dev/block/bootdevice/by-name/kernel of=/external_sd/kernel.img
dd if=/dev/block/bootdevice/by-name/erecovery_ramdisk of=/external_sd/erecovery_ramdisk.img

Same can be dumped from Terminal Emulator app, in that case you must first execute su command and grant root permission to the Terminal Emulator.

Instead of "external_sd" it must be used "sdcard" - but it will really dump to Internal memory.

From TE you can also dump Recovery- Ramdisk, hence all together

su
dd if=/dev/block/bootdevice/by-name/ramdisk of=/sdcard/ramdisk.img
dd if=/dev/block/bootdevice/by-name/kernel of=/sdcard/kernel.img
dd if=/dev/block/bootdevice/by-name/recovery-ramdisk of=/sdcard/recovery-ramdisk.img
dd if=/dev/block/bootdevice/by-name/erecovery-ramdisk of=/sdcard/erecovery-ramdisk.img

Partitions can be dumped as well by using ADB connection from PC:

- start with command: adb shell

- upon the su command watch on the phone and grant root permission to ADB Shell

- dump to Internal memory with "sdcard" like in TE case

- see example below for dumping (user)data

Dumped image files can be flashed from TWRP or from Fastboot, like

fastboot flash ramdisk ramdisk.img
fastboot flash kernel kernel.img
fastboot flash recovery-ramdisk recovery-ramdisk.img

Same applies for system, but what about Data partition:

TWRP does not support Oreo encryption, hence Data cannot be backed-up/restored or dumped from TWRP

It can be dumped from ADB - 13.4 GB to Internal memory (or similarly from Terminal Emulator)

adb shell
su
dd if=/dev/block/bootdevice/by-name/userdata of=/sdcard/userdata.img

Is this valid dump of Data partition and how to safely flash it back (if so, it will make full Nandroid backup with the rest from TWRP)?

PS:

Dumping from TWRP requires to already have it flashed, hence not applicable for dumping stock Recovery-Ramdisk

Dumping from ADB or TE requires to already have root, hence not applicable for dumping stock Ramdisk

EDIT 1:

For OTA Patch (like Patch02 for b540) there is no update.zip to extract stock partitions, they can only be disk-dumped.

Stock Kernel, Ramdisk, EMUI Recovery and eRecovery are the same for both b540 (EVA-AL10c00b540) and b540 Patch02 (image files extracted/dumped from both b540 and b540 Patch02, hashes compared and found identical).

Extracted/dumped mage files from b540 and b540 Patch02 can be also downloaded from My Mega:

https://mega.nz/#F!JwkVyRya!Rb7OUE0z3PEpXBRxGOM-vQ

EDIT 2:

Disk-dumping (AL10c00b540 Patch02) from erecovery-ramdisk works and produces the same eRecovery image file (same hashes) as extracting RECOVERY_RAMDI by Huawei Update Extractor from AL10c00b540 update.app (unzipped update.zip)

On the other side, flashing from Fastboot to eRecovery fails.

However, there is a Russian TWRP for Honor 9, from 4pda.ru, TWRP-3.2.1.0_Mod_9.img - if you first flash that TWRP to Recovery, then you will be able to flash from that TWRP to eRecovery, see:

https://xdaforums.com/p9/development/emui-8-decryption-guide-wipe-t3906245/post79597320

EDIT 3:

The same post as linked from EDIT 1, provides a method to 'decrypt' Data partition and Internal memory (Format Data, Fix partition)

After that TWRP can read/write to Data partition and Internal memory, as well backup/restore the Data partition, making possible the full Nandroid backups