Dispositivos USB exibidos como somente leitura

122

Estou usando o Ubuntu 14.04.

Eu tenho um pendrive USB de 8 GB FAT32 e um disco rígido de 500 GB FAT32; de repente, ambos se tornaram dispositivos somente leitura.

Tentei excluir o diretório interno /mediae criá-lo novamente, renomeá-lo e conceder permissões completas a esse 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 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)
oodles2do
fonte
chown, quando montado? Como você o monta? Como root? Montar automaticamente com a montagem automática do gerenciador de arquivos?
Davidbaumann
Normalmente, conecto os pen drives e, em seguida, a janela aparece ou está disponível para eu abrir, arrastar e soltar arquivos. Normalmente, não uso o terminal para copiar ou algo assim.
oodles2do
Conecte, abra e adicione o resultado, por mountfavor.
Davidbaumann
Não quero parecer estúpido, mas o que exatamente você quer dizer? Que código devo colocar no terminal? Se é isso que você quer fazer. Obrigado!
oodles2do
mountexatamente;)
davidbaumann

Respostas:

248

Veja este bug .

Execute este comando para matar o Nautilus (arquivos):

killall nautilus
caminho do futuro
fonte
45
Uau, eu não posso acreditar que trabalhou
Jed
11
Eu vou ser condenado, isso funciona haha
Tek
6
Estou usando nemo, então fiz killall nemoe funciona.
Oki Erie Rinaldi
14
É triste que ainda funcione em 2018 (Ubuntu 16.04.3 LTS) #
Andrew Andrew
2
Correção mais estranha que eu já vi. Ainda funciona no Ubuntu 18.04
CodeMonkey 13/06
74

Quando você conecta sua chave USB ao seu laptop:

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

Problema deve ser resolvido agora.

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

Comunidade
fonte
1
Obrigado pela ajuda! Eu tentei fazer o que você disse, está digitando umount / dev / sdb1 correto para desmontar meu pendrive? Além disso, não sei como usar o dosfsck. Obrigado pelo link também
oodles2do
3
@SimonBremford se o seu USB estiver montado, é /dev/sdb1claro que seu comando está correto. Para sua outra pergunta, digite:dosfsck -a /dev/sdb1
23
Obrigado pela sua ajuda, no entanto, não funcionou. O stick USB ainda é somente leitura. Eu acho que é um problema com o Ubuntu e não com o próprio pendrive, visto que foi tão repentino. E o fato de ter afetado mais de um dispositivo USB ao mesmo tempo.
oodles2do
3
Às vezes, a melhor coisa a fazer é reiniciar
Gayan Weerakutti
2
Seria útil adicionar à resposta que uma reinicialização é realmente necessária.
Artem Pelenitsyn
20

Eu recebi o mesmo erro ao usar o GParted para definir a tabela de partição e formatar o meu pendrive .. depois disso, todas as unidades USB passaram para "somente leitura".

Mas, na cópia raiz, funcionou bem ...

O problema desapareceu após a reinicialização da máquina. Portanto, acho que esse problema pode ocorrer ao usar o GParted.

Koyot
fonte
Veja a solução de trabalho abaixo postada por Serranoe meu comentário sobre isso. Bem para mim a origem veio de usar GPated...
Antonio
16

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

Quando 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 de raiz.

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 novamente, problema resolvido, agora posso escrever nele!

