Backup Guide for Linux on Chromebooks in Case of Theft, Failure or Damage while Travelling

There are many advantages to using Linux on chromebooks as a traveler. As you read on, I will detail how I can easily backup and restore my entire drive in a secure manner and how you can do the same. In the case that my laptop dies, is lost or stolen I am fully prepared to recover my data. One of the more obvious benefits of using a chromebook is the ability to replace the device with low overhead. Compare the price of my Asus C302CA, which is roughly $200 at the end of 2019 to something like a bottom end MacBook Air which runs at about $1,000 when on sale. That’s around $800 in savings for a .2 lb difference in weight compared to the MacBook Air. For a much more modern design Asus also has the C434TA without the chunky bezels and it’s still half the price. There are some out there that may pay insurance to cover their belongings and this is something I do recommend but a valid option is to choose items that are easy and cheap to replace and keep a fund available to do so if needed.

I will try to keep this as easily understandable yet comprehensive as possible. Written for Debian based systems, but may be adaptable depending on your knowledge. ChromeOS is technically Linux but I will use the term to describe your distribution of choice in this guide.

Be sure you are using some form of encryption on your Linux drive before beginning. You will see later on in this guide I recommend not wiping BIOS firmware, this is also a choice of convenience to easily go back to ChromeOS but you may do so at your discretion, just be sure to check compatibility.

One major way in which ChromeOS is a laggard compared to modern operating systems is there are no reliable ways to unzip large compressed files with encryption easily. Many extensions will work until an OS update and then break and some will not handle large files or series of encrypted files at all but work otherwise.

Even so, these extensions may not be privacy focused. For this reason I recommend you back up only drives into IMG files of an operating system that has already been encrypted at minimum, better if full disk (or FDE) with a very strong password. This means 20 characters minimum. You may also choose a hosting provider that you trust with your data or host your own as I do. That is up to you.

Requirements

Disclaimer: This could brick your device, destroy all of your data and mess up everything if you don’t know what you are doing.

This guide assumes you already have used MrChromebox’s firmware and are currently on some flavor of Linux and using a chromebook. If you have not yet done so please see MrChromebox’s site and read the documentation on how to do this. You may scroll down to see how to restore Linux for some instructions on getting Linux on a chromebook with this firmware update, but I recommend checking documentation on the MrChromebox site to ensure compatibility unless you want to buy a new chromebook. Some shortcuts for booting in this guide are specific to non-ARM chipsets.

Hardware Needed For This Procedure

If you have large drives you will have to spend some money on external media that matches the size of your internal drive to make this work. While I have opted to use SD Cards (and compact adapters), it is possible to use USB or any other external media that has ample space to clone your drive. SD Cards are reasonable for travel because of their size, though often slower. You should not need more than two external media devices connected at any point in time.

  1. 2 SD Cards the same size as your internal drive, minimum. Go larger by some to ensure this works. You may even need to double up on one SD card if you plan on having space to unzip on one of these assuming you use the standard ZIP compression that ChromeOS natively supports. I strongly recommend having one that is double the size to verify hash and file integrity as well.
  2. 4GB SD Card for ChromeOS Recovery (this will never be erased). You should already have this.
  3. 1 SD Card for the Linux distribution of your choice, size varies depending on what you use.
  4. Enough cloud storage to cover the size of your drive and a good enough internet connection to both upload and download the backup in a “reasonable” amount of time.

I have opted for a 32GB internal drive for my install which I use and instead work off of external media if I need to do more work with larger files. This makes the entire process much faster (both for downloading and uploading). You may have more creative solutions but do not rely on encrypted compression working on ChromeOS. You may be able to get away with compressing in basic ZIP format to save space as ZIP is internally supported on ChromeOS.

Again, I will assume you are already on Linux using a ChromeOS device, using MrChromebox’s firmware utility script and have set up your system with at least some form of encryption for security. In this guide I have already replaced ChromeOS internally with Debian (Linux). If you desire to do the same please research and do not write over your boot partitions (generally there are two with “boot” in the name, but most likely they are protected by a write-protect screw), otherwise adjust paths to work off of an external hard drive instead of your internal drive if this is where your Linux install is located.

Backing Up, Testing File Integrity

Disclaimer: This could brick your device, destroy all of your data and mess up everything if you don’t know what you are doing.

“mmcblk0” represents my internal drive and should represent your linux install location, while “sda” represents external media and will represent your external media. Anything mounted under /media/ in the file paths are external. Paths may differ if you use a different choice of live distribution. You should use lsblk in terminal to see and verify your drives. Copy commands into a text file and modify directories to fit your application before using them.

