Install only the "core" of the distro on an SSD, other packages on HDD?
I use Ubuntu installed on a hard disk. My computer also comes with a tiny (16GB) SSD that I've another Ubuntu installation on. While a fresh install on the SSD worked great, this is too small to hold all the packages I will eventually need.
Is there any way to only have the core bits of the distro on the SSD, and have all the other packages I later install on the HDD?
I want this so I can have a fast boot (boots slowly using the HDD) and since I'm happy with the speed of apps as they work while now installed on my HDD, I'd like to keep using them off of it.
I think you may have misunderstood your issue. 16 GB is more than is needed on / for a typical desktop Ubuntu installation. For example, here is a partial output of df -h on my Ubuntu 22.04 system- this is a server but it has a full desktop environment installed. I actually originally put 20.04 on it when that was current so it has accumulated some cruft. I also remove snaps:
Filesystem
Size
Used
Avail
Use%
Mounted on
/dev/sda1
47G
11G
34G
25%
/
/dev/sda7
84G
26G
54G
33%
/home
/dev/sda6
88G
22G
62G
27%
/var
The thing you're most likely running into is that whilst everyone quickly realises the advantages of putting /home on a separate partition, it's not so obvious that /var should be on a separate partition as well. This is because /var is where all the logs and caches are stored, and if you have a runaway process that fills up /var/log, it can cause the system to crash. Experienced Linux users will have encountered situations where /var was not on a separate partition and their box broke because of logs not being cycled...
I realise that you may be saying that you have 16GB total for 2 x installations. That is going it a bit but should be possible with some thought and care. Good luck!
16gb is a bit tight for the whole root partition, but maybe if you partition the HDD with a slice for /home/ and another slice for /var/. If those two are segregated to the HDD, you should be able to hold all the other root directories in the SSD.
I've done that, /home and /var on the HDD. The larger apps I use (libreoffice, gimp, firefox) I set up as flatpak user installs, and many others I use as AppImages, keeping them in my home directory. I haven't set it all up but it looks doable.
If I understand you correctly, I think you can manually create symlinks to the HDD. For example, if you want libreoffice suite to be on HDD, you would go into where the libreoffice suite is located on the SSD, move it to some location on the HDD, and create a symlink in its place pointing to the new location. This way, the data is stored on the HDD but all programs still find its way there.
I would also recommend upgrading your HDD to a SATA SSD. But of course, that costs money so, up to you.
The easiest way off the top of my head would be reinstall and manually design your partitioning so anything that'd benefit is on the SSD and everything else is on the HDD. You might be able to get away with / on the SSD and /home on the HDD, I don't know what all you have installed or what amount of space Ubuntu requires by default. If you wanna go this route, I'd start your reading here: https://wiki.archlinux.org/title/Partitioning#Partition_scheme
The issue with having /usr/bin and stuff on the HDD then mounting it to the SDD is that both system software I want to using the SSD for faster booting and packages I install will both end up on the HDD. I need some way of only having non-system software on the HDD.