Urządzenia USB wyświetlane jako tylko do odczytu

122

Używam Ubuntu 14.04.

Mam pamięć USB FAT32 8 GB i dysk twardy FAT32 500 GB; oba stały się nagle urządzeniami tylko do odczytu.

Próbowałem usunąć katalog wewnątrz, /mediaa następnie utworzyć go ponownie, zmienić jego nazwę, a następnie dać temu katalogowi pełne uprawnienia. Jednak to nie zadziałało.

Wyniki 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)

Wyniki 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

Wyniki 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 

Test zapisu USB:

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

Wyniki 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)
oodles2do
źródło
chown to, kiedy zamontowane? Jak to zamontować? Jako root? Automatyczne podłączanie za pomocą automount menedżera plików?
davidbaumann,
Zwykle podłączam pamięci USB, a następnie albo wyskakuje okno, albo można je otworzyć i przeciągnąć i upuścić. Zwykle nie używam terminala do kopiowania itp.
oodles2do
Podłącz, otwórz i dodaj wynik mountprosze.
davidbaumann,
Nie chcesz brzmieć głupio, ale co dokładnie masz na myśli? Jaki kod powinienem umieścić w terminalu? Jeśli o to ci chodzi. Dzięki!
oodles2do
mountdokładnie;)
davidbaumann,

Odpowiedzi:

248

Zobacz ten błąd .

Uruchom to polecenie, aby zabić Nautilus (pliki):

killall nautilus
sposób na przyszłość
źródło
45
Wow, nie mogę uwierzyć, że zadziałało
JeD
11
Niech mnie szlag, to działa haha
Tek
6
Używam nemo, więc zrobiłem killall nemoi działa.
Oki Erie Rinaldi
14
To smutne, że nadal działa w 2018 roku (Ubuntu 16.04.3 LTS)
Andrew
2
Najdziwniejsza poprawka, jaką widziałem. Nadal działa na Ubuntu 18.04
CodeMonkey,
74

Po podłączeniu klucza USB do laptopa:

  • uruchom sudo -i(aby nie cały czas wpisywać hasła)
  • uruchom df -Th(aby zobaczyć, gdzie jest zamontowana pamięć USB)
  • odmontuj pamięć USB
  • uruchom dosfsckna urządzeniu, które widziałeś po poprzednim poleceniu. Przykład:dosfsck /dev/sdc1
  • wyjmij i ponownie podłącz pamięć USB

Problem powinien zostać rozwiązany teraz.

Teraz w przypadku dysku twardego postępuj zgodnie z odpowiedzią na to pytanie . Chodzi o zewnętrzny dysk twardy, ale to samo dotyczy twojego przypadku.

Społeczność
źródło
1
Dzięki za pomoc! Próbowałem zrobić to, co powiedziałeś, czy wpisanie umount / dev / sdb1 jest poprawne przy odmontowywaniu pamięci USB? Nie wiem też, jak korzystać z dosfsck. Dziękuję również za link
oodles2do,
3
@ SimonBremford, jeśli twój USB jest podłączony, /dev/sdb1oczywiście twoje polecenie jest prawidłowe. W przypadku drugiego pytania wpisz:dosfsck -a /dev/sdb1
23
Dzięki za pomoc, jednak to nie zadziałało. Pamięć USB jest nadal odczytywana. Myślę, że to problem z Ubuntu, a nie z samą pamięcią USB, ponieważ było tak nagle. I fakt, że dotyczy to więcej niż jednego urządzenia USB jednocześnie.
oodles2do
3
Czasami najłatwiej jest zrestartować
Gayan Weerakutti
2
Przydałoby się dodać do odpowiedzi, że rzeczywiście konieczne jest ponowne uruchomienie komputera.
Artem Pelenitsyn
20

Wystąpił ten sam błąd podczas używania GParted do ustawiania tabeli partycji i formatowania pamięci USB. Potem wszystkie dyski USB przeszły do ​​trybu „tylko do odczytu”.

Ale w przypadku kopiowania root działało dobrze ...

Problem zniknął po ponownym uruchomieniu komputera. Sądzę więc, że ten problem może wystąpić podczas korzystania z GParted.

Koyot
źródło
Zobacz działające rozwiązanie poniżej opublikowane przez Serranoi mój komentarz na ten temat. Dla mnie również pochodzenie pochodzi od użycia GPated...
Antonio
16

