15

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

   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

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

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

9 ответов9

17

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

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

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

1

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

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

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

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

Если вы просто забудете о командной строке и смонтируете ее с помощью 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 с нужными атрибутами, лучше обратитесь к man-странице mount . Грубо говоря, вы ставите на umask противоположное тому, что вы делаете на chmod .

1

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

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

0

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

chkdsk d: /f 

затем

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

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

0

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

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

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

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 и решил использовать mount с «-o force», как в следующем примере:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .