в WSL на SD-карте git недостаточно прав для добавления объекта - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь заставить Git работать на моей Системе, но я всегда получаю ошибку

error: insufficient permission for adding an object to repository database ....../.git/objects

Я работаю над Surface Pro 5 в Windows Подсистема для Linux с Ubuntu. Все работает нормально, если я работаю на внутреннем диске. Проблема начинается, когда я хочу работать на моей карте Micro SD. Сначала он не был установлен автоматически. Я исправил это, отредактировав файл /etc/fstab:

E: /mnt/e drvfs defaults,metadata,rw,exec,uid=nico,gid=nico 0 0

и ls -alR показывает, что разрешения должны быть rw для всех пользователей и всех файлов.

I попытался git add в существующем хранилище на этой SD-карте, и это не сработало. Каким-то образом он создал файл tmp в «.git / objects / 54 /», у которого не было разрешений на запись при каждой попытке.

Затем я попытался клонировать тестовый репозиторий, но создал папку для разделения c и дал мне ту же ошибку. Хотя он работает на моем обычном диске C: но не на моей SD-карте.

nico@DESKTOP-639MEJ9:/mnt/e$ git clone https://github.com/NicoJG/TestGit.git
Cloning into 'TestGit'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
error: insufficient permission for adding an object to repository database /mnt/e/TestGit/.git/objects
fatal: failed to write object
fatal: unpack-objects failed
nico@DESKTOP-639MEJ9:/mnt/e$ sudo git clone https://github.com/NicoJG/TestGit.git
[sudo] password for nico:
Cloning into 'TestGit'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
error: insufficient permission for adding an object to repository database /mnt/e/TestGit/.git/objects
fatal: failed to write object
fatal: unpack-objects failed
nico@DESKTOP-639MEJ9:/mnt/e$

Почему-то git не работает должным образом с разрешениями в WSL. Я уже пробовал:

sudo chmod -R ug+rw *
sudo chwn -R nico:nico *

Кто-нибудь знает, как это исправить?

Редактировать: По запросу от bk2204 вот вывод mount:

nico@DESKTOP-639MEJ9:/mnt/e$ mount
rootfs on / type lxfs (rw,noatime)
none on /dev type tmpfs (rw,noatime,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,gid=5,mode=620)
none on /run type tmpfs (rw,nosuid,noexec,noatime,mode=755)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,noatime)
none on /run/shm type tmpfs (rw,nosuid,nodev,noatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,noatime,mode=755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,mode=755)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,relatime,devices)
E: on /mnt/e type drvfs (rw,relatime,uid=1000,gid=1000,case=off)
C:\ on /windir/c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata,case=off)

Я знаю только, что такое C: (мой основной диск) и E: (моя SD-карта). Остальное, похоже, определено WSL c Я думаю.

...