Как отключить диск в Google Colab и перемонтировать на другой диск?

[Обновлять]

Я закрыл ноутбук и снова открыл его через 1,5 часа, теперь для запуска drive.mount () потребуется новый ключ. Не уверен, какое минимальное время нужно ждать ... не уверен, нормально ли это ждать ...

Я подключился к учетной записи диска Google A. Теперь я хочу переключиться на учетную запись B, но я не могу этого сделать, потому что у меня нет возможности ввести новый ключ аутентификации при выполнении drive.mount().

Что я пробовал и потерпел неудачу:

  1. перезапустите браузер, перезагрузите компьютер
  2. используйте force_remount=True в drive.mount(), он автоматически перемонтирует только учетную запись A. Не запрашивая у меня новую цель монтирования.
  3. сменить аккаунт Пароль
  4. изменить тип времени выполнения с GPU на None и обратно на GPU
  5. открыть все в режиме инкогнито
  6. выйти из всех учетных записей Google

Есть ли какой-нибудь API, который может:

  • забыли предыдущий ключ аутентификации, чтобы он попросил меня ввести новый?
  • размонтировать диск и забыть предыдущий ключ аутентификации?

person Raymond Kwok    schedule 23.02.2019    source источник


Ответы (10)


Я обнаружил, что «Перезапустить среду выполнения ...» не работает, а изменение разрешения - слишком хлопотное занятие.
К счастью, модуль drive оснащен только той функцией, которая вам нужна:

from google.colab import drive
drive.flush_and_unmount()
person M.G.Poirot    schedule 14.01.2020

Вы можете сбросить свой бэкэнд Colab, выбрав пункт «Сбросить все среды выполнения ...» в меню «Время выполнения».

Однако имейте в виду, что при этом ваш текущий бэкэнд будет отброшен.

person Bob Smith    schedule 23.02.2019

Чтобы заставить Colab запрашивать новый ключ без ожидания или сброса времени выполнения, вы можете отозвать предыдущий ключ. Сделать это:

  1. перейдите на https://myaccount.google.com/permissions (или вручную перейдите к Безопасность < / em> Управляйте доступом третьих лиц на странице своей учетной записи Google),
  2. в правом верхнем углу выберите изображение вашего профиля или начальную букву, а затем выберите учетную запись, диск которой вы хотите отключить от Colab,
  3. выберите Google Drive File Stream в разделе Google Apps, затем выберите Удалить доступ.

При выполнении drive.mount() теперь будет запрашиваться новый ключ.

person pampel    schedule 12.07.2019
comment
После шага 3 мне пришлось принудительно перемонтировать, чтобы он заработал: drive.mount ('/ content / gdrive', force_remount = True) - person hoper; 17.08.2020

Другим решением вашей проблемы может быть завершение вашего сеанса и повторный запуск кода (drive.mount()).

Шаги:

1) Нажмите кнопку Дополнительные параметры подключения. Маленькая кнопка со значком рядом с RAM и DISK

2) Выберите "Управление сеансами".

3) Нажмите кнопку "Прервать".

4) Еще раз запустите свой код (drive.mount()).

Теперь вам будет предложено поставить ваш новый ключ.

person Ledian K.    schedule 22.07.2020
comment
У меня это очень хорошо работает! Спасибо! - person hoang tran; 25.01.2021
comment
Я рада, что смогла помочь! :) - person Ledian K.; 26.01.2021
comment
Это то, что у меня работает! +1 - person arilwan; 28.05.2021
comment
Рад слышать! :) - person Ledian K.; 30.05.2021

Перемонтировать не работает, если вы недавно монтировались и размонтировались с помощью flush_and_unmount(). Правильные шаги, которые вы должны выполнить (которые сработали для меня на момент публикации):

После монтажа с использованием:

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

Размонтируйте с помощью: drive.flush_and_unmount(), и вы не увидите папку 'drive /', но ДОВЕРЬТЕ мне, что вам следует использовать !rm -rf /content/drive перед повторным подключением диска, используя:

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

И вы снова получите запрос на авторизацию новой учетной записи Gmail.

person Satya Prakash Dash    schedule 19.05.2021
comment
! rm -rf / content / drive было решением. Без него продолжало появляться старое состояние диска Google, которое полностью отличалось от состояния текущего содержимого диска Google. - person mon; 01.07.2021

Вы можете завершить сеанс в Runtime -> manage session. Это должно сработать, и вы сможете снова подключить диск.

person gouse    schedule 07.05.2020

Текущий код функции drive.mount() находится по адресу https://github.com/googlecolab/colabtools/blob/fe964e0e046c12394bae732eaaeda478bc5fa350/google/colab/drive.py