This guide has been written to work with Debian based systems. OF= is always the location being written over. Please be careful, the DD command is nicknamed “Disk Destroyer” for good reason.

  1. Launch Live Linux (SD Card).
  2. Open a shell terminal, Backup Drive Into IMG file on SD Card A for later uploading.
    2a. cd ‘media/pureos/Temp/’
    2b. mkdir image
    2c. sudo dd if=/dev/mmcblk0 of=image/mmcblk0_backup.img bs=64K conv=noerror,sync
  3. Backup Drive via Clone on SD Card B. This card is at least the same size as your drive.
    3a. sudo dd if=/dev/mmcblk0 of=/dev/sda bs=64k conv=noerror,sync
  4. Test SD Card B (Clone) for successful boot. On startup, CTRL + L then ESC and choose it.
    • this is a fallback in order to restore if problems are encountered.
    • this is very important because you are wiping your drive and replacing it in the next step to verify your backup is valid, this is your way out if things go wrong.
  5. Boot your Live Linux distro (SD Card). Flash SD Card A IMG file to main system drive to test.
    5a. sudo dd if=/media/pureos/Temp/image/mmcblk0_backup.img of=/dev/mmcblk0
    • if boot is successful for your main drive, you will be able to use this image file to backup and restore
    • if boot is NOT successful you will need to use the clone of your drive on SD Card B to restore, you have already verified it will boot before doing this. repeat step 2 after successful restoration.
  6. Verify hash of backup IMG file on SD Card A.
    6a. sudo sha256sum /media/username/Temp/image/mmcblk0_backup.img
    • save this hash online in a secure manner
  7. Upload the IMG file you created. Optional: ZIP compression to save space (offers no encryption)
    • if permission issues are encountered use sudo file_browser to transfer file to new usb/sd and check hash
    • you may use your cloud storage of choice or run your own cloud storage server.
    • if you followed instructions, your drive data is safe because it is encrypted at the disk level
  8. Download the IMG file into a new folder and hash it after the upload is complete, compare it with the copy you have locally. They need to match. If they match, you can either keep one IMG file around for a local back up or delete both.

Restoring After Theft, Loss, Damage or Failure

Always choose a ChromeOS device that has at minimum the storage of your previous model and ensure the same chip architecture is used at minimum. I mean this loosely as in do not go to ARM if you weren’t on ARM. We will be checking the hash again to ensure file integrity before cloning a restoration. Your new device may have a larger drive and will still work with this guide but it will not work if the device has a smaller drive.

  1. Be sure a ChromeOS recovery SD Card is still available. If not, use the recovery tool on ChromeOS to make one.
  2. While the computer is shut down, Hold Escape & Refresh along with Power Key.
  3. Press CTRL & D
  4. Press Enter
  5. Press CTRL & D, everything is wiped. Developer mode enabled.
  6. Log into account with developer mode now enabled.
  7. Press CTRL + ALT + T in a Chrome Window, type “shell”, hit enter and input (Read the documentation on MrChromebox’s site for compatibility information!) cd; curl -LO https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
    • located at https://mrchromebox.tech/#fwscript
    • select Update RW_Legacy
    • when prompted, select to boot external (optional but I prefer it)
    • CTRL + L jumps into boot on non-arm chipsets on reboot, then ESC for options or CTRL D for ChromeOS.
    • Pressing spacebar at boot will force you to restart the process, so don’t do it unless you want to go back to step 1.
  8. Download and Write Live Linux Distro to an SD Card with Chrome Recovery Tools. You may need to append the end of the ISO file with IMG (instead of ISO) to get it to work. Chrome Recovery is in the chrome app store if you don’t have it.
  9. Download your internal drive IMG file from cloud service or personal hosting. Use external download destination as space will likely be greater than that of your drive. You may need to adjust options in chrome to ask you which location every time when downloading a new item. Check hash and be sure it matches what it was when you last checked after downloading (when you finished uploading).
    • checking the hash is an important step to verify file integrity, but depending on the state of ChromeOS extensions (which regularly break) this may not be possible every time.
    • you may need to boot into your live linux media and verify from there, don’t be lazy about it.
  10. Copy drive backup image file to an SD Card if you have not already downloaded it there. Does not need to be “burned” as Linux will be able to read files written by ChromeOS. It is possible to burn the IMG file to an SD Card with Chrome Recovery Tool if you prefer, but I don’t see why you would.
  11. Restart with Live Linux SD Card (not your backup) in card reader.
  12. Press CTRL+L, then ESC when prompted and boot into it.
  13. Check power settings to prevent unintended shutdown.
  14. Insert SD card with drive backup and begin to restore it to the internal drive or location where you intend on using Linux.
    • if burned: sudo dd if=/dev/sda of=/dev/mmcblk0 bs=64K conv=noerror,sync
    • if copied as a basic IMG file: sudo dd if=/media/pureos/Temp/image/mmcblk0_backup.img of=/dev/mmcblk0

Conclusion and Final Notes

Voila, we are back on Linux and your data is unscathed. You should be up and running with an exact clone of your drive. If you were already on Linux without a full bios rewrite you should know pressing space-bar on boot will make you start the process all over again, so make sure you keep backed up regularly. I back up at least once per week. If you’re already reading this you probably know it’s crucial to have a ChromeOS recovery media on hand at all times.

The best part? With this method I am able to save $800 in the event that my laptop was stolen, lost or damaged and you can as well. This also substantially lowers the cost of entry for a reliable laptop to travel with and also lowers emergency fund requirements. I am also able to avoid accepting the limitations that are built into ChromeOS and use the full functionality of Debian. If you are new to Linux consider trying GNOME for a beautiful GUI.

It is possible to protect your data via VPN when downloading your drive backup in ChromeOS but you will need to install a VPN app from the Play Store and connect from there for it to cover your data because ChromeOS does not yet have native VPN integration! Good luck and safe travels!

Kombio

36 Posts

Thanks so much for visiting Kombio! Be sure to follow our new material on Instagram. If you would like to support the site consider covering a coffee or purchasing a print.
View all posts