I’ve exported my old Umbrel Home (0.5) to an external drive. I flashed and installed the new Umbrel OS on my mini-PC and it installed. When it booted it did not “migrate” my old data, even though the external drive is connected and visible to the OS. I rebooted several times, nothing.
Logs show:
May 06 16:37:54 umbrel umbreld[830]: [migration] Unkown device booting for the first time, checking if we need to migrate legacy Linux install data…
May 06 16:37:55 umbrel umbreld[830]: [migration] No legacy Linux install found, skipping migration
Is there a way to trigger the migration manually, through the command line?
That’s strange that umbrelOS isn’t recognizing the external drive with your exported data (or isn’t recognizing that there is umbrel data on the drive). Even though the export script and migration process are for migrating custom-linux 0.5.x to linux 1.x it should still work just fine with 0.5.x data exported from Umbrel Home.
As long as no user has been created on your new install (e.g., by going through the account setup process in the UI), then subsequent reboots of your miniPC with the exported-data drive attached should trigger migration. The fact that it is not working means either:
The data export from the Umbrel Home was not successful for some reason, so the migration logic doesn’t think there is data to import when it checks the external drive. Can you check the drive containing your exported data and see if there is a .umbrel dotfile at <path-to-mounted-partition>/umbrel/.umbrel. If this does not exist then please try exporting data from the Umbrel Home again (edit: or add the dotfile if you are confident that all other data was exported successfully).
Something is tripping up the script when trying to mount your USB drive. You mentioned that the external drive is visible to the OS. Are you able to mount a partition from your USB drive successfully?
Here is the logic for discovering an external umbrel install if you’re curious:
I can probably hack something to make it so that you can manually trigger migration from the command line. Let me test something and get back to you. That being said, triggering it from the command line will end up running the exact same migration logic as umbrelOS does on every boot if there is no user set up. Perhaps there is something strange happening on boot though that this will get around.
@aantonop to follow up, I have tested a command to modify an os file that will allow you to initiate migration using a command, but I’m thinking this may not be a great idea to post here where others may be tempted to try this lower level change that could end up putting them in a bad state, especially when their issue may be unrelated.
Instead, if you are still having issues you can actually trigger an import another way:
On your miniPC installation, create a directory called import within the main umbrel data directory:
At this stage, where no user has been created through the UI, the login credentials in the terminal will be:
user: umbrel
password: umbrel
sudo mkdir /home/umbrel/umbrel/import
Copy your exported data from your mounted USB drive into the import directory.
For example:
For some reason there was no .umbrel file in the drive. This despite the fact the export script had completed without error. I was able to add that file (mounted filesystem read-write and then “touch umbrel/.umbrel” in the mounted filesystem) and the import ran successfully.
Note that I didn’t need to redo the export, which is good because the original disk is overwritten and so I couldn’t export again.
Not sure why the export script didn’t create the .umbrel file. Seems like a bug in the export script.
Glad you were able to resolve by creating the .umbrel file @aantonop. Not the ideal experience all-in-all though. Thanks for following up with the solution. We will look into a potential export script bug.
Does it look like all your data was imported successfully, and that it was only .umbrel that was missing?
For others that make their way to this post because data migration is not running when booting up umbrelOS 1.x, can you please check to see if your exported data has a .umbrel dotfile in the umbrel data directory and post your findings here?
ls -a <path-to-usb-mount>/umbrel
Note the use of the -a flag so you can see dotfiles.
If you find your .umbrel dotfile is missing, it would be great to know which version of umbrelOS you were running on the exported device, your device hardware, and your USB storage device used to export the data.
Hi,
my journey has been a bit more troubled: Umbrel 0.5 is running on a LXC container under Proxmox. I created a virtual disk for the new Umbrel 1.0 VM and rsync’d all the content of /umbrel folder into the new disk.
I then mounted the disk into the new VM at /home/umbrel/umbrel/import but after restart the process is not being triggered.
I changed the ownership of the files as rsync retained the old attributes, but still no luck. Here’s some debugging info:
umbrel@umbrel:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
|-sda1 8:1 0 200M 0 part /mnt/root/boot/efi
| /boot/efi
|-sda2 8:2 0 9.8G 0 part /mnt/root
| /
|-sda3 8:3 0 9.8G 0 part
`-sda4 8:4 0 30.1G 0 part /mnt/root/var/log
/var/log
/mnt/root/var/lib/docker
/var/lib/docker
/mnt/root/home
/home
/mnt/root/data
/data
sdb 8:16 0 900G 0 disk
`-sdb1 8:17 0 900G 0 part /mnt/root/home/umbrel/umbrel/import
/mnt/root/data/umbrel-os/home/umbrel/umbrel/import
/data/umbrel-os/home/umbrel/umbrel/import
/home/umbrel/umbrel/import
sr0 11:0 1 1024M 0 rom
I was able to migrate to a new host with the “import” directory trick.
I just made a minor change on your rsync command adding a “–update” parameter, in case of a interrupted execution (accidental or not) and save a lot of time syncing contents and avoiding to keep broken files on destination.
Hi, I have the same problem as @Super-E does. I’m running it using VirtuaBox, I mounted my old umbrel dir under /home/umbrel/umbrel/import but the migration does not start, I’m only greeted with the onboarding site. How to troubleshoot this? Is there a way to see logs or look into the source to understand what’s going wrong?