dispositivos USB exibidos como somente leitura

73

Estou usando o Ubuntu 14.04.

Tenho um stick USB FAT32 de 8GB e um HDD FAT32 de 500GB; ambos se tornaram subitamente dispositivos de leitura.

Eu tentei excluir o diretório dentro de /media e, em seguida, criá-lo novamente, renomeá-lo e conceder a ele permissões completas do diretório. No entanto, isso não funcionou.

Resultados de 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)

Resultados de 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

Resultados de 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 

Teste de gravação em USB:

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

Resultados de 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)
    
por oodles2do 20.12.2014 / 21:00

10 respostas

135

Veja este bug .

Execute este comando para matar o Nautilus (Files):

killall nautilus
    
por wayofthefuture 09.09.2017 / 23:11
57

Quando você conecta sua chave USB ao seu laptop:

  • execute sudo -i (para que você não digite sua senha o tempo todo)
  • execute df -Th (para ver onde o seu stick USB está montado)
  • desmonte seu pendrive
  • execute dosfsck no dispositivo que você viu no comando anterior. Exemplo: dosfsck /dev/sdc1
  • remova e reconecte seu pendrive

O problema deve ser resolvido agora.

Agora, para o seu disco rígido, siga a resposta para esta pergunta . É sobre um disco rígido externo, mas é a mesma coisa para o seu caso.

    
por user284234 20.12.2014 / 21:28
17

Eu recebi o mesmo erro ao usar o GParted para configurar a tabela de partições e formatar meu pendrive USB. Depois disso, todas as unidades USB foram para "somente leitura".

Mas sob a cópia raiz funcionou bem ...

O problema desapareceu após o reinício da máquina. Então eu acho que esse problema pode ocorrer ao usar o GParted.

    
por Koyot 07.11.2016 / 21:11
13

Eu também tive esse problema. Eu recebi um erro ao copiar para o meu pendrive, estou usando o Mint 17.1 cinnamon, kernel 3.13.0-43 com o gerenciador de arquivos caja.

Quando eu olhei para o diretório de mídia no terminal 'dir / media', vi que o layout mudou, normalmente você espera ver as unidades listadas aqui, mas agora elas estão listadas sob o seu nome de usuário, e adivinhem? Esse nome de usuário tem apenas permissões ROOT.

O que eu fiz foi digitar

sudo chown [username] /media/[username]

e

sudo chgrp [username] /media/[username]

onde você substitui [nome de usuário] pelo seu nome de usuário, removeu o pendrive, esperou e depois o colocou de volta, problema resolvido, agora posso escrever para ele!

    
por hillsongperth 07.06.2015 / 11:23
8

Eu formatado usando o Gparted. Isso apagou todos os dados do disco e acabou por resolver o problema.

    
por Adrian Lopez 07.07.2016 / 16:48
7

Eu tenho tido o mesmo problema no Ubuntu, e nenhuma das respostas dadas aqui até agora funcionou para mim. Aqui está o que eu tentei:

  • Formate o dispositivo usando o GParted. Eu até tentei recriar o tabela de partições, sem sucesso.
  • Verifique o dispositivo com fsck . Nenhum problema foi encontrado.
  • Corrigidas as permissões do ponto de montagem. Acontece que o ponto de montagem era de propriedade da raiz, mas mesmo depois de me tornar o proprietário, só consegui gravar no dispositivo a partir da linha de comando (ainda não consegui criar arquivos da GUI).

Quando conecto um pendrive, ele é montado em /media/<username>/<label>/ , em que <username> é meu nome de usuário e <label> é o rótulo do pendrive ou dispositivo de armazenamento.

Eu olhei novamente para as permissões:

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

Observe o + no final das permissões. Isso é novo para mim e eu nunca percebi isso antes. Isso significa que o diretório estendeu as permissões chamadas ACL (Access Control List, lista de controle de acesso) (consulte esta pergunta relacionada ). Eu listei os detalhes da ACL para este diretório:

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

Como você pode ver, há uma entrada adicional user:<username>:r-x para meu nome de usuário, que só me dá acesso de leitura. Eu consertei isso com um comando simples:

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

Eu desconectei meu dispositivo USB, o conectei novamente e o problema foi resolvido.

    
por Serrano 04.03.2017 / 18:56
4

