Các thiết bị USB hiển thị dưới dạng chỉ đọc


122

Tôi đang sử dụng Ubuntu 14.04.

Tôi có một thanh USB 832 FAT32 và ổ cứng 50032 FAT32; cả hai đều đột nhiên trở thành thiết bị chỉ đọc.

Tôi đã thử xóa thư mục bên trong /mediavà sau đó tạo lại nó, đổi tên nó, sau đó cấp cho thư mục đó toàn quyền. Tuy nhiên, điều này đã không làm việc.

Kết quả của mount:

$ mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro) 
proc on /proc type proc (rw,noexec,nosuid,nodev) 
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) 
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw) 
none on /sys/kernel/debug type debugfs (rw) 
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755) 
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) 
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) 
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) 
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755) 
none on /sys/fs/pstore type pstore (rw) 
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=simon)

Kết quả của sudo parted -l:

Model: ATA ST9500325AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system     Flags
 4      1049kB  500GB  500GB   extended
 5      2097kB  496GB  496GB   logical   ext4
 6      496GB   500GB  4238MB  logical   linux-swap(v1)


Model: Verbatim STORE N GO (scsi)
Disk /dev/sdb: 8028MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      24.6kB  8028MB  8028MB  primary  fat32        boot

Kết quả của lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0 461.8G  0 part /
└─sda6   8:6    0     4G  0 part [SWAP]
sdb      8:16   1   7.5G  0 disk 
└─sdb1   8:17   1   7.5G  0 part /media/simon/LYDIA
sr0     11:0    1  1024M  0 rom 

Kiểm tra ghi USB:

$ cd /media/simon/LYDIA
$ touch newfile001
touch: cannot touch ‘newfile001’: Read-only file system 

Kết quả của dmesg:

[  159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be       corrupt. Please run fsck.
[  159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.383258] FAT-fs (sdb1): Filesystem has been set read-only
[  159.383571] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.384251] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.384319] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.475111] systemd-hostnamed[2966]: Warning: nss-myhostname is not installed.
Changing the local hostname might make it unresolveable. Please install nss-myhostname!
[  159.480141] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480224] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480497] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480516] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[ 2893.091767] wlan0: deauthenticating from c0:3e:0f:31:21:05 by local choice   (reason=3)

chown nó, khi gắn kết? Làm thế nào để bạn gắn kết nó? Là gốc? Tự động gắn kết với autoount của người quản lý tập tin?
davidbaumann

Tôi thường cắm các đầu cắm USB vào và sau đó cửa sổ bật lên hoặc nó có sẵn để tôi mở và kéo và thả các tập tin vào. Tôi thường không sử dụng thiết bị đầu cuối cho bất kỳ sao chép hoặc bất cứ điều gì như thế.
oodles2do

Cắm, mở và thêm kết quả của mountxin vui lòng.
davidbaumann

Đừng có vẻ ngu ngốc, nhưng chính xác thì ý bạn là gì? Tôi sẽ đặt mã nào vào terminal? Nếu đó là những gì bạn muốn làm. Cảm ơn!
oodles2do

mountchính xác;)
davidbaumann

Câu trả lời:


248

Xem lỗi này .

Chạy lệnh này để giết Nautilus (Tệp):

killall nautilus

45
Ồ, tôi không thể tin rằng nó đã hoạt động
JeD

11
Tôi sẽ bị nguyền rủa, điều này hoạt động haha
Tek

6
Tôi đang sử dụng nemo, vì vậy tôi đã làm killall nemovà nó hoạt động.
Oki Erie Rinaldi

14
Thật đáng buồn khi vẫn hoạt động vào năm 2018 (Ubuntu 16.04.3 LTS)
Andrew

2
Sửa chữa kỳ lạ nhất tôi đã thấy. Vẫn hoạt động trên Ubuntu 18.04
CodeMonkey

74

Khi bạn gắn chìa khóa USB vào máy tính xách tay của mình:

  • chạy sudo -i(để bạn sẽ không gõ mật khẩu của bạn mọi lúc)
  • chạy df -Th(để xem vị trí gắn USB của bạn)
  • ngắt kết nối thanh USB của bạn
  • chạy dosfscktrên thiết bị mà bạn nhìn thấy từ lệnh trước đó của bạn. Thí dụ:dosfsck /dev/sdc1
  • loại bỏ và gắn lại thanh USB của bạn

