So, after some days after accomplishing the task to have en external usb Slackware hdd, and an "accident" in the mean time, summarizing the process I believe there are 3 key points one should pay attention to.
First, one has to have inline all boot definitions and use UUIDs instead of /dev/sdxY so to have absolute names of reference (fstab, initrd, grub/lilo, etc.)
Then, at least for my case, the scenario works with the huge (plus initrd) and not with the general kernel.
And lastly but of equal importance, one has to specify the correct modules in initrd so that the system will be able to recognize usb and load from it.
At this point I had a frightening experience when a slackpkg install-new followed by a careless slackpkg upgrade-all upgraded the kernel from 4.4.14 to 4.4.38! So I needed to make a new initrd but I forgot the modules I used previously in the successful attempts. And all the nightmares of the previous failed efforts came back to life...
Anyway, finally I found that the following modules
Code:
usb-storage:xhci-hcd:uas:ehci-hcd:uhci-hcd:ohci-hcd:hcd:ehci-pci:xhci-pci:usbhid:sdhci:xhci-pci:squashfs:hid:hid-lenovo
do the job. I don't know which one -or more- of them is the savior, but now it works OK as with the previous kernel. And not only that, but I was able also to boot from this disk using another laptop -usb2- (whereas in the previous case I was able to boot only from the laptop I had used though out the whole process -usb3-).
Again, thanx to all who helped me to accomplish this task.
@bassmadrigal
At some point, when you showed me how to make an initrd from another linux distro (with the mountings etc.), you have mentioned some bind mounts. Previously I was attempting to make the initrd from another distro without these bind mounts (I did only the mount /dev/sdb1 /mnt) and it failed. Why do we need these? Aren't these directories exist also in the /dev/sdxY that we mount to /mnt? Why do we need to bind mount the other's linux distro directories to the /mnt also?
Regards, Apostolos.