Też miałem ten problem. Wystąpił błąd podczas kopiowania na pamięć USB, używam cynamonu Mint 17.1, jądro 3.13.0-43 z menedżerem plików caja.

Kiedy spojrzałem na katalog multimediów w terminalu „dir / media”, zobaczyłem, że zmienił się układ, zwykle spodziewacie się, że napędy zostaną wymienione tutaj, ale teraz są one wymienione pod twoją nazwą użytkownika i zgadnij co? Ta nazwa użytkownika ma tylko uprawnienia ROOT.

To, co zrobiłem, to pisanie

sudo chown [username] /media/[username]

i

sudo chgrp [username] /media/[username]

gdzie zamieniasz [nazwę użytkownika] na swoją nazwę użytkownika, usuwasz pamięć USB, czekałem, a następnie wkładasz ją z powrotem, problem rozwiązany, teraz mogę do niej napisać!

pagongperth
źródło
Dla mnie sudo chown [username] /media/[username]działało dobrze. Nawet nie chgrpmusiałem wyjmować pamięci USB (i nie potrzebowałem - korzystam z Xubuntu 16.04)
Nicolas
Dziękuję za odpowiedź. To powinna być zaakceptowana odpowiedź, ponieważ tak naprawdę nie ma problemu z samym nośnikiem, ale z punktem montażowym.
agim
chown może również zmienić grupę, chown [username]:[groupname] filesjest to równoważne z uruchomieniem, chowna następnie chgrp. Patrzman chown
Xen2050
1
@ Xen2050, nawet lepiej, chown [username]: filesponieważ `chown`` będzie domyślnie grupą logowania użytkowników.
Lucas
@Lucas dzięki, że jest lepiej. Jest sprytnie ukryty na manstronie, ale widoczny na infostronie [byłoby naprawdę miło, gdyby pasowały strony man i info ...]
Xen2050
11

Mam ten sam problem na Ubuntu i żadna z podanych tu odpowiedzi na mnie nie zadziałała. Oto, co próbowałem:

  • Sformatuj urządzenie za pomocą GParted. Próbowałem nawet utworzyć tabelę partycji bez powodzenia.
  • Sprawdź urządzenie za pomocą fsck. Nie znaleziono problemów.
  • Naprawiono uprawnienia punktu montowania. Okazuje się, że punkt podłączenia był własnością roota, ale nawet po tym, jak stałem się właścicielem, mogłem pisać tylko na urządzenie z wiersza poleceń (nadal nie mogłem tworzyć plików z GUI).

Po podłączeniu pamięci USB jest ona montowana pod /media/<username>/<label>/, gdzie <username>jest moja nazwa użytkownika i <label>etykieta pamięci USB lub urządzenia pamięci masowej.

Ponownie spojrzałem na uprawnienia:

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

Zwróć uwagę +na końcu uprawnień. To dla mnie nowe i nigdy wcześniej tego nie zauważyłem. Oznacza to, że katalog ma rozszerzone uprawnienia o nazwie Lista Kontroli Dostępu (ACL) (patrz to powiązane pytanie ). Podałem szczegóły ACL dla tego katalogu:

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

Jak widać, user:<username>:r-xdla mojej nazwy użytkownika znajduje się dodatkowy wpis , który daje mi tylko dostęp do odczytu. Naprawiłem to za pomocą prostego polecenia:

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

Odłączyłem urządzenie USB, ponownie je podłączyłem i problem został rozwiązany.

Serrano
źródło
1
DOBRZE. Dzięki, to było rozwiązanie. Jednak na koniec musisz to zrobić restart your computer, aby mieć pełny dostęp do mounted USBs. Kolejnym punktem warto wierzę, problem ten wystąpił po creating a new gpt partition tablena zasadzie USB stickz GParted. Następnie wszystkie moje USB zostały uszkodzone. Zdecydowanie faceci w GPartedpowinni zachowywać się inaczej ...
Antonio
9

Sformatowałem za pomocą Gparted. To wyczyściło wszystkie dane z dysku i okazało się, że rozwiązało to problem.

Adrian Lopez
źródło
1
Tak, to działa. Musisz utworzyć nową tabelę partiton jako msdostyp, a następnie utworzyć jeden duży parititon za pomocą fat32.
vskubriev
1
Myślę, że ta odpowiedź to skrót. Proszę go rozwinąć.
Léo Léopold Hertz -
6

Kiedy uruchomiłeś, mounttylko sda5 (twoje /) zostało zamontowane i było to read-write ( rw), więc powinieneś być w stanie pisać na nim. Zwykle większość katalogów, takich jak /sys, /binmożna zapisywać tylko przez root (potrzebujesz sudonajpierw), ale folder domowy powinien być zapisywalny dla zwykłego użytkownika.

Czy możesz utworzyć jakieś pliki w swoim folderze domowym? Może twój menedżer plików gui utknął myśląc, że są tylko do odczytu, jeśli spróbujesz w terminalu, czy to działa? Na przykład, czy te polecenia działają ?:

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

Jeśli te działają pomyślnie, możesz pisać na HD (sda5).


W przypadku napędu USB, po podłączeniu i zamontowaniu, spójrz na mountznajdź go ( /dev/sdb1 ...linię) i sprawdź, czy opcja montowania w ()pliku to rw(odczyt-zapis), powinieneś być w stanie pisać na nim. Jeśli jest ro(tylko do odczytu), spróbuj tego i sprawdź, czy się zmieni:

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

Jeśli system plików (fs) zawiera błędy może dostać montowane jako ro, nie powinno być komunikaty o tym dmesgi /var/log/syslogzbyt. Oto, co pokazują twoje dzienniki:

[  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

Obejmuje to wskazówkę, w jaki sposób fs mógł zostać uszkodzony - „nieprawidłowo odmontowany”, zawsze należy odmontować przed odłączeniem czegokolwiek. Większość menedżerów plików ma w tym celu funkcję „wysuwania”.

dmesgDziennika mówią też, jak to naprawić: fsckmożna spróbować naprawić błędy fs, próbuje odebrać prawo wyboru programu, można też wybrać jeden z jawnie fsck.vfatlub fsck.[other]naciskając TABpo fsck.powinny listy opcji.

  • W przypadku systemu FAT (często trzeba go uruchomić dwukrotnie, nie zawsze naprawia wszystkie błędy za pierwszym razem)
    • fsck.vfat -vaV [device] powinien działać automatycznie (-a) i wyświetlać więcej informacji (-v) i wykonać „weryfikację” (-V) lub po prostu:
    • fsck.vfat -a [device]

UWAGA : Nie gwarantuje to, że system plików pozostanie naprawiony, może zostać ponownie uszkodzony i może nie być możliwe dokładne określenie przyczyny. Zawsze odłączaj / „wyjmuj” przed usunięciem napędów USB.

Zauważ, że jeśli fs montuje się jakorw , ale wtedy pojawiają się błędy i zostanie automatycznie ponowniero zamontowany jako , komenda mount może nadal zgłaszać, że jest zamontowanarw . Spojrzenie na ten plik less /proc/mountspowinno zwykle zawierać bardziej wiarygodne informacje (patrz man mount).


Jeśli coś jest zamontowane, rwale nadal nie możesz dodawać / usuwać / edytować plików, możesz nie być właścicielem plików. W niektórych wersjach możesz chownzostać właścicielem, ale wersja FAT32 jak na sdb1 nie ma tych uprawnień; są ustawiane, gdy montuje się z opcją montowania uid=value(wartość jest twoim identyfikatorem użytkownika, ucz się go za pomocą echo $UIDlub id -u), a następnie możesz spróbować tego i sprawdzić, czy to działa później:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Uwaga: Czasami może być konieczne zrestartowanie menedżera plików gui, aby „zauważyć” zmianę montowania, która umożliwia zapis do systemu plików / napędu, ale terminal powinien zawsze działać.

Lub jeśli powyższe nie zadziała, spróbuj sudo su„stać się” root, aby zobaczyć, czy coś może zapisywać pliki na USB (z touch, echoitp)?

Xen2050
źródło
Dzięki za odpowiedź, zrobiłem komendy newfile001 i dostałem „rzeczy” w odpowiedzi. Ponadto z polecenia mount jest rw w nawiasie na pamięć USB, więc powinienem być w stanie czytać i zapisywać na niej. Właśnie wypróbowałem polecenia na końcu twojej odpowiedzi, ale to nie zadziałało, to wciąż urządzenie tylko do odczytu.
oodles2do
Przynajmniej HD działa ... USB powinien być zapisywalny ... jeśli jesteś cdw folderze USB, czy możesz zapisywać pliki z echo stuff >> newusbfilepodobnym lub podobnym? Czy echo stuff | sudo tee newusbfile? Czy najpierw biegniesz, sudo suaby „stać się” rootem, a potem echo, kot itp.?
Xen2050,
Jak wykonać polecenia cd w folderze USB? Myślę, że właśnie to zrobiłem w / media / simon i zadziałało, ale USB to / media / simon /
LYDIA
Jeśli USB nie jest zamontowane, to / media / simon / LYDIA jest tylko pustym folderem (jeśli nawet tam jest). Po zamontowaniu możesz zobaczyć, gdzie jest zamontowany folder, mountlub lsblk, a następnie cd mounted_folderspróbować zapisać pliki mkdiritp. ... i sudo susprawdzić, czy możesz również pisać jako root ...
Xen2050,
Dzięki za wszelką pomoc, właśnie próbowałem zapisać plik w pliku USB, ale to nie działało, mówi, że jest to system plików tylko do odczytu. Dodałem kod do pytania, abyś mógł zobaczyć, co zrobiłem.
oodles2do
4

Goto Disks .

Wybierz dysk USB.

Kliknij Dodatkowe opcje partycji i wybierz Formatuj partycję .

Następnie wybierz opcję Wymaż Zastąp istniejące dane zerami (powoli) i wpisz FAT .

Próbowałem wielu rzeczy po wyszukiwaniu w Internecie, ale to zadziałało dla mnie.

Mahmud
źródło
1
Spowoduje to usunięcie wszystkich danych z dysku.
cst1992
Co jeśli potrzebuję NTFS? To samo dla NTFS nie działało dla mnie.
Vadim Kotov
0

Metody szybkiej naprawy:

Metoda 1

Czasami możemy wykonać zadanie od razu bez kłopotów, które zwykle robię (nie wymaga sudo)

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

Czasami jednak, gdy muszę użyć przeglądarki plików,

sudo nautilus /media/$USER/mydrive/

Uwaga: jest to szybka poprawka, używaj jej tylko, jeśli czujesz się sfrustrowany, ponieważ żadne inne powyższe odpowiedzi nie zadziałały

Metoda 2

Uruchom ponownie system operacyjny

Thamme Gowda
źródło
0

wypróbuj poniższe strategie

  1. edytuj /etc/fuse.conf jako superuser

    zmień #user_allow_othernauser_allow_other

  2. włącz obsługę zapisu dla urządzeń zewnętrznych

    • sudo apt-get install ntfs-config
    • sudo ntfs-config
Oshan Wisumperuma
źródło
0

Wynika to z faktu, że Twoim systemem plików jest NTFS i znajduje się w niebezpiecznej statystyce, być może korzystasz z dysku w systemie Windows, jednym z powodów jest hibernacja systemu Windows lub szybkie jego ponowne uruchomienie.

  1. odmontuj nośnik za pomocą poniższego polecenia, przejdź do systemu Windows (może tryb podwójnego rozruchu lub może na innym komputerze) i całkowicie zamknij system Windows, nie hibernuj lub szybko uruchom ponownie,

    sudo umount /media/"your media label"

następnie ponownie wejdź do Linuksa i podłącz media za pomocą tego polecenia:

'sudo mount -o rw,mount /your media'
  1. jeśli używasz systemu MacO, podłącz multimedia do urządzenia Mac i użyj tego polecenia:

    „sudo / usr / sbin / diskutil disableJournal / Volumes / name-of-media”

Nima Ghoroubi
źródło
0

Wystarczy wykonać 3 polecenia.

  1. df -Th

wynik - wprowadź opis zdjęcia tutaj

  1. umount /media/user/KINGSTON (to jest montowane na ścieżce)
  2. dosfsck -a /dev/sdb1 (jest to ścieżka do systemu plików)
Mahendra Pratap
źródło
0

Uruchom następujące polecenia na terminalu (ubuntu), aby zezwolić na zapis na Pendrive.

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

    • „/ media / madusanka / KINGSTON” to „Zamontowany” wartość podana przez pierwsze polecenie
  3. sudo dosfsck -a /dev/sdb1

    • „/ dev / sdb1” to „System plików” podany przez pierwsze polecenie.
  4. Wprowadź hasło

  5. Sprawdź Pendrive, wklejając lub tworząc nowy plik.

Shirantha madusanka
źródło