USB-устройства, показывающие только чтение

92

Я использую 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)
    
задан oodles2do 20.12.2014 в 21:00
источник

11 ответов

182

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

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

killall nautilus
    
ответ дан wayofthefuture 09.09.2017 в 23:11
63

Когда вы присоединяете свой USB-ключ к ноутбуку:

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

Теперь проблема должна быть решена.

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

    
ответ дан user284234 20.12.2014 в 21:28
18

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

Но при корневом копировании отлично работает ...

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

    
ответ дан Koyot 07.11.2016 в 21:11
13

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

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

То, что я сделал, это ввести

sudo chown [username] /media/[username]

и

sudo chgrp [username] /media/[username]

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

    
ответ дан hillsongperth 07.06.2015 в 11:23
8

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

    
ответ дан Adrian Lopez 07.07.2016 в 16:48
7

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

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

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

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

$ 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-диск, снова подключил его, и проблема была решена.

    
ответ дан Serrano 04.03.2017 в 18:56
4

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

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

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

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

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

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

Если файловая система (fs) имеет ошибки, она может быть смонтирована как ro , там должны быть сообщения об этом в dmesg & amp; /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] нажатием < kbd> TAB после того, как fsck. должно указать параметры.

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

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

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

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

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

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

    
ответ дан Xen2050 20.12.2014 в 22:19
4

Откройте Диски .

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

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

Затем выберите erase Замените существующие данные нулями (медленными) и введите FAT .

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

    
ответ дан Mahmud 21.01.2017 в 22:46
0

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

Способ 1

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

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

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

sudo nautilus /media/$USER/mydrive/

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

Способ 2

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

    
ответ дан Thamme Gowda 07.06.2017 в 17:12
0

Как и в ответе на предыдущий шаг выше , повторное использование Nemo (как и я, если вы используете среду рабочего стола Cinnamon), попробуйте:

killall nemo
    
ответ дан Christian Opitz 05.12.2017 в 22:08
0

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

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

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

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

    • sudo apt-get install ntfs-config
    • sudo ntfs-config
ответ дан Oshanz 26.07.2018 в 20:03