move folder storage

raspberry-pi

#1

Hi all! I'm trying to change the storage folder in Octopi, the idea is to change it to a flash drive. Will someone have a detailed tutorial? I'm a newbie in this.
Thank you very much to everyone from now!


#2

Assuming that this is on a Raspberry Pi 3B and you're plugging in a USB thumbdrive that you'll leave in most of the time...

  • Remote into the Raspberry with ssh pi@octopi.local using "raspberry" as the default password
  • Run sudo apt-get install -y usbmount
  • Run sudo nano /lib/systemd/system/systemd-udevd.service

Change this line to:

MountFlags=shared

Updated: it was slave before.

  • Run sudo reboot, wait a bit and then remote back into it
  • Insert the USB drive
  • Run sudo ln -s /media/usb /home/pi/.octoprint/uploads/usb
  • Go into OctoPrint -> Files side panel widget and look for a new usb folder, noting that OctoPrint may take a while upon bootup to analyze all the gcode files on it

If you think that you'd like to remove the USB drive, you should copy the file(s) from the usb folder to the main folder in that Files side panel first. It's probably best to only remove the USB drive when the Raspi is off.


#3

Hello Guru! Thanks for the reply. I did just what the tutorial says and when it's time to press the test button, it gives me the message:
The path is not writable.


#4

Fair enough. During analysis, OctoPrint wants to create a file called .metadata.json in each of the folders it finds. It therefore needs write access to every folder it finds on your USB drive.

If you're okay with that, then it should be necessary to consider how one may do this. In my particular case, I see this:

ls -l /media/usb

total 13056
-rwxr-xr-x 1 root root  2203899 Mar  6 00:27 BottleCap.gcode
-rwxr-xr-x 1 root root   143641 Mar  6 00:28 microSD-clip.gcode
-rwxr-xr-x 1 root root 11003591 Mar  6 00:28 PauseButton.gcode

ls -l /media
total 36
lrwxrwxrwx 1 root root    4 Mar  6 08:37 usb -> usb0
drwxr-xr-x 5 root root 8192 Dec 31  1969 usb0
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb1
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb2
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb3
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb4
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb5
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb6
drwxr-xr-x 2 root root 4096 Mar  6 08:37 usb7

In other words, this has been mounted by default as the root user.

Back on that earlier step, change it to:

MountFlags=shared

Reboot and see if that is happier. If it isn't—the likeliest case—then you'll need one more command:

sudo chown -R pi:pi /media/usb0

This would recursively change the ownership of the underlying /media/usb0 mount point to the pi user as well as all files and subfolders. The net effect would be that this should allow OctoPrint to create hidden metadata files within that structure.

Others might suggest that /media/usb would be the location but I'm reasonably certain that Raspbian ignores rights on symlinks.