Linux google-drive mount(google-drive-ocamlfuse)

2024. 10. 14. 14:11·리눅스

오늘은 리눅스에서 구글드라이브를 마운트 하는 방법에 대해서 작성해 볼 것이다.

사실 맨 처음 리눅스를 설치했을 때 social 계정을 입력하라 해서 google계정을 입력했더니 자동으로 구글드라이브가 마운트 되어 파일탐색기에서 접근이 되길래 이런 글을 작성하게 될 줄은 몰랐다.

위의 구글드라이브는 마운트도 되고 안에 있는 파일들을 볼 수 있었지만, 가끔씩 vscode를 해당 폴더에서 열거나 어떤 작업들을 할 때 제대로 진행되지 않았다.(특정 작업할 때마다 계속 오류가 났었는데, 잘 기억이..)

 

그래서 다른 방법을 이용하여 마운트를 진행해 보기로 했다.

 

GitHub - astrada/google-drive-ocamlfuse: FUSE filesystem over Google Drive

FUSE filesystem over Google Drive. Contribute to astrada/google-drive-ocamlfuse development by creating an account on GitHub.

github.com

readme에 기능들과 사용방법들이 자세하게 적혀있지만, 다시 한번 정리해 보도록 하자.

1. google-drive-ocamlfuse 설치

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update
sudo apt install google-drive-ocamlfuse

 

위의 커맨드를 이용하여 설치하도록 하자. 만약 베타버전을 이용하고 싶다면 첫 번째 저장소 부분만 아래로 바꿔주면 된다.

sudo add-apt-repository ppa:alessandro-strada/google-drive-ocamlfuse-beta

2. 빌드 및 설치

dune build @install
dune install

3. 인증

이 부분이 조금 귀찮을 수도 있지만 한 번만 해두면 안 해도 된다. 예전버전에서는 이러한 것 없이 설치만 하면 구글로그인 창이 뜨고 진행됐던 것 같은데, 구글인증방식이 바뀌면서 달라진 것 같다. 

3-1. Google cloud 프로젝트 생성

우선 아래 링크에 들어가서 goole cloud의 프로젝트를 하나 만들어준다. 

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

3-2. google drive api 신청

이후 생성된 프로젝트에 들어가서 API 라이브러리에서 google-drive api를 사용신청해야 한다.

3-3. OAuth 인증

좌측 메뉴에서 `사용자 인증정보`를 눌러준 뒤, 위쪽에 `사용자 인증 정보 만들기`에서 `OAuth 클라이언트 ID`를 눌러준다.

이후 애플리케이션 유형은 `데스크톱 앱`을 클릭한다.(이름은 자유)

완료를 누르면 뜨는 창에서 `클라이언트 ID`와 `비밀번호`를 따로 저장해 둔다.(JSON다운로드)

4. 마운트 드라이브 생성

이제 구글드라이브를 마운트 할 폴더를 만들어준다.

mkdir ~/{폴더명}

5. 구글 인증

이제 api를 이용할 수 있도록 인증을 진행한다.

google-drive-ocamlfuse -id {OAuthID}.apps.googleusercontent.com -secret {Password}

아까 생성된 id와 password를 채워서 입력해 준다. 그럼 웹브라우저가 켜지면서 인증창이 뜨면 진행해 주면 된다.

5. 드라이브 마운트

google-drive-ocamlfuse ~/{폴더명}

위에서 생성한 폴더명을 입력해 주면 구글드라이브가 정상적으로 마운트 되어있을 것이다.

6. etc

6-1. 여러 계정

추가적으로 구글드라이브를 1개가 아닌 여러 계정을 등록하고 싶다면 마운트 할 각 계정의 OAuth id와 pw를 기억해 두고

드라이브 마운트를 진행할 때, 아래 명령어에서 label 부분에 따로 아무 글자나 입력해 주면 된다.

물론 마운트 할 폴더명은 따로 지정해 주자.

google-drive-ocamlfuse -id {OAuthID}.apps.googleusercontent.com -secret {Password} -label {아무label} ~/{폴더명}

+) 2025.02.11 

만약 두 개 이상의 드라이브를 마운트 하려고 할 때, 아래와 같은 오류가 발생하며 인증창이 켜져도 안 넘어가는 경우가 있다.

Thread 1 killed on uncaught exception Unix.Unix_error(50, "bind", "")

이럴 때는 위의 명령어를 실행할 때 마지막에 `-p 8081`과 같이 port 번호를 `8080`말고 다른 것으로 지정해 주면 정상적으로 된다. 

 

Authorization fails if a process is already bound to 127.0.0.1:8080 · Issue #855 · astrada/google-drive-ocamlfuse

I have a process running that occupied port 8080. After running google-drive-ocamlfuse -id xxxxxxxxxx.apps.googleusercontent.com -secret XXX-YYY-ZZZ an error in the shell came up with the following...

github.com

7. AutoMount

여러 가지 방법이 있는데 나는 systemmd를 이용한 방법을 사용하였다.

1. ~/.config/systemd/user/google-drive-ocamlfuse.service 를 열어서 아래와 같이 작성해 준다.

[Unit]
Description=FUSE filesystem over Google Drive
After=network.target

[Service]
ExecStart=google-drive-ocamlfuse -label {label} {mountpoint}
ExecStop=fusermount -u {mountpoint}
Restart=always
Type=forking

[Install]
WantedBy=default.target

 

2. 드라이브 마운트/마운트해제/auto마운트 등록

```bash
# To mount drive:
systemctl start --user google-drive-ocamlfuse.service
# To unmount drive:
systemctl stop --user google-drive-ocamlfuse.service
# To automount on boot:
systemctl enable --user google-drive-ocamlfuse.service
```

 

이 외에도 `fstab` 이나 `pam_mount`, `WiFi` 를 이용한 auto mount도 있으니 아래 가이드를 참고하면 좋을 것 같다. 

 

Automounting

FUSE filesystem over Google Drive. Contribute to astrada/google-drive-ocamlfuse development by creating an account on GitHub.

github.com

끝!!!

728x90

'리눅스' 카테고리의 다른 글

리눅스 AppImage 실행 및 아이콘 추가  (0) 2025.02.07
terminals database is inaccessible  (0) 2024.11.07
Failed to initialize NVML: Driver/library version mismatch  (0) 2024.10.14
ssh 포트 변경  (0) 2024.09.24
sshfs를 이용한 다른 시스템 마운트  (0) 2024.09.24
'리눅스' 카테고리의 다른 글
  • 리눅스 AppImage 실행 및 아이콘 추가
  • terminals database is inaccessible
  • Failed to initialize NVML: Driver/library version mismatch
  • ssh 포트 변경
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    이코테
    백준
    BFS
    dp
    그리디
    DFS
    파이썬
    나동빈
    이것이취업을위한코딩테스트다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바