USB-устройства отображаются только для чтения


123

Я использую Ubuntu 14.04.

У меня 8 ГБ USB-накопитель FAT32 и жесткий диск FAT32 500 ГБ; оба из них внезапно стали устройствами только для чтения.

Я попытался удалить каталог внутри, /mediaа затем снова создать его, переименовать, а затем дать ему полный доступ. Однако это не сработало.

Результаты 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)

Результаты 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

Результаты 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 

Тест записи USB:

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

Результаты 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)

чоун, когда смонтирован? Как вы его монтируете? Как рут? Автоматическое монтирование с помощью автомонтирования файлового менеджера?
— Давидбауманн

Обычно я подключаю USB-флешки, а затем либо всплывает окно, либо я могу открывать и перетаскивать файлы. Я обычно не использую терминал для копирования или чего-либо подобного.
— oodles2do

Подключите, откройте и добавьте результат, mountпожалуйста.
— Давидбауманн

Не хочу звучать глупо, но что именно ты имеешь в виду? Какой код я должен положить в терминал? Если это то, что вы хотите сделать. Спасибо!
— oodles2do

mountточно;)
— Давидбауманн

Ответы:


249

Смотрите эту ошибку .

Запустите эту команду, чтобы убить Наутилуса (Файлы):

killall nautilus

45
Вау, я не могу поверить, что это сработало
— JeD

11
Я буду проклят, это работает, ха-ха
— Tek

6
Я использую nemo, так я и сделал, killall nemoи это работает.
— Оки Эри Ринальди

14
Печально, что все еще работает в 2018 году (Ubuntu 16.04.3 LTS)
— Эндрю

2
Самое странное исправление, которое я видел. По-прежнему работает в Ubuntu 18.04
— CodeMonkey

74

При подключении USB-ключа к ноутбуку:

  • запустить sudo -i(чтобы не вводить пароль постоянно)
  • запустить df -Th(чтобы увидеть, где установлена ​​ваша флешка)
  • размонтировать флешку
  • запустить dosfsckна устройстве, которое вы видели из вашей предыдущей команды. Пример:dosfsck /dev/sdc1
  • извлеките и снова подключите USB-накопитель

Проблема должна быть решена сейчас.

Теперь для вашего жесткого диска, пожалуйста, следуйте ответу на этот вопрос . Речь идет о внешнем жестком диске, но это то же самое для вашего случая.


1
Спасибо за вашу помощь! Я пытался сделать то, что вы сказали, правильно ли набирать umount / dev / sdb1 для размонтирования моей флешки? Кроме того, я не знаю, как использовать dosfsck. Спасибо за ссылку тоже
— oodles2do

3
@SimonBremford, если ваш USB подключен, /dev/sdb1конечно, ваша команда верна . Для ответа на другой вопрос просто введите:dosfsck -a /dev/sdb1

23
Спасибо за вашу помощь, однако это не сработало. Флешка только для чтения. Я думаю, что это проблема с Ubuntu, а не с самой USB-флешкой, так как это было так внезапно. И тот факт, что это влияет на более чем одно устройство USB одновременно.
— oodles2do

3
Иногда проще всего сделать перезагрузку
— Gayan Weerakutti

2
Было бы полезно добавить к ответу, что перезагрузка действительно необходима.
— Артем

20

Я получил ту же ошибку при использовании GParted для установки таблицы разделов и форматирования USB-накопителя ... после этого все USB-накопители перешли в режим «только для чтения».

Но под рутом копирование работало нормально ...

Проблема исчезла после перезагрузки машины. Поэтому я предполагаю, что эта проблема может возникнуть при использовании GParted.


Смотрите рабочее решение ниже, опубликованное Serranoи мой комментарий об этом. Как и для меня, происхождение произошло от использования GPated...
— Антонио

16

У меня тоже была эта пробема. Я получил ошибку при копировании на мою флешку, я использую Mint 17.1 cinnamon, ядро ​​3.13.0-43 с файловым менеджером caja.

Когда я посмотрел каталог мультимедиа в терминале 'dir / media', я увидел, что макет изменился, обычно вы ожидаете увидеть приводы, перечисленные здесь, но теперь они перечислены под вашим именем пользователя, и знаете что? Это имя пользователя имеет только права ROOT.

Что я сделал, так это набрал

sudo chown [username] /media/[username]

а также

sudo chgrp [username] /media/[username]

где вы заменяете [username] на ваше имя пользователя, удаляете USB-флешку, ждете, а затем вставляете обратно, проблема решена, теперь я могу написать на нее!


У меня sudo chown [username] /media/[username]сработало нормально. Мне даже не нужно было вынимать USB-флешку и chgrp
— Николас

Спасибо за ваш ответ .. это должен быть принятый ответ, так как на самом деле проблема не в самом носителе, а в точке подключения.
— Agim

chown тоже может поменять группу, chown [username]:[groupname] filesэто эквивалентно тому, чтобы запустить chownи затем chgrp. Смотритеman chown
— Xen2050

