Dual booting SSD-based desktop/laptop with Windows pre-installed
Part-1: The primer
Recently, the SSD prices have dropped significantly so that many brands and models are available with 128GB-512GB SSD, along with 1TB HDD. Usually these models come with Windows OS pre-installed.
Advantages of SSD over HDD
SSD are essentially Non-volatile block device disks, with a truer random access compared to HDD. With SSD the rotational and seek latency, a significant wait time for disk read/write, is avoided. Although HDD firmware have improved with high disk cache hit ratios, it is observed that as the computer gets used, the cache hit ratio gets worse, causing the "computer slow down". The bad block detection and redirection adds to the problem, as the computer gets older - disk surfaces tend to deteriorateas they age.
Here SSD offer a significant improvement over the HDD.
However, SSD have a problem of read-write cycle limit. Put simply, each memory byte of the SSD can be written only between 3000 and 100000 times. So you want to place read-mostly data on the SSD.
What is the read-mostly data in a Windows system? That would be Prograam Files and system data - seldome written to, but always being read. This gives a performance boost to the system. The frequently written / updated data is placed on an HDD.
Similarly, on Linux, /usr, /etc, /opt, /sbin, /bin are infrequently updates, whereas /home, /tmp, /var are frequently updated.
A laptop with SSD and Windows pre-installed always has the entire SSD reserved for "C:\", which means that normally you don't have any space left for placing read-mostly Linux parts, and thus cannot take advantage of the SSD immproved performance.
But hold on. Windows provides a way to shrink a partition even if a drive is mounted on it, and is safe to do when the laptop is relatively new. So that is what we are going to do.