Installation of CloudReady on old laptops

At this pandemic time, many people are being forced to work from home when they never have before, and kids are learning online for the first time. Many families still do not own a laptop. While most families have a smartphone, doing serious computer work and homework on a smartphone is almost impossible and so the need for laptops has never been greater. The Fairbanks GreenStar electronics recycling non-profit has a warehouse full of old, discarded and donated laptops (it looks like the inside of the Jawa sandcrawler!). They are allowing volunteers to take a stack home and resurrect the old laptops, later to be returned and donated to those in need. I took home nine (nice Dells and ThinkPads!) on Friday and had seven up and running by Saturday evening.

Greenstar is not choosy about the OS to be installed, but many of these machines are quite old (Intel i3 and i5) and putting a modern Windows on them would be a chore and challenge. Step up Linux! It’s great for rejuvenating old machines; you can even install it on a 386. Now I know this is not the best time to introduce people to a new operating system, but as it happens all the kids in the School District already run Linux, which runs under the hood of Chrome OS on their school Chromebooks. Chromium OS was the open source version of Chrome OS, using Chromium rather than Chrome. There have been various forks of Chromium OS since 2009, and the best maintained is offered by the company Neverware, in the form of CloudReady. The ‘Home’ version, with no support, is free, and Neverware is actively encouraging its installation during this pandemic time, to increase laptop supply.

This blog is a HOWTO for others installing CloudReady on multiple laptops. (It assumes some familiarity with Linux installation.)

Make the installation USB drive

See the Neverware guide. The download is only 1.1 GB, but when unzipped it expands to ~6 GB. So you will need a 8 GB minimum flashdrive. Some of the laptops I’ve been working on don’t have hard drives and will need to always be run off the USB drive, so grab a bunch of 8 GB flash drives at the start.

Don’t forget to check the MD5SUM of the downloaded image. Unzip and burn to the flashdrive. On Linux, the standard dd route is:

  # dd if=cloudready-XXX.bin of=/dev/sdX bs=4096 status=progress

Note that CloudReady has stopped distributing 32-bit versions but you can still get the last one here or here (direct). I couldn’t find an official MD5SUM for this file - use at your own risk!

Clean the laptop before using

While most of these machines have been sitting in the warehouse since before the pandemic, some may have been moved or otherwise touched by someone. If you have still not had Covid-19, it makes sense to be careful. Wipe the machines down with sterilization wipes. Most of the laptops were really dirty (dust, dried coffee and general crud!), so this is a good time to clean them too, including wiping the screens with lens cleaner.

Boot from USB drive

The CloudReady (CR) Installation Guide has a section on the key to press at powering on in order to trigger the BIOS boot menu. It’s often ‘F12’ (e.g., Dell and Lenovo). I find the best way to trigger this is to start tapping the F12 key as soon as the ON button is pressed. If you just press F12 and hold it seems that sometimes it doesn’t ‘take’.

Select ‘USB Device’ or ‘USB Storage’. CR should boot.

Enter the console

When the login page appears and is stable, press Ctrl+Alt+F2 to get to the console (dropping out of the Desktop Manager GUI). Enter username: chronos (no password needed). Obtain root user with:

  $ sudo su

First check to see if the machine is 64-bit capable with lscpu.

Next see how large the hard drive is, with fdisk -l | more. The hard disk should appear as /dev/sda, with the USB drive as /dev/sdb. (Note that ChromeOS and CR, while cloud focused, do allow the user to store files on the hard drive.)

If this is a used machine, be a good citizen and wipe the hard drive! This will be the longest stage of the install, so I suggest making several install disks and starting the wipe on several machines at once. It took me about an hour to wipe 300 GB.

  # dd if=/dev/zero of=/dev/sda bs=4096 status=progress seek=0

Now, install CR. When I started, it was not clear if there needed to be a partition table already on the hard drive before installation, and I played around with making DOS and GPT partition tables with fdisk and cgpt. It seems however that the installation script always deletes and remakes a GPT partition table, so you can install right onto the totally wiped drive. Simple as:

  # /usr/sbin/chromeos-install --dst /dev/sda

There are several warnings about incorrect GPT Primary and Secondary headers, which can be ignored.

I like the final message: Power off, boot and cross your fingers!

Shutdown with poweroff. Press the power button. Note that on the Dell Latitudes the boot process hung with an error Invalid Partition Table. Press Enter though and the boot process continues. I could not find a way to avoid this hiccup.

Post install checks

Since these laptops are intended for new computer users, it makes sense to run some checks and do some installs. The first user becomes the ‘owner’ and that user’s name always appears at the splash. I created a dummy Gmail account so the eventual owner would not always need to see my name!

Record some metadata

After a few installs, my scribbled notes became inadequate, and I created a spreadsheet to keep track of where I was. I made some sticky labels and gave each machine a code.

I wrote a short introduction for users, to be included with the laptop.

Clean again

This time, clean the machines carefully to prevent inadvertent spread of Covid-19 from you. Put them in a box or bag in a way you will not be able to touch or cough on them. Return them to Greenstar. And grab another stack!