In the last 2 days I have been upgrading my main desktop. So far I ran Slackware-current from 4-5 months ago. The system has been rock solid but for the docker support I needed a 64-bit system.
Another upgrade I decided to make was getting an SSD drive. I had thought about it some time ago but had postponed it because of the need of reinstalling the operating system. As I needed a 64-bit system anyway it was a good time to make both upgrades at the same time.
My computer lacks a permanent DVD drive and thus I have to connect it every time when I need to use it (I need it about once in 1-2 years when install an OS). However, this time I failed to connect the drive to the motherboard. It seems like some of the IDE connector pins were slightly bent. I tried with 3 different cables but none of them would fit into the connector (and it was certainly an IDE connector, not the floppy one, and it surely had worked before). Because the connector is in a very inaccessible place in my computer I was not able to bend the connector pins. As a workaround I found an old external hard disk case and connected the drive into it. That worked well for burning the install disk and I was able to boot it with the same thing.
Partitioning and installing onto an SSD drive is pretty similar as with normal hard drives. With older (with newers too?) motherboards you can choose the SATA mode. Usual modes are AHCI and IDE. The right mode for SATA drives would be AHCI. Unlike with Windows, you can switch modes with Linux. I tested both modes and measured read speed with the
hdparm utility. With the IDE mode I got 172MB/s as buffered disk reads. With the AHCI mode I got 263MB/sec which I think is not very bad for a 6 year old motherboard that has no SATA 3 support. The only disadvantage of the AHCI mode is that my motherboard (GA-EP45-DS3R) bios uses some kind of "Intel AHCI bios" which adds about 5 seconds to the boot time when the AHCI mode is enabled. With the IDE mode it's not used and there is no delay added.
Most of the time for now (1 day) the system has been stable but there have been some issues. I had a bunch of really weird disk errors when I had both the SSD and my old drive connected. The system would boot but very slowly. Connecting my old drive to another SATA port solved this. I suspect that the motherboard has crappy SATA controller. With a single drive it is rock stable.
Another issue, more serious, is with the SSD model I use (Crucial M500). Linux disables queued TRIM for this drive as it appears that the drive will otherwise silently corrupt your data. The disk vendor is said to be working on the new firmware version.
I added options
discard into my fstab file. I also went an extra mile by compiling my own custom kernel (3.12.8). The biggest issue with the kernel was the missing devtmpfs support. I had forgotten to enable it. This made udev not running which caused X to immediately hang. It took me 4 hours of debugging before I realized it. Another hurdle was docker support. It needs a bit more configuration flags than listed here. IPtables conntrac and masquerade support is also needed.
The most important 32-bit program I need to run is Skype. Skype has no 64-bit Linux version and considering that they are now owned by Microsoft I doubt that there will be any. Fortunately, it can be run with 32-bit Slackware libraries and there is a SlackBuild script that builds a Skype package with the required 32-bit libraries included. This is fine solution as Skype is the only 32-bit program I really need. Packaging it this way ensures that the system is not contaminated by 32-bit libraries.
The another 32-bit program I sometimes need is CadSoft Eagle. I have not decided what to do with it. Possibly run it on a virtual machine.
The good thing is that I can now finally run docker on my computer. I have played around with some images and dockers and found it to be quite amazing. I will ditch my current clumsy environment for lightweight dockers (in addition to Wordpress my environment also needs NodeJS and Prolog runtimes + databases).
My next upgrade will be done to the testing server which currently runs on Pentium 4 (ancient 32-bit platform) so that I can run dockers there. Later I will also get a 64-bit laptop.