Галерея

Блог | en| ru|

Побеждаем Dropbox на неподдерживаемой файловой системе

Содержание


Dropbox под Linux может поддерживать с трудом любые файловые системы, кроме ext4. Поскольку демон проприетарный, победить такое поведение можно, только подсунув ему эту самую ext4 с каталогом хранения, расположенным на уровне ниже 2-го (если будет выше, проклятая железка проверит inode уровнем выше и не успокоится).

Алгоритм

  1. Делаем в корневой ФС файл размером под размер хранения Dropbox (на стандартном аккаунте достаточно резервировать 8 ГБ).
  2. Даем созданному файлу права доступа под имя пользователя, запускающего демон dropbox.
  3. Создаем внутри этого файла ext4-раздел.
  4. Монтируем файл в любой доступный каталог через loop-интерфейс и добавляем монтирование в fstab с опцией rw.
  5. Создаем в смонтированном каталоге подкаталог с любым именем.
  6. Скармливаем созданный каталог демону dropbox.
  7. PROFIT!

Файл, внутри которого создается файловая система, не должен иметь атрибута +x. В примере он создается внутри подкаталога util корневой файловой системы с правами доступа, принадлежащими пользователю user.

Добавление монтирования в fstab

ВАЖНО! Опция loop должна обязательно идти первой в списке!

#Dropbox external storage enclosure
/util/dropbox-storage       /media/user/dropbox     ext4        loop,auto,defaults,user,exec,rw       0       0

Опцию exec можно исключить, ради большей безопасности работы с Dropbox.

Настройка хранилища

sudo dd if=/dev/zero of=/util/dropbox-storage bs=1G count=8 # Создаем файл на 8 ГБ под хранилище (бесплатный план Dropbox)
sudo chown -v user:user /util/dropbox-storage               # Даем пользователю доступ к файлу
sudo mkfs -t ext4 -F /util/dropbox-storage                  # Создаем и форматируем хранилище ext4
sudo mkdir /media/user/dropbox                              # Готовим пустой каталог для монтирования, монтируем
sudo mount -t ext4 -o loop,user,exec,rw /util/dropbox-storage /media/user/dropbox
sudo chown -Rv user:user /media/user/dropbox                # Устанавливаем права доступа к смонтированной ФС
cd /media/user/dropbox/                                     # Создаем подкаталог для Dropbox
mkdir data
sudo umount /media/user/dropbox                             # Размонтируем

# Вносим изменения в fstab, см. выше

sudo mount -a
sudo umount /media/user/dropbox                             # Тестируем монтирование полученной системы

sudo apt install dropbox                                    # Ставим Dropbox

# При запуске демона указываем для рабочих данных каталог /media/user/dropbox/data

ln -s /media/user/dropbox/data/Dropbox $HOME/Dropbox        # Создаем ссылку в домашнем каталоге