Showing posts with label risking. Show all posts
Showing posts with label risking. Show all posts

Wednesday, September 13, 2017

Try Chrome OS Canary Without Risking Your Chromebooks Stability

Try Chrome OS Canary Without Risking Your Chromebooks Stability


Theres been some buzz recently about Kenny Strawns discovery of Chrome OS Canary (nice work Kenny!). If youre not aware, Canary is a version of Chrome OS that is even more up to date with code changes and new features than dev channel. So it goes stable --> beta --> dev --> canary with stable being the most stable, reliable and least often updated version and canary being the least stable and least reliable but most often updated. A Canary version of the Chrome browser has been available and can be run in parallel with other Chrome channels on Windows and Mac for some time but theres been no publicly known equivalent for Chrome OS until Kennys discovery and normally, your Chromebook is only on one channel of Chrome OS, switching between channels meant a USB recovery or powerwash.

So Canary is going to give you the latest and greatest Chrome OS features weeks or months before stable channel gets them but you sacrifice the stability of your Chromebook because Canary isnt tested nearly as heavily as stable channel is. What if we could run stable channel on our Chromebook and only boot into Canary channel when we wanted to test something or check out a new feature? Wouldnt that be handy? Well, here are instructions:
  1. To get started, make sure your Chromebook is in developer mode. Model-specific instructions can be found here.
  2. Turn your Chromebook off then turn it back on but do not login. Make sure you have a WiFi or Ethernet connection configured at this point. 3G/4G is not recommended. Press CTRL+ALT+=> (=> is the forward arrow where the F2 key would be on a PC). Do not use the normal CTRL+ALT+T method to get a shell. Use the CTRL+ALT+=> method while no one is logged in.
  3. Login as user chronos, no password is needed.
  4. Run the command:

    sudo crossystem dev_boot_usb=1

    this tells your Chromebook to allow booting from USB / SD Card. Note that not all Chromebooks can boot from all USB or SD Card ports. For example, the Acer C710 cant boot from an SD Card and the Samsung Chromebook cant boot from the blue USB 3.0 port. Youll need to use a port on your device that supports booting. When in doubt, start with one of the black USB ports and go from there.
  5. Stick a USB or SD Card of at least 8gb size in your Chromebook and run the command:

    rootdev -s -d
    youll get output like:

    /dev/sda

    or it might say /dev/mmcblk0. Whichever it is, that is the device for your Chromebooks primary drive.
  6. Now run:

    sudo fdisk -l | grep Disk

    this will list out all drives your Chromebook sees. Your Chromebooks main drive will be listed and youll see some devices we dont care about like /dev/mapper/blahblahblah. Were looking for the USB or SD Card you inserted (compare sizes). On an Intel Chromebook with a USB drive its likely to show as /dev/sdb, with an SD Card its likely to be /dev/mmcblk0. On a ARM-based Chromebook, a USB drive is likely to be /dev/sda and a SD Card, /dev/mmcblk0. Make sure youve got the right device and remember what it is for the next step.
  7. Now we can run:

    sudo chromeos-install --skip_src_removable --skip_dst_removable --skip_vblock --dst <insert /dev/whatever from above step>

    chromeos-install is a script to copy Chrome OS to another drive. Normally the script is meant to copy from a removable device to a SSD or hard drive but were going in the reverse direction, thus we need the --skip_src_removable and --skip_dst_removable options to turn off those checks. The --skip_vblock option is needed to prevent an error message that should not matter anyway. The --dst option allows you to specify the destination device you determined in the previous 2 steps. So on my Intel-based Pixel Chromebook and using a USB drive I would run exactly:

    sudo chromeos-install --skip_src_removable --skip_dst_removable --skip_vblock --dst /dev/sdb

    this command will output some details about the install process and may spit out errors if theres trouble copying to your drive (USB drives and SD Cards fail after awhile, get a new one if you need it).
  8. When the process completes, your Chromebook will reboot. Now with the USB/SD Card still inserted, if you press CTRL+U on the keyboard at the ugly computer screen youll boot from your new installation on the external card instead of the internal drive. Youll probably notice its slower, USB 2.0 is very slow compared to SSDs. On first boot, the Chrome OS installation on the external drive will want to repair itself by wiping out the stateful partition (note that this is the stateful partition on your external drive, not the one on your internal drive which should remain untouched). Eventually, after a reboot, you should see Chrome OS boot to the setup process.
  9. Lets confirm were booted off of the external device by running:

    rootdev -s -d

    this time, we should see the USB/SD Cards device listed instead of the internal SSDs so we know were running off the external device.
  10. Now weve got a separate Chrome OS install that we can boot into at will with CTRL+U instead of CTRL+D but we need to switch it to Canary channel. Thats easy enough to do by running:

    sudo update_engine_client --channel canary-channel
    sudo update_engine_client --update
    this will install the latest Canary channel update for us on the external device, again leaving the internal device untouched. Now were up and running! Canary channel without the risk.

download file now

Read more »