I've installed slackware in a chroot before, but I went about it differently:
Instead of copying all the directories and making directories, I let installpkg do it... I just navigated to a directory containing the slackware sets, and then would use installpkg command:
Code:
installpkg --root /chrootarget a/*.txz ap/*.txz d/*.txz k/*.txz l/*.txz n/*.txz x/*.txz xap/*.txz
The first package of the "a" set of packages (aaa_base) creates the /etc, /bin, /sbin, and other needed directories when it is installed...
Sometimes I have some directories on their own partitions (I put /tmp, /var, and /home on their own partitions, because /tmp and /var grow with log files and data, and I don't want them to grow so much that there is no space left on my root partiton; and I keep /home separate so I can back up user data efficiently)... in this situation, I have to manually create /var, /tmp, and /home in the /chrootarget directory, and then manually mount the partitions on those directories before proceeding with the installpkg command.
When installpkg is finished, I bind the system's running directories to their corresponding directories in the chroot with the mount command:
mount -o bind /proc /chrootarget/proc
mount -o bind /sys /chrootarget/sys
mount -o bind /dev /chrootarget/dev
After that I can chroot:
chroot /chrootarget /bin/bash
And I then do things like set root password, add users, setup permissions in /etc/group, configure xorg if necessary, etc.
I have had to install slackware this way on devices with broken cd drives and other obstacles to standard installation, and in the end, I rebooted, and one of the rc scripts sets up the encryption keys for the first time. If you were never planning to boot the system into slackware, but always be running in chroot, then you might need to run what was in those rc scripts manually (i.e. ssh keygen, etc.)