Vấn đề cần được giải quyết ngay bây giờ.

Bây giờ, đối với ổ cứng của bạn, vui lòng làm theo câu trả lời cho câu hỏi này . Đó là về một ổ cứng ngoài nhưng nó là điều tương tự cho trường hợp của bạn.


1
Cảm ơn bạn đã giúp đỡ! Tôi đã cố gắng làm những gì bạn nói, việc gõ umount / dev / sdb1 có đúng để ngắt kết nối thanh usb của tôi không? Ngoài ra, tôi không biết cách sử dụng dosfsck. Cảm ơn vì liên kết quá
oodles2do 20/12/14

3
@SimonBremford nếu USB của bạn được gắn vào /dev/sdb1tất nhiên lệnh của bạn là đúng. Đối với câu hỏi khác của bạn, chỉ cần gõ:dosfsck -a /dev/sdb1

23
Cảm ơn sự giúp đỡ của bạn, tuy nhiên nó không hoạt động. Các thanh usb chỉ đọc được. Tôi nghĩ đó là một vấn đề với Ubuntu chứ không phải là bản thân thanh usb, vì nó quá bất ngờ. Và thực tế là nó đã ảnh hưởng đến nhiều thiết bị usb cùng một lúc.
oodles2do

3
Đôi khi, cách dễ nhất để làm là khởi động lại
Gayan Weerakutti

2
Sẽ rất hữu ích khi thêm vào câu trả lời rằng thực sự cần phải khởi động lại.
Artem Pelenitsyn

20

Tôi đã gặp lỗi tương tự khi sử dụng GParted để đặt bảng phân vùng và định dạng thanh USB của mình .. sau đó tất cả các ổ USB đã chuyển sang "chỉ đọc".

Nhưng sao chép root hoạt động tốt ...

Vấn đề đã biến mất sau khi khởi động lại máy. Vì vậy, tôi đoán rằng vấn đề này có thể xảy ra khi sử dụng GParted.


Xem giải pháp làm việc dưới đây được đăng bởi Serranovà nhận xét của tôi về nó. Đối với tôi, nguồn gốc đến từ việc sử dụng GPated...
Antonio

16

Tôi cũng có vấn đề này. Tôi đã gặp lỗi khi sao chép vào thanh usb của mình, tôi đang sử dụng quế Mint 17.1, kernel 3.13.0-43 với trình quản lý tệp caja.

Khi tôi nhìn vào thư mục phương tiện trong thiết bị đầu cuối 'dir / media', tôi thấy rằng bố cục đã thay đổi, thông thường bạn sẽ thấy các ổ đĩa được liệt kê ở đây, nhưng bây giờ chúng được liệt kê dưới tên người dùng của bạn và đoán xem? Tên người dùng đó chỉ có quyền ROOT.

Những gì tôi đã làm là gõ

sudo chown [username] /media/[username]

sudo chgrp [username] /media/[username]

nơi bạn thay thế [tên người dùng] bằng tên người dùng của mình, gỡ bỏ thanh usb, chờ đợi và sau đó đặt lại, vấn đề được giải quyết, bây giờ tôi có thể viết thư cho nó!


Đối với tôi sudo chown [username] /media/[username]làm việc tốt. Tôi thậm chí không phải rút thanh usb ra và vào (tôi cũng không cần chgrp- Tôi đang ở trên Xubfox 16.04)
Nicolas

Cảm ơn câu trả lời của bạn .. đây sẽ là câu trả lời được chấp nhận, vì thực sự không có vấn đề gì với phương tiện truyền thông mà là với điểm lắp.
agim

chown có thể thay đổi nhóm quá, chown [username]:[groupname] filestương đương với chạy chownvà sau đó chgrp. Xemman chown
Xen2050

