Deploying to machine with SSD upgrade
Been using fog for 2 academic cycles now and very happy with how it’s been working.
This year I’ve had a very specific issue I’ve had to solve though.
40 of our computers have had an upgrade, adding in a 240GB SSD as the boot drive with the original 1TB HDD becoming a workspace drive for users.
The OS aspect has been fine as these computers are in a gpo that pushes user profiles to the larger hard drive, but on the deployment side of things I had to do a number of things manually to get my main base image to install deploy correctly.
Firstly, I had to wipe the original HDD manually, install the SSD and disconnect the HDD, deploy the image, then reconnect the HDD and format it to NTFS.
I had a play around with setting the install to drive but to get that to work I’d have to have already wiped the HDD and figured out whether it is seeing the SSD as /Dev/SDA or /Dev/SDB (it wasn’t the same on every machine).
So, question is, is it possible for fog to figure out which is the SSD by itself?
If it could, then there could be the option to install to SSD in the host config rather than specify a device that might change, and could potentially then also have a config to format remaining drives in a specific way (i.e. NTFS for a secondary drive…)
This is where computer imaging isn’t exactly a smooth process. Unfortunately, machines implement displaying a drive however they see fit, even across the same model of different machines. Typically the channels that an HDD is connected to (SATA 0, SATA 1, etc…) are followed to some level, but sometimes this isn’t the case (as I imagine you’re seeing now).
It is possible to tell FOG which drive to use, though it doesn’t know if the drive is ssd or hybrid or spinner. This is completely dependent on the machine, and if you can’t rely on which will be populated as what letter (my guess is your machines were setup in RAID mode of sorts?) that isn’t really going to help you much.
One way you could do this though, is to swap out the /usr/share/fog/lib/funcs.sh file and change the getHardDisk function to detect your drive sizes. (You can do the swap out using postinit scripts.) But then it’s implicit that all machines will follow the same method.
The steps I would take, albeit more time consuming initially:
Install the SSD to the 1st SATA Channel (if that’s how your machines are setup – I can’t help much in the case of NVMe/MMC builtin controllers as I have nothing to base them on yet).
Move the 1TB to the second SATA Channel.
Ensure the machine’s firmware is updated to the latest and greatest.
Ensure the machine’s SATA operation mode is AHCI.
If these don’t make your SSD display as /dev/sda then I don’t know else to tell you to try.