Masz mało miejsca na serwerze? Zamontuj OneDrive w Linux i uzyskaj dodatkowe GB. Poniżej przeczytasz o tym jak zamontować dysk OneDrvie jako folder, tak, aby dane nie były przechowywane fizycznie na naszym serwerze.
OneDrive
W pierwszym kroku potrzebujemy konta OneDrive, jednak jest to rejestracja jak każda inna w przypadku darmowego konta zyskujemy 5GB miejsca na dane. W przypadku płatnych planów Office 365 / Microsoft 365 możemy zyskać od 1TB w wersji Personal, do 6TB w wersji Family (mamy 6 kont po 1TB i każde max na 5 urządzeniach). Oczywiście zyskujemy też pakiet Office czyli Word, Exel, więc myślę, że warto. Jest co prawda ograniczenie do wykorzystywania oprogramowania w celach tylko prywatnych są wersje komercyjne a moje teksty są dla osób początkujących i chcących pogłębiać swoją wiedzę więc zakładam, że nie jest to użytek komercyjny, ale ja tego sprawdzał nie będę :).
Konfiguracja OneDrive w Linux
Wykorzystamy rclone w celu zrobienia tak, aby Linux widział folder, którego zawartość będzie tylko na OneDrive. Dzięki temu będziemy mieli dodatkowe miejsce i będziemy mogli je wykorzystać w dowolny sposób. Mój opis opiera się o Ubuntu (Xubuntu), z którym łącze się przy użyciu komputera z Windows przy pomocy Bitvise SSH.
Zaczynamy od aktualizacji.
sudo apt update
sudo apt upgrade -y
Dalej instalujemy fuse3
sudo apt install fuse3
fuse3 jest wymagany, ponieważ pomaga używać nietypowych źródeł (takich jak OneDrive) jako zwykłych folderów.
W celu zainstalowania aktualnej wersji rclone nie będziemy korzystać z oficjalnego repozytorium naszej dystrybucji Xubuntu (jest tam nieaktualna wersja), tylko zainstalujemy wersję z oficjalnej strony.
curl -O https://rclone.org/install.sh
chmod +x install.sh
sudo ./install.sh
Polecenia odpowiadają kolejno za pobranie skryptu instalacyjnego, nadanie mu uprawnień i wykonanie skryptu. W moim przypadku instalacja trwała blisko 15minut mimo szybkiego łączą, więc warto poczekać 🙂
Czas na konfigurację, jednak zanim zaczniemy musisz wiedzieć, że jeśli tak jak ja używasz trybu tekstowego to konieczne będzie zainstalowanie rclone na Windows/Linux, po prostu na innym komputerze w celu pozyskania kodów autoryzacyjnych. Aby to wykonać wpisujemy:
rclone config
Wybieramy n, następnie nadajemy nazwę, np. onedrive, dalej 42 / Microsoft OneDrive – Tier 1, następnie cztery razy Enter, następnie n.

Dalej pojawia się pytanie czy użyć przeglądarki, ponieważ w moim opisie nie będę używał przeglądarki, robimy wszystko z wiersza poleceń wybieramy n.
Ja dane do logowania pozyskuję w Windows, w tym celu pobieram rclone, następnie rozpakowuje, uruchamiam CMD i wykonuję polecenie.
.\rclone.exe authorize "onedrive"
Efektem jest otwarcie przeglądarki z pytaniem o logowanie i zgodę na dostęp, przechodzimy cały proces. Na koniec powinno się nam w przeglądarce wyświetlić jak poniżej.

W oknie CMD w Windows zobaczymy coś podobnego do poniższego komunikatu tylko dłuższego, kopiujemy z pomięciem górnej i dolnej linijki. Wklejamy w okno z konfiguracją na Linux.
Paste the following into your remote machine --->
{"access_token":"…","token_type":"Bearer",…}
<---End paste
Kolejno wybieramy opcję 1 OneDrive Personal or Business, kolejne pytanie 1 (domyślne), następnie y, ostatnie pytanie o potwierdzenie znów y.

Pozostaje nam wyjść z trybu konfiguracji czyli q.
Jeśli wszystkie polecenia poprzedzało sudo to konfiguracja trafiła dla root’a
mkdir -p ~/.config/rclone
sudo cp /root/.config/rclone/rclone.conf ~/.config/rclone/rclone.conf
sudo chown dominik:dominik ~/.config/rclone/rclone.conf
sudo chmod 600 ~/.config/rclone/rclone.conf
Oczywiście w 3 linii należy dostosować nazwę użytkownika. W celu weryfikacji czy wszystko jest ok, polecam wykonać poniższe polecenie, jeśli będzie ok i wyświetli zawartość to jest ok.
rclone lsd onedrive:
Montowanie OneDrvie w Linux
Stworzymy katalog w folderze użytkownika i tam zamontujemy OneDrive.
mkdir -p ~/onedrive
Następnie pora zamontować katalog
cd ~
rclone mount onedrive: ~/onedrive \
--vfs-cache-mode full \
--vfs-cache-max-size 2G \
-v
Przejdziemy do katalogu i sprawdzimy zawartość
ls ~/onedrivedf -h ~/onedrive

Jak widzisz w moim przypadku OneDrive w Linux pokazuje aż 1TB :).
Skoro działa pora zatrzymać mount przez Ctrl+C.
Wykonujemy polecenie
mount | grep onedrive
jeśli pusto to ok, jeśli nie to trzeba wymusić.
sudo umount -l ~/onedrive
Dodawanie systemd service odpowiedzialnego za montowanie OneDrive w Linux
Najpierw utworzymy plik
sudo nano /etc/systemd/system/rclone-onedrive.service
następnie wklejamy poniższą zawartość, dostosowując o swoje nazwy
[Unit]
Description=RClone OneDrive mount
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount onedrive: /home/dominik/onedrive \
--vfs-cache-mode full \
--vfs-cache-max-size 5G \
--vfs-cache-max-age 24h \
--vfs-read-ahead 128M \
--buffer-size 32M \
--dir-cache-time 1h \
--uid=1000 --gid=1000 \
--log-file=/home/dominik/rclone-mount.log \
--log-level INFO
ExecStop=/bin/fusermount -u /home/dominik/onedrive
Restart=on-failure
RestartSec=10
User=dominik
Group=dominik
[Install]
WantedBy=multi-user.target
Zapisujemy Ctrl+O, Enter i zamykamy Ctrl+X
W powyższym pliku w sekcji [Unit] są typowo opisowe kwestie. Blok [Service] odpowiada ze zarządzanie usługą i sekcja [Install] odpowiada za to kiedy ma się uruchomić, w naszym przypadku praktycznie zawsze.
Aktywacja usługi
sudo systemctl daemon-reload
sudo systemctl enable --now rclone-onedrive.servicesudo systemctl start rclone-onedrive.service
W kolejnym kroku sprawdzamy stan
sudo systemctl status rclone-onedrive.service
Usługa powinna być aktywna i dane z OneDrive powinny być już widoczne.