Это оболочка для исполняемого файла диска, находящегося в / opt / google / drive / drive. Я обнаружил, что исполняемый файл принимает флаг authorize_new_user, который можно использовать для принудительной повторной аутентификации.

Скопируйте и вставьте содержимое файла drive.py в записную книжку. Затем измените вызов d.sendline() в строке 189, чтобы он выглядел следующим образом (обратите внимание на добавление флага authorize_new_user):

d.sendline(
      ('cat {fifo} | head -1 | ( {d}/drive '
       '--features=max_parallel_push_task_instances:10,'
       'max_operation_batch_size:15,opendir_timeout_ms:{timeout_ms},'
       'virtual_folders:true '
       '--authorize_new_user=True '
       '--inet_family=' + inet_family + ' ' + metadata_auth_arg +
       '--preferences=trusted_root_certs_file_path:'
       '{d}/roots.pem,mount_point_path:{mnt} --console_auth 2>&1 '
       '| grep --line-buffered -E "{oauth_prompt}|{problem_and_stopped}"; '
       'echo "{drive_exited}"; ) &').format(
           d=drive_dir,
           timeout_ms=timeout_ms,
           mnt=mountpoint,
           fifo=fifo,
           oauth_prompt=oauth_prompt,
           problem_and_stopped=problem_and_stopped,
           drive_exited=drive_exited))

Вызовите либо версию модуля drive flush_and_unmount(), либо ту, которую вы вставили, а затем вызовите свою версию mount(), чтобы войти в систему как другой пользователь!

person webMan1    schedule 04.04.2020

Перезапуск среды выполнения и удаление доступа не помогли. Я обнаружил, что записная книжка, которую я использовал, создавала каталоги в точке монтирования:

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

Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).

Сначала мне пришлось удалить подкаталоги в точке монтирования. Сначала убедитесь, что ваш диск на самом деле не смонтирован!

!find /content/drive

/content/drive
/content/drive/My Drive
/content/drive/My Drive/Colab Notebooks
/content/drive/My Drive/Colab Notebooks/assignment4
/content/drive/My Drive/Colab Notebooks/assignment4/output_dir
/content/drive/My Drive/Colab Notebooks/assignment4/output_dir/2020-04-05_16:17:15

Файлы и каталоги, указанные выше, были случайно созданы ноутбуком до того, как я смонтировал диск. Если вы уверены (вы уверены?), что ваш диск не подключен, удалите подкаталоги.

!rm -rf /content/drive

После этого я смог смонтировать диск.

person Ryan    schedule 05.04.2020

Вот объяснение из их часто задаваемых вопросов.

Почему операции с Диском иногда не выполняются из-за квоты? Google Диск применяет различные ограничения, в том числе количество операций для каждого пользователя и файла и квоты полосы пропускания. Превышение этих пределов вызовет Input/output error, как указано выше, и отобразит уведомление в пользовательском интерфейсе Colab. Типичная причина - доступ к популярному общему файлу или слишком быстрый доступ к слишком большому количеству отдельных файлов. Обходные пути включают:

Скопируйте файл с помощью drive.google.com и не делитесь им широко, чтобы другие пользователи не использовали его ограничения. Избегайте выполнения множества небольших операций чтения ввода-вывода, вместо этого выберите копирование данных с диска на виртуальную машину Colab в формате архива (например, файлы .zip или .tar.gz) и разархивируйте данные локально на виртуальной машине, а не в смонтированном каталоге диска. . Подождите день, чтобы сбросить лимиты квот.

https://research.google.com/colaboratory/faq.html#drive-quota

person lsgrep    schedule 16.09.2020

Симптом

  1. / content / drive монтируется автоматически, не монтируя его и не запрашивая Enter your authorization code:.
  2. Кешированное старое состояние диска продолжало отображаться.
  3. Фактическое содержимое диска Google не отображалось.
  4. Завершение работы, перезапуск, возврат к заводским настройкам, отмена разрешений, очистка кеша Chrome не работали.
  5. Прошить и размонтировать google.colab.drive.flush_and_unmount() не получилось.

Решение

  1. Создайте фиктивный файл внутри точки монтирования /content/drive.
  2. Найдите минутку и убедитесь, что содержимое /content/drive не совпадает с содержимым в пользовательском интерфейсе Google Диска..
  3. Запустите rm -rf /content/drive.
  4. Беги google.colab.drive.flush_and_unmount()
  5. Из меню Runtime -> Factory reset runtime.

Потом перезапуск google.colab.drive.mount('/content/drive', force_remount=True) наконец попросил Enter your authorization code.

person mon    schedule 01.07.2021