Whoever changed rc.6 from BT2 version quoted the part that kills all processes.
As explained, "INIT is supposed to handle this entirely" and "we need fuse-based filesystem to be alive (if mounted from initrd)".
But least for me (and some other people complaining), it seems not all processes get killed, and I have partitions mounted using fuse.
A possible fix is unmounting partitions using fuse first, then killing all processes, and then proceed as before (with all processes now killed, / can be unmounted).
Here is the patch for rc.6, according to what I described:
--- rc.6.original 2007-12-20 16:31:49.000000000 +0000
+++ rc.6 2007-12-20 17:04:03.000000000 +0000
@@ -201,6 +201,20 @@
/sbin/vgchange -an --ignorelockingfailure
+/bin/umount -a -r -t fuseblk,nonfs,noproc,nosysfs,notmpfs
+# Kill all processes.
+# INIT is supposed to handle this entirely now, but this didn't always
+# work correctly without this second pass at killing off the processes.
+# Since INIT already notified the user that processes were being killed,
+# we'll avoid echoing this info this time around.
+#TM: we need fuse-based filesystem to be alive (if mounted from initrd).
+if [ ! "$1" = "fast" ]; then # shutdown did not already kill all processes
+ /sbin/killall5 -15
+ /bin/sleep 5
+ /sbin/killall5 -9
/bin/umount -a -r -t nonfs,noproc,nosysfs,notmpfs
# We don't need to remount root directory readonly in Slax, as it's tmpfs