читати та писати дозвіл на розділ 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 - це ваш обліковий запис користувача.


Umask діє під час створення нових файлів.
вигук

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, щоб встановити власника файлів на розділі на поточний користувальницький ID. Ви, мабуть, також хочете 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?
lauhub

1
чомусь видалення ", umask = 0000" спрацювало
Ейльдоса

0

Без монтажу вручну лінія fstab виконує трюк,

UUID = 1DD9-0D44 / media / exthd / TERABYTE_G vfat rw, час роботи, 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.