Does the Migration Guide have errors?

I just migrated my node from Windows 10 on one PC to Linux on a different PC.

I followed this guide but ran into a number of problems that @Alexey @peem were kind enough to help me fix; Migrating from Windows GUI installation to Docker CLI - Storj Node Operator Docs

I believe I followed the guide “to a T” but could be mistaken. Or perhaps there are errors in the guide?

Is the step that I put a red dot next too correct? Because I had to move files around after the transfer otherwise the node was offline. I’m wondering if the pathway is wrong?

There is a difference, where Windows GUI node and docker node stores its data.
Windows GUI storagenode will store data in a specified path, so the file tree would look like

X:\storagenode
├── blob
├── blobs
├── garbage
├── temp
├── trash
├── bandwidth.db
├── heldamount.db
├── info.db
├── notifications.db
├── orders.db
├── piece_expiration.db
├── piece_spaced_used.db
├── pieceinfo.db
├── pricing.db
├── reputation.db
├── satellites.db
├── secret.db
├── storage-dir-verification
├── storage_usage.db
└── used_serial.db

The orders folder, storagenode.log file and config.yaml file are stored in the "C:\Program Files\Storj\Storage Node" path, the identity is stored in the %APPDATA%\Storj\Identity\storagenode by default.

But for the docker node the structure is different:

/mnt/x/storagenode2/
├── identity
│   ├── ca.1560971067.cert
│   ├── ca.cert
│   ├── ca.key
│   ├── identity.1560971067.cert
│   ├── identity.cert
│   └── identity.key
├── orders
│   ├── archive
│   └── unsent
├── storage
│   ├── blob
│   ├── blobs
│   ├── garbage
│   ├── temp
│   ├── trash
│   ├── bandwidth.db
│   ├── heldamount.db
│   ├── info.db
│   ├── notifications.db
│   ├── orders.db
│   ├── piece_expiration.db
│   ├── piece_spaced_used.db
│   ├── pieceinfo.db
│   ├── pricing.db
│   ├── reputation.db
│   ├── satellites.db
│   ├── secret.db
│   ├── storage-dir-verification
│   ├── storage_usage.db
│   └── used_serial.db
├── config.yaml
├── revocations.db
├── storagenode.log
└── trust-cache.json

So, to correctly migrate your Windows storagenode to Linux, you need to copy/move data to storage subfolder in the data location, and your orders subfolder to the data location.
In your docker run command you will use a path without storage subfolder (it will be added automatically inside the container).

@Alexey

Alright. So then someone @storj should add that step to the guide right?

I’m just trying to look out for the next person who confuses easily.

It’s added, if you run the mentioned command:

rsync -aP "/mnt/c/Program Files/Storj/Storage Node/orders" user@192.168.1.68:/mnt/storj/storagenode/orders/

it will copy your orders folder to the storage location on Linux.
The next command will copy data to the subfolder storage in your data location on the Linux system:

rsync -aP /mnt/d/STORJ/ user@192.168.1.68:/mnt/storj/storagenode/storage/

As you can see, that it will do exactly what I explained and what’s explained in the mentioned guide: