Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mount multiple drives in google colab

I use this function to mount my google drive

from google.colab import drive
drive.mount('/content/drive', force_remount=True)

and then copy files from it like this

!tar -C "/home/" -xvf '/content/drive/My Drive/files.tar'

I want to copy files from 2 drives, but when i try to run first script it just remount my 1st drive

How can i mount 1st drive, copy files, then mount another drive and copy files from 2nd drive?

like image 380
Gr1mReality Avatar asked Dec 11 '18 16:12

Gr1mReality


2 Answers

Just in case anyone really needs to mount more than one drive, here's a workaround for mounting 2 drives.

First, mount the first drive using

from google.colab import drive
drive.mount('/drive1')

Then, use the following script to mount the second drive.

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
!mkdir -p /drive2
!google-drive-ocamlfuse /drive2

Now, you will be able to access files from the first drive from /drive1/My Drive/ and those of the second drive from /drive2/ (the second method doesn't create the My Drive folder automatically). Cheers!

Fun Fact: The second method was actually a commonly used method to mount Google drive in Colab environment before Google came out with google.colab.drive

like image 181
Suyog Jadhav Avatar answered Sep 22 '22 17:09

Suyog Jadhav


The colab drive module doesn't really support what you describe.

It might be simplest to share the files/folders you want to read from the second account's Drive to the first account's Drive (e.g. drive.google.com) and then read everything from the same mount.

like image 25
Ami F Avatar answered Sep 23 '22 17:09

Ami F