1
@ Xen2050, thậm chí còn tốt hơn chown [username]: filesvì `chown`` sẽ mặc định cho nhóm đăng nhập của người dùng.
Lucas

@Lika cảm ơn là tốt hơn. Nó được ẩn khéo léo trong mantrang, nhưng hiển thị trong infotrang [sẽ thực sự tốt nếu các trang thông tin và người đàn ông khớp với nhau ...]
Xen2050

11

Tôi đã gặp vấn đề tương tự trên Ubuntu và cho đến nay chưa có câu trả lời nào được đưa ra cho tôi. Đây là những gì tôi đã thử:

  • Định dạng thiết bị bằng GParted. Tôi thậm chí đã thử tạo lại bảng phân vùng, nhưng không thành công.
  • Kiểm tra thiết bị với fsck. Không tìm thấy vấn đề.
  • Đã sửa lỗi cho phép của điểm gắn kết. Hóa ra điểm gắn kết đã được sở hữu root, nhưng ngay cả sau khi tự biến mình thành chủ sở hữu, tôi chỉ có thể ghi vào thiết bị từ dòng lệnh (Tôi vẫn không thể tạo tệp từ GUI).

Khi tôi kết nối thẻ USB, nó sẽ được gắn bên dưới /media/<username>/<label>/, <username>tên người dùng của tôi ở đâu và <label>là nhãn của thẻ USB hoặc thiết bị lưu trữ.

Tôi nhìn lại các quyền:

$ ls -ld /media/<username>
drwxrwx---+ 2 <username> <username> 4096 Mar  4 18:32 /media/<username>

Lưu ý +ở cuối các quyền. Điều đó mới đối với tôi và tôi chưa bao giờ nhận thấy nó trước đây. Nó có nghĩa là thư mục có các quyền mở rộng được gọi là Danh sách điều khiển truy cập (ACL) (xem câu hỏi liên quan này ). Tôi đã liệt kê chi tiết ACL cho thư mục này:

$ getfacl /media/<username>
# file: <username>/
# owner: <username>
# group: <username>
user::rwx
user:<username>:r-x
group::---
mask::r-x
other::---

Như bạn có thể thấy, có một mục nhập bổ sung user:<username>:r-xcho tên người dùng của tôi, chỉ cung cấp cho tôi quyền truy cập đọc. Tôi đã sửa lỗi này bằng một lệnh đơn giản:

setfacl -m u:<username>:rwx /media/<username>

Tôi tháo thiết bị USB của mình ra, gắn lại và vấn đề đã được giải quyết.


1
ĐỒNG Ý. Cảm ơn, đây là giải pháp. Tuy nhiên, cuối cùng, bạn cần restart your computercó quyền truy cập đầy đủ vào mounted USBs. Một điểm đáng giá khác tôi tin, vấn đề này xảy ra sau khi creating a new gpt partition tabletrên USB stickvới GParted. Sau đó, tất cả các USB của tôi đã bị ảnh hưởng. Chắc chắn các chàng trai GPartednên cư xử khác biệt ...
Antonio

9

Tôi định dạng bằng Gparted. Điều đó đã xóa sạch tất cả dữ liệu trong đĩa và hóa ra nó cũng đã khắc phục vấn đề.


1
Vâng, nó hoạt động. Bạn phải tạo một bảng partiton mới dưới dạng msdosloại, và sau đó tạo một parititon lớn với fat32.
vskubriev

1
Tôi nghĩ rằng câu trả lời này là còn sơ khai. Xin vui lòng, mở rộng nó.
Léo Léopold Hertz

6

Khi bạn chạy mountchỉ sda5 (của bạn /) đã được gắn kết và nó đã được đọc-write ( rw) để bạn có thể ghi vào nó. Thông thường, hầu hết các thư mục như /sys, /binchỉ có thể ghi bằng root ( sudotrước tiên bạn cần ), nhưng thư mục chính của bạn phải được ghi cho người dùng thông thường của bạn.

Bạn có thể tạo bất kỳ tập tin trong thư mục nhà của bạn? Có thể trình quản lý tệp gui của bạn bị kẹt khi nghĩ rằng chúng chỉ đọc, nếu bạn thử trong một thiết bị đầu cuối thì nó có hoạt động không? Ví dụ, các lệnh này có hoạt động không?:

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

Nếu chúng hoạt động thành công thì bạn có thể ghi vào HD (sda5).


Đối với ổ USB, sau khi cắm và gắn, hãy nhìn vào mountđể tìm nó ( /dev/sdb1 ...dòng) và xem nếu tùy chọn gắn kết trong ( ()rwđọc-ghi) thì bạn sẽ có thể ghi vào nó. Nếu nó ro(chỉ đọc) hãy thử điều này và xem nếu nó thay đổi:

sudo mount -o remount,rw /dev/sdb1 /media/simon/LYDIA

Nếu hệ thống tập tin (fs) có lỗi nó có thể được gắn kết như là ro, cần có thông điệp về nó trong dmesg& /var/log/syslogquá. Đây là những gì nhật ký của bạn hiển thị:

[  159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may  
be corrupt. Please run fsck.
[  159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.383258] FAT-fs (sdb1): Filesystem has been set read-only

Điều đó bao gồm một manh mối về cách các fs có thể bị hỏng - "không được kết nối đúng cách", bạn nên luôn luôn ngắt kết nối trước khi rút phích cắm bất cứ điều gì. Hầu hết các trình quản lý tệp có một "đẩy" để giúp với điều đó.

Các dmesglog cũng nói như thế nào để sửa chữa nó: fsckcó thể cố gắng sửa chữa fs lỗi, nó cố gắng để chọn chương trình kiểm tra ngay, hoặc bạn có thể chọn một cách rõ ràng với fsck.vfathoặc fsck.[other]nhấn TABsau fsck.nên liệt kê các tùy chọn.

  • Đối với hệ thống FAT (thường phải chạy hai lần, không phải lúc nào cũng sửa tất cả các lỗi)
    • fsck.vfat -vaV [device] sẽ tự động hoạt động (-a) và hiển thị thêm thông tin (-v) và thực hiện "xác minh" vượt qua (-V) hoặc chỉ:
    • fsck.vfat -a [device]

LƯU Ý : Điều này sẽ không đảm bảo rằng hệ thống tập tin sẽ được cố định, nó có thể bị hỏng lần nữa và có thể không thể biết chính xác tại sao. Luôn ngắt kết nối / "nhả" trước khi tháo ổ USB.

Lưu ý nếu một fs gắn kết nhưrw , nhưng sau đó các lỗi được nhìn thấy và nó sẽ tự độngro được xử lý lại , lệnh mount vẫnrw có thể báo cáo nó được gắn kết . Nhìn vào tập tin less /proc/mountsnày thường sẽ hiển thị thông tin đáng tin cậy hơn (xem man mount).


Nếu một cái gì đó được gắn kết rwnhưng bạn vẫn không thể thêm / xóa / chỉnh sửa các tệp trên đó, bạn có thể không phải là chủ sở hữu của các tệp. Trong một số fs, bạn có thể chowntrở thành chủ sở hữu, nhưng một fs FAT32 như trên sdb1 không có các quyền đó; chúng được đặt khi nó gắn kết với tùy chọn gắn kết uid=value(giá trị là userid của bạn, tìm hiểu với echo $UIDhoặc id -u) sau đó bạn có thể thử điều này và xem nếu nó hoạt động sau đó:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Lưu ý: Đôi khi, bạn có thể cần phải khởi động lại trình quản lý tệp gui của mình để "thông báo" thay đổi gắn kết cho phép bạn ghi vào hệ thống tệp / ổ đĩa, nhưng thiết bị đầu cuối sẽ luôn hoạt động.

Hoặc nếu ở trên không hoạt động, hãy thử sudo su"trở thành" gốc, để xem nếu bất cứ điều gì có thể viết thư cho các tập tin trên USB (với touch, echovv,)?


Cảm ơn câu trả lời của bạn, tôi đã thực hiện các lệnh newfile001 và tôi đã nhận được "công cụ" làm phản hồi. Ngoài ra, từ lệnh mount có rw trong giá đỡ cho thanh usb, vì vậy tôi có thể đọc-ghi vào nó. Tôi vừa thử các lệnh ở cuối câu trả lời của bạn nhưng nó không hoạt động, nó vẫn là một thiết bị chỉ đọc.
oodles2do

Ít nhất HD đang hoạt động ... USB có thể ghi được ... nếu bạn cdvào thư mục USB, bạn có thể ghi bất kỳ tệp nào có echo stuff >> newusbfilehoặc tương tự không? Hay là echo stuff | sudo tee newusbfile? Hoặc đầu tiên chạy sudo suđể "trở thành" root, sau đó là echo, cat, v.v?
Xen2050

Làm cách nào để thực hiện các lệnh cd vào thư mục USB? Tôi nghĩ rằng tôi đã thực hiện nó vào / media / simon và nó đã hoạt động, nhưng USB là / media / simon / LYDIA
oodles2do

Nếu USB không được gắn, thì / media / simon / LYDIA chỉ là một thư mục trống (nếu nó còn ở đó). Sau khi được gắn kết, bạn có thể thấy thư mục được gắn ở đâu với mounthoặc lsblk, sau đó cd mounted_foldervà thử ghi tệp mkdir, v.v ... và sudo suđể xem liệu bạn có thể viết bằng root không ...
Xen2050

Cảm ơn tất cả sự giúp đỡ của bạn, tôi chỉ cố gắng viết một tập tin vào tập tin usb nhưng nó không hoạt động, nó nói đó là một hệ thống tập tin chỉ đọc. Tôi đã thêm mã vào câu hỏi để bạn có thể thấy những gì tôi đã làm.
oodles2do

4

Đĩa Goto .

Chọn ổ đĩa USB của bạn.

Nhấp vào Tùy chọn phân vùng bổ sung và chọn Định dạng phân vùng .

Sau đó chọn xóa Ghi đè dữ liệu hiện có bằng số không (chậm) và nhập FAT .

Tôi đã thử nhiều thứ sau khi tìm kiếm trên internet nhưng điều này làm việc cho tôi.


1
Điều này sẽ xóa tất cả dữ liệu trên ổ đĩa.
cst1992

Nếu tôi cần NTFS thì sao? Điều tương tự đối với NTFS không hoạt động đối với tôi.
Vadim Kotov


0

Phương pháp khắc phục nhanh:

Phương pháp 1

Đôi khi chúng ta có thể hoàn thành nhiệm vụ từ bash mà không gặp rắc rối tôi thường làm (không yêu cầu sudo)

mkdir /media/$USER/mydrive/myfolder
cp -r src/ /media/$USER/mydrive/myfolder

Tuy nhiên, đôi khi, khi tôi cần sử dụng trình duyệt tệp,

sudo nautilus /media/$USER/mydrive/

Lưu ý: đây là cách khắc phục nhanh, chỉ sử dụng nếu bạn cảm thấy thất vọng vì không có câu trả lời nào khác ở trên hoạt động

Phương pháp 2

Khởi động lại hệ điều hành


0

thử các chiến lược dưới đây

  1. chỉnh sửa /etc/fuse.conf làm siêu người dùng

    đổi #user_allow_othersanguser_allow_other

  2. cho phép viết hỗ trợ cho các thiết bị bên ngoài

    • sudo apt-get install ntfs-config
    • sudo ntfs-config

0

Điều này là do hệ thống tệp của bạn là NTFS và trong trạng thái không an toàn, có thể bạn đang sử dụng đĩa của mình trong các cửa sổ, một trong những lý do là bạn đã ngủ đông các cửa sổ hoặc khởi động lại nhanh chóng. Vì vậy, hãy sử dụng một trong các bước sau:

  1. ngắt kết nối phương tiện bằng lệnh bên dưới, đi đến cửa sổ (có thể ở chế độ Khởi động kép hoặc có thể trong một máy tính khác) và tắt hoàn toàn các cửa sổ, không ngủ đông hoặc khởi động lại nhanh,

    sudo umount /media/"your media label"

sau đó đến Linux một lần nữa và gắn kết phương tiện của bạn bằng lệnh này:

'sudo mount -o rw,mount /your media'
  1. nếu bạn đang sử dụng macO, hãy cắm phương tiện vào thiết bị mac của bạn và sử dụng lệnh này:

    'sudo / usr / sbin / đĩautileacJournal / Tập / tên phương tiện truyền thông'


0

Tất cả bạn cần là theo 3 lệnh.

  1. df -Th

kết quả - nhập mô tả hình ảnh ở đây

  1. umount /media/user/KINGSTON (đây là gắn kết trên đường dẫn)
  2. dosfsck -a /dev/sdb1 (đây là đường dẫn hệ thống tập tin)

0

Chạy các lệnh sau trên thiết bị đầu cuối (ubfox) để cấp quyền ghi cho Pendrive.

  1. df -Th
  2. umount /media/madusanka/KINGSTON

    • "/ media / madusanka / KINGSTON" là giá trị "Được gắn trên" được đưa ra bởi lệnh đầu tiên
  3. sudo dosfsck -a /dev/sdb1

    • "/ dev / sdb1" là giá trị "Hệ thống tập tin" được đưa ra bởi lệnh đầu tiên.
  4. Nhập mật khẩu của bạn

  5. Kiểm tra Pendrive bằng cách dán hoặc tạo một tệp mới.

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.