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.