разрешение на чтение и запись для раздела FAT32 в Ubuntu


16

Это странная проблема. У меня есть следующая таблица разделов

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              13        5737    45978624    7  HPFS/NTFS
/dev/sda3            5738       10600    39062047+  83  Linux
/dev/sda4           10601       19457    71143852+   5  Extended
/dev/sda5           10601       11208     4883728+  82  Linux swap / Solaris
/dev/sda6           11209       15033    30720000    b  W95 FAT32
/dev/sda7           15033       19457    35537920    7  HPFS/NTFS

Я использовал двойную загрузку Win7 (sda2) и Ubuntu (sda3) и хотел использовать раздел FAT32 для обмена файлами между двумя ОС.

Я следовал некоторому онлайн-уроку и сделал это:

sudo mkdir /media/FAT32
sudo chmod 777 /media/FAT32
sudo mount /dev/sda6/ /media/FAT32

после того, как я смонтировал файл, я могу только читать, но не могу писать в него.

Я проверил разрешение файла, оно становится:

drwxr-xr-x

но после того, как я размонтировал

drwxrwxrwx

и я могу читать и писать в него.

Я не знаю, где я ошибся.

Ответы:


18

Попробуйте смонтировать с помощью rw и укажите тип:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx

где uid и gid - это данные вашей учетной записи.


Маска действует при создании новых файлов.
Компьютерщик

userи autoварианты для fstabвхода; они не очень полезны в командной строке.
шарлатан-кихот

да, я только что перевел одну из моих записей в fstab в командную строку. Осталось несколько кусочков, которые бесполезны, но они не совсем вредны.
Джон Т

2
sudo mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)
Чефаров

1

Для файловых систем FAT доступность чтения / записи определяется параметрами монтирования.

Обратитесь к странице руководства по монтированию и прочитайте об опциях монтирования uid и gid для FAT.


1

Вы пытались писать в файлы с помощью sudoкоманды? Это должно работать с вашей текущей настройкой.

Чтобы получить пишет файл для обычного пользователя, вам потребуется использовать uidи gidопцию для того mount, чтобы установить владелец файлы на перегородку в текущий идентификатор пользователя. Вы, вероятно, также хотите либо umaskили dmaskи fmaskварианты.

Ваша mountкоманда будет выглядеть так:

sudo mount -t vfat /dev/sda6 /media/FAT32 -o uid=1000,gid=1000,umask=022
# assuming your user's UID is 1000, GID is 1000
# umask=022 sets permission mode 755 for all files on the partition

1

У вас неправильный порядок команд, которые вы хотите:

sudo mkdir /media/FAT32
sudo mount /dev/sda6 /media/FAT32
sudo chmod 777 /media/FAT32

Происходит следующее: / media / FAT32 представляет разные каталоги до и после монтирования. Прежде чем это каталог, который вы создали, и который вы chmod'ed 777. После этого это корневой каталог файловой системы в / dev / sda6.


1

Если вы просто забудете о командной строке и смонтируете с помощью Nautilus, она должна быть настроена так, как вы хотите.

Из терминала права доступа к папке перед монтированием не имеют значения. Это опции монтирования, которые учитываются. Пытаться:

mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=xxx,gid=xxx,umask=133,dmask=022

Это установит файлы rw-r--r--и папки в rwxr-xr-x.

Если вы хотите, чтобы другой пользователь / группа и разрешения, например, копировали файлы из fat32 в раздел ext4 с нужными атрибутами, лучше обратитесь к mountстранице руководства . Грубо говоря, вы ставите umaskпротивоположное тому, что вы бы надели chmod.


0

Иногда я терял диск Windows из Linux и решил использовать mount с «-o force», как в следующем примере:

sudo mount -t ntfs-3g /dev/sda1 /media/win -o force

В вашем случае, будучи FAT32, вы должны прочитать о нем, но это поможет вам. В любом случае, попробуйте на свой страх и риск!


0

У меня была точно такая же проблема, и единственное, что действительно сработало, это:

sudo mount -t vfat  /dev/sda6 /media/FAT32 -o rw,umask=0000

Смотрите также этот ответ


Я сделал это, ключ USB все еще защищен от записи
Eildosa

Ты пробовал chmod 777 /media/FAT32?
Лаухуб

1
по какой-то причине удаление ", umask = 0000" сработало
Eildosa

0

Без монтирования вручную, линия fstab делает свое дело,

UUID = 1DD9-0D44 / media / exthd / TERABYTE_G vfat rw, noatime, uid = 1000, gid = 1000, пользователь 0 0

(uid, gid от вашего пользователя, / media / exthd / TERABYTE_G должен быть предварительно создан)

но обратите внимание, что mount -a не подходит для тестирования новой строки fstab, поэтому помогает полная перезагрузка.


0

Очень важно восстановить / проверить диск под windows перед использованием его в linux, по умолчанию драйверы fat / ntfs отключают запись, если они обнаруживают ошибки на диске

chkdsk d: /f 

потом

sudo mount -t vfat /dev/sdc1 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)

как указано ранее

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.