Google Drive on Linux

Google Drive to coś, z czym jestem związany od dawna. Korzystam, lubię, szanuję. Wielka korporacja to zło, nie masz pewności swoich danych, itd. – no dobra, to prawda, ale cena i wygoda to dobry atut. Kto mi da kodowanie przy pomocy AI, GenAI, 5TB Dysku, fajny system do zdjęć i udostępniania, office – w cenie 100zł? Jeśli znajdziesz, biorę. Do tego czasu jestem uwięziony, ale… mam problem. Google Drive nie działa na Linux poza przeglądarką.

Google Drive nie ma aplikacji na Linux

Wiesz, jak to jest. Przesiadasz się na Linuksa, uciekasz od telemetrii i obrzydliwego softu z Redmond.

Odpalasz czysty, pachnący nowością system, konfigurujesz ulubione środowisko, wszystko śmiga. Aż nagle biznes, uczelnia, albo twoja własna paranoja o backupy, puka do drzwi i mówi: „Hej, zsynchronizuj te pliki z Google Drive”.

Szukasz oficjalnego klienta i odbijasz się od ściany. Gigant z Mountain View od dekady ma nas, linuksiarzy, w głębokim poważaniu. Na Windowsie ich klient potrafił zawiesić eksplorator przy skanowaniu byle node_modules, ale chociaż istniał.

Na pingwinie zostają ci płatne subskrypcje u zewnętrznych dostawców jak InSync, czy ExpandDrive. Płacić miesięczny haracz za dostęp do własnych plików na darmowym dysku? Albo nawet na płatnym? Ja mam płacić?

Wybawienie: rclone

Zamiast kombinować z komercyjnymi wynalazkami albo pisać koślawe skrypty, które będą synchronizować pliki w tle i sypać konfliktami wersji po każdym zapisie, użyjemy rclone. Konkretnie jego natywnej funkcji montowania.

Ostatnio coś bawiłem się z rclone podczas przerzucania plików (wygodne jak cholera, by przerzucać pliki miedzy S3, Google Drive, a serwer via rsync). Sprawdziłem manuala i tam patrzę – mount. Moje życie nabrało barw.

Jak to działa pod spodem? Rclone korzysta z modułu FUSE (Filesystem in Userspace) i w locie tłumaczy wywołania systemowe (odczyt, zapis) bezpośrednio na żądania HTTP do API Google’a. Traktujesz chmurę jak fizyczny dysk zapięty pod USB. Otwierasz plik, edytujesz, zapisujesz, a rclone w tle mieli to przez wbudowany VFS (Virtual File System) cache, żebyś nie dostał czkawki wejścia/wyjścia przy każdym wciśnięciu Ctrl+S. Koniec z bezsensownym duplikowaniem gigabajtów danych na lokalnym dysku twardym, a potem wielogodzinnym sprzątaniem swoich wielu terabajtów śmieci.

Konfiguracji rclone nie będę pokazywać, bo jest to fenomenalnie opisane w oficjalnej instrukcji. Dodam, że wspiera też S3, OneDrive i dziesiątki innych rozwiązań chmurowych.

Zrób sobie plik w ~/.config/systemd/user/rclone-gdrive.service i wklej poniższy config. Zero czarnej magii, czysta automatyzacja demona na poziomie usera.

[Unit]
Description=RClone Mount dla Google Drive
# Nie odpalaj, dopóki sieć nie wstanie. Inaczej FUSE momentalnie wypluje błąd i położy usługę.
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
# Magia dzieje się tutaj. %h to alias na katalog domowy użytkownika.
# Cache mode 'writes' to absolutne minimum, żeby edycja plików nie sypała błędami I/O.
ExecStart=/usr/bin/rclone mount GDrive: %h/GoogleDrive \
  --vfs-cache-mode writes \
  --dir-cache-time 1h \
  --log-level INFO \
  --log-file %h/.rclone-gdrive.log

# Upewnijmy się, że przy ubijaniu serwisu FUSE ładnie odmontuje zasób
ExecStop=/bin/fusermount -u %h/GoogleDrive

# Jak API Google zrzuci połączenie (a prędzej czy później zrzuci), systemd postawi to na nogi.
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target
# Informujemy systemd o nowych śmieciach w katalogu, odpalamy i dorzucamy do autostartu
systemctl --user daemon-reload
systemctl --user enable --now rclone-gdrive.service

# Żeby sprawdzić, czy działa bez grzebania w logach:
df -h

I to by było na tyle. Twoja chmura wisi stabilnie w systemie plików bez krzty komercyjnego narzutu i bez zapychania RAM-u przez Electronowe potworki.

Skoro wszystko już elegancko śmiga, odklej wzrok od monitora, zamknij w końcu ten terminal i idź na spacer. Serwery bez ciebie nie spłoną, a twoje plecy w końcu ci podziękują za chwilę odpoczynku od tego krzesła.

Dołącz do newslettera, by być na bieżąco!

Jeśli chcesz być na bieżąco z blogiem, otrzymywać świetne porady dot. programowania i administracji serwerami, opinie w temacie gier - dołącz do newslettera!

Raz na jakiś czas wyślę Ci informację nt. bloga, a także będę wysyłać ekskluzywne materiały techniczne!

Nie czekaj i dołącz!

Dołączając do newslettera, akceptujesz naszą politykę prywatności!