Ho risolto il problema con mkinitramfs anzi con update-initramfs che chiarmente ha l'opzione -k per selezionare la versione del kernel per il quale si vuole creare l'initrd.

Tuttavia strano che non si possa o non si riesca a passare da un fs di root ad un altro. Comprendo il problema.. init deve avere pid 1 quindi se passo da root=/dev/ram0 con pid 1 a root=/dev/sda3 init si deve riavviare e bisogna far credere al kernel che sia il primo processo anche sul nuovo fs... ma come?
Ho pensato di modificare il file /proc/sys/kernel/real-root-dev e far ripartire init?
Il problema è che probabilmente sbaglio qualcosa e non so bene su che valore esadecimale settare real-root-dev per fare in modo che corrisponda a /dev/sda3...

Any idea?

GRAZIE A TUTTI!