Quando você executou mount , apenas o sda5 (seu / ) foi montado, e foi leitura-gravação ( rw ), portanto, você poderá gravar nele. Normalmente, a maioria dos diretórios como /sys , /bin são graváveis apenas pelo usuário root (você precisaria de sudo primeiro), mas sua pasta inicial deve ser gravável para seu usuário comum.

Você pode criar arquivos na sua pasta pessoal? Talvez o seu gerenciador de arquivos esteja parado pensando que eles são somente leitura, se você tentar em um terminal, isso funciona? Por exemplo, esses comandos funcionam?:

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

Se eles funcionarem com sucesso, você poderá gravar em seu HD (sda5).

Para a unidade USB, depois de conectada e montada, veja mount para encontrá-la (a linha /dev/sdb1 ... ) e veja se a opção de montagem em () é rw (leia-se escrever), então você deve ser capaz de escrever para ele. Se for ro (somente leitura), tente isso e veja se ele muda:

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

Se o sistema de arquivos (fs) tiver erros, ele pode ser montado como ro , deve haver mensagens sobre ele em dmesg & amp; /var/log/syslog também. É isso que seus registros mostram:

[  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

Isso inclui uma pista de como o fs pode ter sido corrompido - "não desmontado corretamente", você deve sempre desmontar antes de desconectar qualquer coisa. A maioria dos gerenciadores de arquivos tem uma "ejeção" para ajudar com isso.

O dmesg log também informa como corrigi-lo: fsck pode tentar corrigir erros de fs, tenta selecionar o programa de verificação correto ou pode escolher um explicitamente com fsck.vfat ou fsck.[other] pressionando < kbd> TAB após fsck. deve listar as opções.

  • Para um sistema FAT (geralmente precisa executá-lo duas vezes, nem sempre corrige todos os erros na primeira vez)
    • fsck.vfat -vaV [device] deve funcionar automaticamente (-a) & amp; exibir mais informações (-v) & amp; fazer um passe de "verificação" (-V), ou apenas:
    • fsck.vfat -a [device]

OBSERVAÇÃO : Isso não garante que o sistema de arquivos permaneça fixo, ele pode ficar corrompido novamente & amp; pode ser impossível saber exatamente por quê. Sempre desmonte / "ejete" antes de remover as unidades USB.

Observação se um fs for montado como rw , mas os erros serão vistos & amp; ele é automaticamente remontado como ro , o comando mount pode ainda relatar que está montado rw . Observar esse arquivo com less /proc/mounts geralmente deve mostrar informações mais confiáveis (consulte man mount ).

Se algo estiver montado rw , mas você ainda não puder adicionar / excluir / editar arquivos nele, talvez não seja o proprietário dos arquivos. Em alguns fs você pode chown se tornar o dono, mas um FAT32 fs como em sdb1 não tem essas permissões; eles são configurados quando montados com a opção de montagem uid=value (o valor é seu ID do usuário, aprenda com echo $UID ou id -u ), então você pode testar este & amp; veja se funciona depois:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Nota: Às vezes, pode ser necessário reiniciar o gerenciador de arquivos gui para que ele "observe" a alteração de montagem que permite gravar no sistema de arquivos / unidade, mas um terminal deve sempre funcionar.

Ou se o acima não funcionar, tente sudo su para "tornar-se" root, para ver se alguma coisa pode gravar em arquivos no USB (com touch , echo , etc)?

    
por Xen2050 20.12.2014 / 22:19
3

Vá para Discos .

Selecione seu pen drive.

Clique em Opções adicionais de partição e selecione Formatar partição .

Em seguida, selecione apagar Substituir dados existentes por zeros (lentos) e digitar FAT .

Eu tentei muitas coisas depois de pesquisar na internet, mas isso funcionou para mim.

    
por Mahmud 21.01.2017 / 22:46
0

Métodos de correção rápida:

Método 1

Às vezes podemos realizar a tarefa de bash sem problemas Eu costumo fazer (não é necessário sudo)

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

No entanto, às vezes, quando preciso usar o navegador de arquivos,

sudo nautilus /media/$USER/mydrive/

Nota: esta é uma solução rápida, use-a apenas se você ficar frustrado porque nenhuma outra resposta acima funcionou

Método 2

Reinicie o SO

    
por Thamme Gowda 07.06.2017 / 17:12
0

Como em a resposta do wayofthefuture acima quando você usando o Nemo (como eu, se você usar o ambiente de trabalho Cinnamon) tente:

killall nemo
    
por Christian Opitz 05.12.2017 / 22:08