hillsongperth
fonte
Para mim sudo chown [username] /media/[username]funcionou bem. Eu mesmo não tem que ter o usb pau para fora e em (nem eu preciso chgrp- eu estou no Xubuntu 16.04)
Nicolas
Obrigado pela sua resposta. Essa deve ser a resposta aceita, pois não há realmente um problema com a mídia em si, mas com o ponto de montagem.
agim
chown também pode mudar o grupo, chown [username]:[groupname] filesé equivalente a correr chowne depois chgrp. Vejaman chown
Xen2050 5/17/17
1
@ Xen2050, melhor ainda é chown [username]: filesque o `chown`` será o padrão para o grupo de login dos usuários.
Lucas
@ Lucas obrigado que é melhor. Está inteligentemente escondido na manpágina, mas visível na infopágina [seria muito bom se as páginas de homem e informação coincidissem ...]
Xen2050 5/05
11

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

  • Formate o dispositivo usando GParted. Eu até tentei recriar a tabela de partição, sem sucesso.
  • Verifique o dispositivo com fsck. Não foram encontrados problemas.
  • 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, eu só consegui gravar no dispositivo a partir da linha de comando (ainda não consegui criar arquivos a partir da GUI).

Quando conecto um pen drive, ele é montado embaixo de /media/<username>/<label>/onde <username>está o meu nome de usuário e <label>o rótulo do pen drive 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 possui permissões estendidas chamadas Lista de controle de acesso (ACL) (consulte esta pergunta relacionada ). 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-xpara o meu nome de usuário, que só me dá acesso de leitura. Corrigi isso com um comando simples:

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

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

Serrano
fonte
1
ESTÁ BEM. Obrigado, esta foi a solução. No entanto, no final, você precisa restart your computerpara ter acesso total ao mounted USBs. Outro ponto vale a pena, acredito, este problema ocorreu depois creating a new gpt partition tablede um USB stickcom GParted. Posteriormente, todos os meus USB foram afetados. Definitivamente os rapazes no GParteddeve se comportar de forma diferente ...
Antonio
9

Eu formatei usando o Gparted. Isso limpou todos os dados do disco e também corrigiu o problema.

Adrian Lopez
fonte
1
Sim, isso funciona. Você deve criar uma nova tabela de partições como msdostipo e, em seguida, criar uma grande parititon com fat32.
vskubriev
1
Eu acho que essa resposta é um esboço. Por favor, expanda-o.
Léo Léopold Hertz 준영 28/01
6

Quando você executou, mountapenas o sda5 (seu /) foi montado e foi lido / gravado ( rw), para que você possa gravá-lo. Normalmente, a maioria dos diretórios /sys, como , /biné gravável somente pela raiz (você precisaria sudoprimeiro), mas sua pasta pessoal deve ser gravada pelo usuário comum.

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

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

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


Para a unidade USB, depois de conectada e montada, procure- mounta (a /dev/sdb1 ...linha) e veja se a opção de montagem na caixa ()é rw(leitura / gravação), então você poderá gravá-la. 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, pode ser montado como ro, também deve haver mensagens sobre ele no dmesg& /var/log/syslog. Isto é o que seus logs 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 poderia ter sido corrompido - "não desmontado adequadamente", você sempre deve desmontar antes de desconectar qualquer coisa. A maioria dos gerenciadores de arquivos tem um "ejetar" para ajudar nisso.

O dmesglog também diz como corrigi-lo: fsckpode tentar corrigir erros de fs, tenta escolher o programa de verificação correto ou você pode escolher um explicitamente com fsck.vfatou fsck.[other]pressionando TABapós fsck.deve listar as opções.

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

NOTA : Isso não garante que o sistema de arquivos permaneça fixo, ele pode ser corrompido novamente e pode ser impossível saber exatamente o porquê. Sempre desmonte / "ejete" antes de remover as unidades USB.

Observe que se um fs é montado comorw , mas os erros são vistos e ele é remontado automaticamente comoro , o comando mount aindarw pode informar que está montado . Observar esse arquivo less /proc/mountsnormalmente deve mostrar informações mais confiáveis ​​(consulte man mount).


Se algo estiver montado, rwmas você ainda não conseguir adicionar / excluir / editar arquivos, talvez você não seja o proprietário dos arquivos. Em alguns FS, você pode chownse tornar o proprietário, mas um FS do FAT32, como no sdb1, não tem essas permissões; eles são definidos quando são montados com a opção de montagem uid=value(o valor é seu ID do usuário, aprenda-o com echo $UIDou id -u) e, em seguida, você pode tentar e verificar 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 da GUI para que ele "observe" a alteração de montagem que permite gravar no sistema de arquivos / unidade, mas um terminal sempre deve funcionar.

Ou se o acima não funcionar, tente sudo sua "tornar-se" root, para ver se algo pode gravar arquivos no USB (com touch, echoetc,)?

Xen2050
fonte
Obrigado pela sua resposta, eu fiz os comandos newfile001 e recebi "coisas" como resposta. Além disso, a partir do comando mount, há rw no suporte para o pendrive, por isso devo poder ler / escrever nele. Eu apenas tentei os comandos no final da sua resposta, mas não funcionou, ainda é um dispositivo somente leitura.
oodles2do
Pelo menos o HD está funcionando ... O USB deve ser gravável ... se você estiver cdem uma pasta USB, pode gravar algum arquivo echo stuff >> newusbfileou semelhante? Ou echo stuff | sudo tee newusbfile? Ou primeiro corra sudo supara "tornar-se" raiz, depois eco, gato, etc?
Xen2050
Como faço para executar os comandos cd na pasta USB? Eu acho que eu só fiz isso em / media / simon e funcionou, mas o USB é / media / Simon / LYDIA
oodles2do
Se o USB não estiver montado, o / media / simon / LYDIA será apenas uma pasta vazia (se houver). Depois que é montada você pode ver pasta onde está montado é com mountou lsblk, então, cd mounted_foldere tentar escrever arquivos, mkdiretc ... e como sudo supara ver se você pode escrever como root também ...
Xen2050
Obrigado por toda a sua ajuda, eu apenas tentei gravar um arquivo no arquivo usb, mas ele não funcionou, ele diz que é um sistema de arquivos somente leitura. Adicionei o código à pergunta para que você possa ver o que fiz.
precisa saber é o seguinte
4

Goto Disks .

Selecione sua unidade USB.

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

Em seguida, selecione apagar Substituir dados existentes com zeros (lento) e digite FAT .

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

Mahmud
fonte
1
Isso apagará todos os dados na unidade.
Cst1992 21/07
E se eu precisar de NTFS? O mesmo para o NTFS não funcionou para mim.
Vadim Kotov 28/05
1

Como na resposta do futuro acima, quando você está usando o Nemo (como eu, se você usa o ambiente de desktop Cinnamon), tente:

killall nemo
Christian Opitz
fonte
0

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

Método 1

Às vezes, podemos realizar a tarefa do bash sem problemas que eu normalmente faço (não é necessário sudo)

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

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

sudo nautilus /media/$USER/mydrive/

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

Método 2

Reinicie o SO

Thamme Gowda
fonte
0

tente abaixo das estratégias

  1. edite o /etc/fuse.conf como superusuário

    mude #user_allow_otherparauser_allow_other

  2. ativar suporte de gravação para dispositivos externos

    • sudo apt-get install ntfs-config
    • sudo ntfs-config
Oshan Wisumperuma
fonte
0

Isso ocorre porque seu sistema de arquivos é NTFS e está em um estado inseguro; talvez você esteja usando seu disco no Windows; um dos motivos é que você hibernou o Windows ou o reiniciou rapidamente.

  1. desmonte a mídia usando o comando abaixo, vá para o Windows (talvez no modo de inicialização dupla ou talvez em outro computador) e feche completamente as janelas, sem hibernar ou reiniciar rapidamente,

    sudo umount /media/"your media label"

em seguida, volte ao Linux e monte sua mídia usando este comando:

'sudo mount -o rw,mount /your media'
  1. se você estiver usando macOs, conecte sua mídia ao seu dispositivo mac e use este comando:

    'sudo / usr / sbin / diskutil disableJournal / Volumes / nome da mídia'

Nima Ghoroubi
fonte
0

Tudo que você precisa é seguir 3 comandos.

  1. df -Th

resultado - insira a descrição da imagem aqui

  1. umount /media/user/KINGSTON (isto é montagem no caminho)
  2. dosfsck -a /dev/sdb1 (este é o caminho do sistema de arquivos)
Mahendra Pratap
fonte
0

Execute os seguintes comandos no terminal (ubuntu) para conceder permissão de gravação a um Pendrive.

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

    • "/ media / madusanka / KINGSTON" é o valor "Montado em" fornecido pelo primeiro comando
  3. sudo dosfsck -a /dev/sdb1

    • "/ dev / sdb1" é o valor "Sistema de arquivos" fornecido pelo primeiro comando.
  4. Coloque sua senha

  5. Verifique o Pendrive colando ou criando um novo arquivo.

Shirantha madusanka
fonte