USB Boot on Raspberry Pi 3

Are you sure that usb is mounted to sda? When I have multiple usb drives hooked to my rpi, every one is mounted to different path, like sdb, sdc, etc. This is just pure guessing…

Thanks but the other 5 partitions are all tiny so there is not much to steal from in order to make the data partition go from 1GB to say 2GB. I’m doing it with a gparted live USB drive under Windows.

@Jullimullins

Below is the file system of a Hassio image flashed to a 16GB thumb drive. Wondering if you can advise where you stole the space from?

First increase the size /dev/sdb4 and after that you can increase size of /dev/sdb6.

Thanks! Although that made no sense, it worked a treat as I have a 8.6GB data partition. Now to try and boot!

@Jullimullins

Thanks for all your help. Got it working tonight using the following steps for anyone else trying to piece it all together.

  1. Installed Raspbian Lite (2017-04-10) on a MicroSD card and followed the instructions here to enable USB boot mode.
  2. Rebooted Pi then shut down a few minutes later.
  3. Burned hassio Pi3 image to a 16GB USB drive.
  4. Booted PC into Gparted to re-partition hassio image.
  5. Increased /dev/sdb4 from 1GB to around 4GB (must do first otherwise you can’t expand the resin-data partition).
  6. Increased /dev/sdb6 from 1GB to pretty much whatever was left.

  1. With the modified thumb drive back in my PC, I added the following located in the resin-boot drive and also in the resin-rootA partition inside the resin-boot folder:
    I changed the “root” option in cmdline.txt to:
    root=/dev/sda2
    and I added the usb boot line below to config.txt, right at the end:
    program_usb_boot_mode=1

  2. I then put the reworked thumb drive back in my Pi3 without the MicroSD card and after about 1 minute, the Home Assistant logo appeared so I knew we were underway. 20 mins later, working Hassio system with no MicroSD card. Yay.

18 Likes

Hi Guys!

@sanyatuning Your guide run only on a rip 3 on the 2, 1 or 0 you need always the sd card. So I think that rootwait param is necessary to wait until all usb devices is correctly recognized

Does sb4 partion size should be 4gb or can do whatever you want to set. In my case i have 32gb flash drive can i do more than 10gb ?

Arbitrary. Can be any size whatever allows you to extend resin-data beyond 2GB.

Yes, boot from USB only is supported on Pi3. You can still boot from USB on older models but you must have the SD card in place.

Works great thank you :smile:

1 Like

FYI, I’m having huge problems with this USB flash drive build and not sure what the problem is. Hassio does not restart well and if it does at all, it takes 10-15 minutes even with only a few entities. At the moment I cannot open the webpage even though hassio homeassistant check returns no errors. They log file simply says this:

2017-08-22 19:15:11 WARNING (MainThread) [homeassistant.setup] Setup of recorder is taking over 10 seconds.
2017-08-22 19:15:34 WARNING (MainThread) [homeassistant.setup] Setup of notify is taking over 10 seconds.
2017-08-22 19:15:36 WARNING (MainThread) [homeassistant.setup] Setup of media_player is taking over 10 seconds.
2017-08-22 19:15:37 WARNING (MainThread) [homeassistant.setup] Setup of device_tracker is taking over 10 seconds.
2017-08-22 19:15:39 WARNING (MainThread) [homeassistant.setup] Setup of tts is taking over 10 seconds.
2017-08-22 19:15:50 WARNING (MainThread) [homeassistant.components.media_player] Setup of platform cast is taking over 10 seconds.

Sometimes a reboot will help but restarting HA itself seems to kill it and the logs aren’t helpful. Running another build on a Pi2 using a MicroSD card and that instance is fine and restarts in a timely fashion. Oddly, Samba and SSH are working fine. Argh HA, the hours I’ve spent…

1 Like

What SATA SSD’s are you using? And more important what USB->SATA adapter did you find work well with the PI ?

I’m using a ‘ADATA’ USB thumb drive. Going to try again tomorrow using the Lexar that was running my Hassbian image sweet as for the last 6 months.

I’m lost. Where do you find the “resin-rootA partition in resin-boot directory”? I’m running Windows if that’s the matter?

resin-boot should be available in Windows as a connected drive after you’ve flashed the image to the USB.
resin-rootA partition won’t show up under Windows or macOS since it’s a partition formatted as ext4 which is a filesystem only Linux OS’s understand out of the box.

In order to modify anything on the resin-rootA partition you’d either need to:

  • Install some kernel extension for Windows or macOS that understands the ext4 filesystem
  • Boot from a gparted live distro (prob the easiest)
  • Connect your drive to a Linux VM like Ubuntu or in general just anything that’s linux, has a shell and understands ext4 (my preferred way)

Hi guys,

Do you have any problem when you restart HA?
Form time to time when I restart the front-end, it doesn’t boot back and I need to unplug the raspberry from the power supply…

Hi @xbmcnut, did the Lexar solve the “taking over 10 seconds” issue?

@Klex1404 Sorry, never got around to trying it as didn’t want to stuff my ‘live’ system. Sadly, my Hassio test system has now died and won’t boot at all. Back to the drawing board.

I can comfirm this works for me as well. Tho like he said best to use Linux distro ( or in VM ) to partition this image and I also needed su to edit the files inside “rootA” partition.

Would be nice if hass.io could perform boot from USB without all the needed steps performed above and simply just use the standard bootcode.bin from raspbian somehow to implent booting from USB. This way older raspberry pi’s can also boot from USB as well too. But I am not sure if this works with Resin.OS.