Я пытаюсь заставить 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 для всех пользователей и всех файлов.
Я попробовал git add
в существующем репозитории на этой SD-карте, и это не сработало. Каким-то образом он создал файл tmp в «.git/objects/54/», у которого не было прав на запись каждый раз, когда я пытался это сделать.
Затем я попытался клонировать тестовый репозиторий, но он создал папку для сплит-сека и выдал ту же ошибку. Он работает на моем обычном диске 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, я думаю.
mount
? - person bk2204   schedule 01.05.2020