đọc và viết quyền cho phân vùng FAT32 trong Ubuntu


16

Đây là một vấn đề kỳ lạ. Tôi có bảng phân vùng sau

   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

Tôi khởi động kép Win7 (sda2) và Ubuntu (sda3) và muốn sử dụng phân vùng FAT32 để chia sẻ tệp trên hai hệ điều hành.

Tôi đã làm theo một số hướng dẫn trực tuyến và đã thực hiện những điều sau:

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

Sau khi tôi gắn tập tin, tôi chỉ có thể đọc nhưng không thể ghi vào nó.

Tôi đã kiểm tra sự cho phép tập tin, nó trở thành:

drwxr-xr-x

nhưng sau khi tôi gỡ nó ra thì nó trở thành

drwxrwxrwx

và tôi có thể đọc và viết cho nó.

Tôi không biết mình đã sai ở đâu.

Câu trả lời:


18

Hãy thử gắn với rw và chỉ định loại:

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

trong đó uid và gid là tài khoản người dùng của bạn.


Các umask có hiệu lực khi tạo tập tin mới.
geek

userautolà các lựa chọn cho fstabmục nhập; chúng không hữu ích trên dòng lệnh.
quack quixote

vâng tôi vừa dịch một trong những mục fstab của tôi sang một dòng lệnh. Còn lại trong một số bit không hữu ích nhưng chúng cũng không gây hại chính xác.
John T

2
sudo mount -t vfat /dev/sda6 /media/FAT32 -o rw,uid=$(id -u),gid=$(id -g)
bếp

1

Đối với các hệ thống tập tin FAT, tính khả dụng đọc / ghi bị chi phối bởi các tùy chọn gắn kết.

Tham khảo trang hướng dẫn để gắn kết và đọc về các tùy chọn gắn kết uidgid cho FAT.


1

Bạn đã thử ghi vào các tập tin bằng một sudolệnh? Điều đó sẽ làm việc với thiết lập hiện tại của bạn.

Để có được tệp ghi cho người dùng bình thường của bạn làm việc, bạn cần sử dụng các tùy chọn uidvà , để đặt chủ sở hữu của tệp trên phân vùng thành ID người dùng hiện tại của bạn. Có thể bạn cũng muốn một trong hai hoặc và tùy chọn.gidmountumaskdmaskfmask

mountLệnh của bạn sẽ trông như thế này:

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

Bạn có thứ tự sai trên các lệnh bạn muốn:

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

Điều đang xảy ra là / media / FAT32 đại diện cho các thư mục khác nhau trước và sau khi gắn kết. Trước đó là thư mục bạn đã tạo và bạn đã chọn 777. Sau đó, đó là thư mục gốc của hệ thống tệp trong / dev / sda6.


1

Nếu bạn chỉ đơn giản là quên dòng lệnh và gắn kết với Nautilus, nó sẽ đặt nó theo ý muốn.

Từ thiết bị đầu cuối, các quyền của thư mục trước khi gắn không thành vấn đề. Đó là các tùy chọn gắn kết được tính. Thử:

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

Điều này sẽ đặt tập tin rw-r--r--và thư mục rwxr-xr-x.

Nếu bạn muốn người dùng / nhóm và quyền khác, ví dụ sao chép các tệp từ fat32 sang phân vùng ext4 với các thuộc tính mong muốn, hãy tham khảo mounttrang manpage tốt hơn . Gần như bạn đặt umaskngược lại với những gì bạn sẽ đưa vào chmod.


0

Đôi khi tôi bị mất đĩa windows từ Linux và tôi đã giải quyết bằng cách sử dụng mount với "-o force", như ví dụ này:

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

Trong trường hợp của bạn, là FAT32 bạn nên đọc về, nhưng đây là mẹo giúp tôi. Dù sao, hãy thử nguy cơ của riêng bạn!


0

Tôi đã có chính xác cùng một vấn đề và điều duy nhất thực sự có hiệu quả là:

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

Cũng xem câu trả lời đó


Tôi đã làm điều này, khóa usb vẫn được bảo vệ ghi
Eildosa

Bạn đã thử chmod 777 /media/FAT32chưa
lauhub

1
vì lý do nào đó xóa ", umask = 0000" đã hoạt động
Eildosa

0

Không có thủ công, một dòng fstab sẽ thực hiện thủ thuật,

UUID = 1DD9-0D44 / media / exthd / TERABYTE_G vfat rw, noatime, uid = 1000, gid = 1000, người dùng 0 0

(uid, gid là của người dùng của bạn, / media / exthd / TERABYTE_G phải được tạo trước)

nhưng lưu ý, mount -a dường như không áp dụng đúng cách để kiểm tra dòng fstab mới, vì vậy việc khởi động lại đầy đủ sẽ giúp ích.


0

Sửa chữa / kiểm tra đĩa rất quan trọng trước khi sử dụng nó trên linux, mặc định trình điều khiển fat / ntfs mặc định vô hiệu hóa ghi nếu họ tìm thấy lỗi trên đĩa

chkdsk d: /f 

Sau đó

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

như chuyển động trước

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.