1
@ Xen2050, еще лучше, chown [username]: filesтак как `chown`` по умолчанию будет входить в группу пользователей.
— Лукас

@ Лукас, спасибо, что лучше. Он хитро спрятан на manстранице, но виден на infoстранице [было бы очень хорошо, если бы страницы с информацией о человеке и информации совпали ...]
— Xen2050

11

У меня возникла та же проблема в Ubuntu, и ни один из ответов, приведенных здесь, до сих пор не работал для меня. Вот что я попробовал:

  • Отформатируйте устройство с помощью GParted. Я даже попытался воссоздать таблицу разделов, но безуспешно.
  • Проверьте устройство с помощью fsck. Проблем не найдено.
  • Исправлены разрешения на точку монтирования. Оказывается, точка монтирования принадлежала пользователю root, но даже после того, как я стал владельцем, я мог писать на устройство только из командной строки (я все еще не мог создавать файлы из графического интерфейса).

Когда я подключаю флешку, она монтируется под тем /media/<username>/<label>/, где <username>находится мое имя пользователя и <label>метка флешки или устройства хранения.

Я снова посмотрел на разрешения:

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

Обратите внимание +на в конце разрешений. Это ново для меня, и я никогда не замечал этого раньше. Это означает, что каталог имеет расширенные разрешения, называемые списком контроля доступа (ACL) (см. Этот связанный вопрос ). Я перечислил детали ACL для этого каталога:

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

Как видите, user:<username>:r-xдля моего имени пользователя есть дополнительная запись , которая дает мне доступ только для чтения. Я исправил это с помощью простой команды:

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

Я отсоединил USB-разъем, снова подключил его, и проблема была решена.


1
ХОРОШО. Спасибо, это было решение. Однако в конце вам нужно restart your computer, чтобы иметь полный доступ к mounted USBs. Еще один момент , стоит мне кажется, эта проблема возникла после того, как creating a new gpt partition tableна USB stickс GParted. Впоследствии все мои USB были затронуты. Определенно, ребята GPartedдолжны вести себя по-другому ...
— Антонио

9

Я отформатировал с помощью Gparted. Это уничтожило все данные на диске, и оказалось, что это также решило проблему.


1
Да, это работает. Вы должны создать новую таблицу разделов как msdosтип, а затем создать один большой раздел с fat32.
— вскрубриев

1
Я думаю, что этот ответ заглушки. Пожалуйста, расширьте это.
— Лео Леопольд Герц '28

6

Когда вы запускали, был смонтирован mountтолько sda5 (ваш /), и он был доступен для чтения-записи ( rw), поэтому вы должны иметь возможность писать в него. Обычно большинство каталогов, таких как /sys, /binдоступны для записи только пользователю root (вам нужно sudoсначала), но ваша домашняя папка должна быть доступна для записи обычному пользователю.

Можете ли вы создать какие-либо файлы в вашей домашней папке? Может быть, ваш графический файловый менеджер застрял, думая, что они только для чтения, если вы пытаетесь в терминале, это работает? Например, работают ли эти команды ?:

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

Если они работают успешно, вы можете написать на HD (sda5).


Что касается USB-накопителя, то после того, как он подключен и смонтирован, посмотрите, mountчтобы найти его ( /dev/sdb1 ...линию) и посмотрите, есть ли опция монтирования в ()'s rw(чтение-запись), тогда вы сможете писать на нее. Если это ro(только для чтения), попробуйте это и посмотрите, изменится ли оно:

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

Если в файловой системе (fs) есть ошибки, которые могут быть смонтированы как ro, в dmesg& /var/log/syslogтоже должны быть сообщения об этом . Вот что показывают ваши логи:

[  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

Это включает в себя подсказку о том, как fs мог быть поврежден - «неправильно размонтирован», вы всегда должны размонтировать, прежде чем отключать что-либо. У большинства файловых менеджеров есть «извлечение», чтобы помочь с этим.

В dmesgжурнале также говорится, как это исправить: он fsckможет попытаться исправить ошибки fs, он попытается выбрать правильную программу проверки, или вы можете выбрать один явно fsck.vfatили fsck.[other]нажав TABпосле fsck.списка параметров.

  • Для системы FAT (часто приходится запускать ее дважды, не всегда исправляет все ошибки в первый раз)
    • fsck.vfat -vaV [device] должен работать автоматически (-a) и отображать больше информации (-v) и проходить «проверку» (-V) или просто:
    • fsck.vfat -a [device]

ПРИМЕЧАНИЕ . Это не гарантирует, что файловая система останется исправленной, она снова может быть повреждена, и может быть невозможно точно знать, почему. Всегда отключайте / извлекайте перед удалением USB-накопителей.

Обратите внимание, что если fs монтируется какrw , но затем обнаруживаются ошибки, и он автоматически перемонтируется какro , команда mount все равноrw может сообщить о своем монтировании . Просмотр этого файла с помощью less /proc/mountsобычно должен показывать более достоверную информацию (см. man mount).


Если что-то смонтировано, rwно вы по-прежнему не можете добавлять / удалять / редактировать файлы на нем, возможно, вы не являетесь владельцем этих файлов. В некоторых fs вы можете chownстать владельцем, но fs32 FAT, как на sdb1, не имеет таких разрешений; они устанавливаются, когда он монтируется с опцией монтирования uid=value(значение - это ваш ID пользователя, изучите его с помощью echo $UIDили id -u), тогда вы можете попробовать это и посмотреть, сработает ли это впоследствии:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Примечание. Иногда вам может потребоваться перезапустить файловый менеджер графического интерфейса, чтобы он «заметил» изменение монтирования, которое позволяет записывать данные в файловую систему / диск, но терминал всегда должен работать.

Или, если вышеперечисленное не работает, попробуйте sudo su«стать» пользователем root, чтобы узнать, может ли что-нибудь записать файлы на USB (с touch, echoи т. Д.)?


Спасибо за ваш ответ, я выполнил команды newfile001 и получил «материал» в качестве ответа. Кроме того, из команды mount в скобке для флешки есть rw, поэтому я должен иметь возможность читать и писать на нее. Я только что попробовал команды в конце вашего ответа, но это не сработало, это все еще устройство только для чтения.
— oodles2do

По крайней мере, HD работает ... USB должен быть записываемым ... Если вы cdв папку USB, вы можете написать какие-либо файлы с echo stuff >> newusbfileили аналогичные? Или echo stuff | sudo tee newusbfile? Или сначала запустить sudo su"стать" root, затем echo, cat и т.д?
— Xen2050 20.12.14

Как мне сделать команды CD в папку USB? Я думаю, что я только что сделал это в / media / simon, и это сработало, но USB это / media / simon /
— LYDIA

Если USB не подключен, то / media / simon / LYDIA - это просто пустая папка (если она вообще есть). После того, как он смонтирован, вы можете увидеть, где находится его смонтированная папка, mountили lsblk, затем cd mounted_folderпопробовать записать файлы mkdirи т. Д., А также sudo suузнать, можете ли вы также записать в качестве пользователя root ...
— Xen2050

Спасибо за вашу помощь, я просто попытался записать файл в файл usb, но он не работал, он говорит, что это файловая система только для чтения. Я добавил код к вопросу, чтобы вы могли видеть, что я сделал.
— oodles2do

4

Гото Диски .

Выберите свой USB-накопитель.

Нажмите на Дополнительные параметры раздела и выберите Формат раздела .

Затем выберите Стереть. Перезаписать существующие данные нулями (медленно) и набрать FAT .

Я пробовал много вещей после поиска в интернете, но это сработало для меня.


1
Это сотрет все данные на диске.
— cst1992

Что если мне понадобится NTFS? То же самое для NTFS не работает для меня.
— Вадим Котов


0

Методы быстрого исправления:

Способ 1

Иногда мы можем выполнить задачу из bash без проблем, которые я обычно делаю (sudo не требуется)

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

Однако иногда, когда мне нужно использовать файловый браузер,

sudo nautilus /media/$USER/mydrive/

Примечание: это быстрое решение, используйте его, только если вы расстроены, потому что другие ответы выше не сработали

Способ 2

Перезагрузка ОС


0

попробуйте ниже стратегии

  1. отредактируйте /etc/fuse.conf от имени суперпользователя

    изменить #user_allow_otherнаuser_allow_other

  2. включить поддержку записи для внешних устройств

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

0

Это связано с тем, что ваша файловая система NTFS и она небезопасна, возможно, вы используете свой диск в Windows, одна из причин в том, что вы перевели Windows в спящий режим или быстро перезапустили его., Поэтому выполните одно из следующих действий:

  1. размонтируйте носитель с помощью приведенной ниже команды, перейдите в Windows (может быть, в режиме двойной загрузки или, возможно, на другом компьютере) и полностью закройте окна, а не в режиме гибернации или быстрого перезапуска,

    sudo umount /media/"your media label"

затем снова зайдите в Linux и смонтируйте носитель с помощью этой команды:

'sudo mount -o rw,mount /your media'
  1. если вы используете macOs, подключите ваш медиа к вашему устройству Mac и используйте эту команду:

    'sudo / usr / sbin / diskutil disableJournal / Volumes / name-of-media'


0

Все, что вам нужно, это следовать 3 командам.

  1. df -Th

результат - введите описание изображения здесь

  1. umount /media/user/KINGSTON (это гора на пути)
  2. dosfsck -a /dev/sdb1 (это путь к файловой системе)

0

Выполните следующие команды в терминале (ubuntu), чтобы дать разрешение на запись Pendrive.

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

    • "/ media / madusanka / KINGSTON" - это значение "Mounting on", которое задается первой командой
  3. sudo dosfsck -a /dev/sdb1

    • «/ dev / sdb1» - это значение «Файловая система», которое задается первой командой.
  4. Введите свой пароль

  5. Проверьте Pendrive, вставив или создав новый файл.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.