Perangkat USB ditampilkan sebagai hanya baca


122

Saya menggunakan Ubuntu 14.04.

Saya memiliki USB stick FAT32 8GB dan FAT32 HDD 500GB; keduanya tiba-tiba menjadi perangkat hanya baca.

Saya sudah mencoba menghapus direktori di dalamnya /mediadan kemudian membuatnya lagi, menamainya kembali, kemudian memberikan direktori itu izin penuh. Namun, ini tidak berhasil.

Hasil dari 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)

Hasil dari 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

Hasil dari 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 

Tes tulis USB:

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

Hasil dari 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)

chown it, saat dipasang? Bagaimana Anda memasangnya? Sebagai root? Pasang otomatis dengan pengelola file pengelola?
davidbaumann

Saya biasanya mencolokkan stik usb dan kemudian muncul jendela atau tersedia bagi saya untuk membuka dan menyeret dan meletakkan file ke dalamnya. Saya biasanya tidak menggunakan terminal untuk menyalin atau apa pun seperti itu.
oodles2do

Hubungkan, buka, dan tambahkan hasilnya mount.
davidbaumann

Jangan bermaksud terdengar bodoh, tapi apa maksudmu sebenarnya? Kode apa yang harus saya masukkan ke terminal? Jika itu yang Anda maksud untuk melakukannya. Terima kasih!
oodles2do

mountpersis;)
davidbaumann

Jawaban:


248

Lihat bug ini .

Jalankan perintah ini untuk membunuh Nautilus (File):

killall nautilus

45
Wow, saya tidak percaya itu berhasil
JeD

11
Saya akan terkutuk, ini bekerja haha
Tek

6
Saya menggunakan nemo, jadi saya lakukan killall nemodan berhasil.
Oki Erie Rinaldi

14
Sangat menyedihkan bahwa masih berfungsi di 2018 (Ubuntu 16.04.3 LTS)
Andrew

2
Perbaikan aneh yang pernah saya lihat. Masih berfungsi di Ubuntu 18.04
CodeMonkey

74

Saat Anda memasang kunci USB ke laptop Anda:

  • jalankan sudo -i(sehingga Anda tidak akan mengetik kata sandi Anda sepanjang waktu)
  • jalankan df -Th(untuk melihat di mana stik USB Anda dipasang)
  • lepaskan stik USB Anda
  • jalankan dosfsckdi perangkat yang Anda lihat dari perintah sebelumnya. Contoh:dosfsck /dev/sdc1
  • lepaskan dan pasang kembali stik USB Anda

Masalah harus dipecahkan sekarang.

Sekarang, untuk HDD Anda, silakan ikuti jawaban untuk pertanyaan ini . Ini tentang HDD eksternal tetapi ini adalah hal yang sama untuk kasus Anda.


1
Terima kasih atas bantuan Anda! Saya mencoba melakukan apa yang Anda katakan, apakah mengetik umount / dev / sdb1 benar untuk melepas ikatan usb stick saya? Juga, saya tidak tahu cara menggunakan dosfsck. Terima kasih untuk tautannya juga
oodles2do

3
@SimonBremford jika USB Anda sudah terpasang /dev/sdb1tentu saja perintah Anda benar. Untuk pertanyaan Anda yang lain, cukup ketik:dosfsck -a /dev/sdb1

23
Terima kasih atas bantuan Anda, namun tidak berhasil. Stik usb hanya bisa dibaca. Saya pikir ini masalah dengan Ubuntu daripada usb stick itu sendiri, karena itu sangat mendadak. Dan fakta bahwa itu mempengaruhi lebih dari satu perangkat usb secara bersamaan.
oodles2do

3
Kadang-kadang hal termudah untuk dilakukan adalah memulai kembali
Gayan Weerakutti

2
Akan bermanfaat untuk menambahkan jawaban bahwa reboot memang diperlukan.
Artem Pelenitsyn

20

Saya mendapatkan kesalahan yang sama ketika menggunakan GParted untuk mengatur tabel partisi dan memformat USB stick saya .. setelah itu semua drive USB pergi ke "read-only".

Tetapi di bawah menyalin root bekerja dengan baik ...

Masalah hilang setelah mesin dihidupkan ulang. Jadi saya kira masalah ini dapat terjadi ketika menggunakan GParted.


Lihat solusi kerja di bawah ini yang diposting oleh Serranodan komentar saya tentang itu. Juga bagi saya asal datang dari menggunakan GPated...
Antonio

16

Saya punya masalah ini juga. Saya mendapat kesalahan saat menyalin ke stik usb saya, saya menggunakan kayu manis Mint 17.1, kernel 3.13.0-43 dengan manajer file caja.

Ketika saya melihat direktori media di terminal 'dir / media' saya melihat bahwa tata letak telah berubah, biasanya Anda berharap melihat drive tercantum di sini, tetapi sekarang mereka terdaftar di bawah nama pengguna Anda, dan coba tebak? Nama pengguna itu hanya memiliki izin ROOT.

Apa yang saya lakukan adalah mengetik

sudo chown [username] /media/[username]

dan

sudo chgrp [username] /media/[username]

di mana Anda mengganti [nama pengguna] dengan nama pengguna Anda, menghapus stik usb, menunggu dan memasukkannya kembali, masalah terpecahkan, sekarang saya dapat menulisnya!


Bagi saya sudo chown [username] /media/[username]bekerja dengan baik. Saya bahkan tidak perlu mengambil usb stick dan (tidak saya perlu chgrp- saya di Xubuntu 16.04)
Nicolas

Terima kasih atas jawaban Anda .. ini harus menjadi jawaban yang diterima, karena sebenarnya tidak ada masalah dengan media itu sendiri tetapi dengan titik pemasangan.
agim

chown dapat mengubah grup juga, chown [username]:[groupname] filessama dengan menjalankan chownlalu chgrp. Lihatman chown
Xen2050

1
@ Xen2050, bahkan lebih baik chown [username]: fileskarena `chown`` akan default ke grup login pengguna.
Lucas

@Lucas terima kasih itu lebih baik. Tersembunyi di manhalaman secara cerdik , tetapi terlihat di infohalaman [akan sangat bagus jika halaman info & man cocok]]
Xen2050

11

Saya pernah mengalami masalah yang sama di Ubuntu, dan tidak ada jawaban yang diberikan di sini sejauh ini bekerja untuk saya. Inilah yang saya coba:

  • Format perangkat menggunakan GParted. Saya bahkan mencoba membuat kembali tabel partisi, tanpa hasil.
  • Periksa perangkat dengan fsck. Tidak ada masalah yang ditemukan.
  • Memperbaiki izin titik mount. Ternyata titik mount dimiliki oleh root, tetapi bahkan setelah menjadikan diri saya sebagai pemilik, saya hanya dapat menulis ke perangkat dari baris perintah (saya masih tidak dapat membuat file dari GUI).

Saat saya menyambungkan stik USB, stik itu dipasang di bawah /media/<username>/<label>/, di mana <username>nama pengguna saya dan <label>merupakan label stik USB atau perangkat penyimpanan.

Saya melihat lagi pada izin:

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

Perhatikan bagian +akhir izin. Itu baru bagi saya dan saya tidak pernah menyadarinya sebelumnya. Itu berarti direktori tersebut telah memperpanjang izin yang disebut Daftar Kontrol Akses (ACL) (lihat pertanyaan terkait ini ). Saya mencantumkan detail ACL untuk direktori ini:

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

Seperti yang Anda lihat, ada entri tambahan user:<username>:r-xuntuk nama pengguna saya, yang hanya memberi saya akses baca. Saya memperbaikinya dengan perintah sederhana:

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

Saya melepaskan USB devide saya, memasangnya lagi, dan masalahnya terpecahkan.


1
BAIK. Terima kasih, ini solusinya. Namun pada akhirnya Anda harus restart your computermemiliki akses penuh ke Internet mounted USBs. Poin lain yang layak saya percaya, masalah ini terjadi setelah creating a new gpt partition tablepada USB stickdengan GParted. Selanjutnya semua USB saya terpengaruh. Pasti orang-orang di GPartedharus berperilaku berbeda ...
Antonio

9

Saya diformat menggunakan Gparted. Itu menghapus semua data dalam disk dan ternyata itu juga memperbaiki masalah.


1
Ya, itu berhasil. Anda harus membuat tabel partiton baru sebagai msdostipe, dan kemudian membuat parititon besar dengan FAT32.
vskubriev

1
Saya pikir jawaban ini adalah sebuah rintisan. Tolong, perluas itu.
Léo Léopold Hertz 준영

6

Ketika Anda menjalankan mounthanya sda5 (Anda /) telah di-mount, dan itu sudah baca-tulis ( rw) sehingga Anda harus dapat menulis untuk itu. Biasanya, sebagian besar direktori seperti /sys, /binhanya dapat ditulisi oleh root (Anda harus sudoterlebih dahulu), tetapi folder rumah Anda harus dapat ditulisi oleh pengguna reguler Anda.

Bisakah Anda membuat file di folder rumah Anda? Mungkin manajer file gui Anda terjebak berpikir mereka hanya-baca, jika Anda mencoba di terminal apakah itu berfungsi? Misalnya, apakah perintah ini berfungsi ?:

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

Jika itu berhasil maka Anda dapat menulis ke HD Anda (sda5).


Untuk drive USB, setelah dicolokkan dan dipasang, lihat mountuntuk menemukannya ( /dev/sdb1 ...baris) dan lihat apakah opsi mount ()di is rw(read-write) maka Anda harus dapat menulis ke sana. Jika ro(baca-saja) coba ini dan lihat apakah itu berubah:

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

Jika sistem file (fs) memiliki kesalahan yang mungkin bisa di-mount sebagai ro, harus ada pesan tentang itu di dmesg& /var/log/syslogjuga. Ini yang ditunjukkan oleh log Anda:

[  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

Itu termasuk petunjuk bagaimana fs bisa rusak - "tidak di-unmount dengan benar", Anda harus selalu meng-unmount sebelum mencabut apa pun. Sebagian besar pengelola file memiliki "eject" untuk membantu.

The dmesglog juga mengatakan bagaimana untuk memperbaikinya: fsckdapat mencoba untuk memperbaiki fs kesalahan, ia mencoba untuk memilih program cek yang tepat, atau Anda dapat memilih satu secara eksplisit dengan fsck.vfatatau fsck.[other]menekan TABsetelah fsck.harus daftar pilihan.

  • Untuk sistem FAT (sering harus menjalankannya dua kali, tidak selalu memperbaiki semua kesalahan saat pertama kali)
    • fsck.vfat -vaV [device] seharusnya bekerja secara otomatis (-a) & menampilkan lebih banyak info (-v) & melakukan pass "verifikasi" (-V), atau hanya:
    • fsck.vfat -a [device]

CATATAN : Ini tidak akan menjamin bahwa sistem file akan tetap diperbaiki, itu bisa rusak lagi & mungkin tidak mungkin tahu persis mengapa. Selalu lepaskan / "keluarkan" sebelum melepaskan drive USB.

Catatan jika fs mount sebagairw , tetapi kemudian kesalahan terlihat & itu secara otomatis remounted sebagairo , perintah mount masih melaporkan itu dipasangrw . Melihat file ini dengan less /proc/mountsbiasanya akan menampilkan informasi yang lebih andal (lihat man mount).


Jika ada sesuatu yang di-mount rwtetapi Anda masih tidak dapat menambah / menghapus / mengedit file di dalamnya, Anda mungkin bukan pemilik file. Dalam beberapa fs, Anda dapat chownmenjadi pemilik, tetapi fAT32 fs seperti pada sdb1 tidak memiliki izin tersebut; mereka diatur ketika mount dengan opsi mount uid=value(nilainya adalah userid Anda, pelajari dengan echo $UIDatau id -u) maka Anda dapat mencoba ini & lihat apakah itu berfungsi setelahnya:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Catatan: Kadang-kadang, Anda mungkin perlu me-restart manajer file gui Anda untuk "pemberitahuan" perubahan mount yang memungkinkan Anda menulis ke sistem file / drive, tetapi terminal harus selalu berfungsi.

Atau jika di atas tidak berhasil, cobalah sudo suuntuk "menjadi" root, untuk melihat apakah sesuatu dapat menulis ke file di USB (dengan touch, echo, dll)?


Terima kasih atas jawaban Anda, saya melakukan perintah newfile001 dan saya mendapat "barang" sebagai tanggapan. Juga, dari perintah mount ada rw di braket untuk tongkat usb, jadi saya harus bisa membaca-menulis untuk itu. Saya baru saja mencoba perintah di akhir jawaban Anda tetapi tidak berfungsi, itu masih merupakan perangkat hanya-baca.
oodles2do

Setidaknya HD berfungsi ... USB seharusnya bisa ditulisi ... jika Anda cdmasuk ke folder USB, dapatkah Anda menulis file dengan echo stuff >> newusbfileatau serupa? Atau echo stuff | sudo tee newusbfile? Atau pertama jalankan sudo suuntuk "menjadi" root, lalu gema, kucing, dll?
Xen2050

Bagaimana saya melakukan perintah cd ke folder USB? Saya pikir saya baru saja melakukannya ke / media / simon dan berhasil, tetapi USB adalah / media / simon / LYDIA
oodles2do

Jika USB tidak terpasang, maka / media / simon / LYDIA hanyalah folder kosong (jika ada di sana). Setelah di-mount, Anda dapat melihat di mana folder itu di-mount dengan mountatau lsblk, lalu cd mounted_folderdan coba menulis file mkdir,, dll ... dan sudo suuntuk melihat apakah Anda dapat menulis sebagai root juga ...
Xen2050

Terima kasih atas semua bantuan Anda, saya hanya mencoba untuk menulis file ke file usb tetapi tidak berhasil, ia mengatakan itu adalah sistem file read only. Saya telah menambahkan kode ke pertanyaan sehingga Anda dapat melihat apa yang saya lakukan.
oodles2do

4

Disk Goto .

Pilih drive USB Anda.

Klik pada opsi partisi tambahan dan pilih Format Partisi .

Kemudian pilih hapus Timpa data yang ada dengan nol (lambat) dan ketik FAT .

Saya telah mencoba banyak hal setelah mencari di internet tetapi ini berhasil untuk saya.


1
Ini akan menghapus semua data pada drive.
cst1992

Bagaimana jika saya membutuhkan NTFS? Hal yang sama untuk NTFS tidak bekerja untuk saya.
Vadim Kotov


0

Metode perbaikan cepat:

Metode 1

Kadang-kadang kita dapat menyelesaikan tugas dari bash tanpa kesulitan yang biasanya saya lakukan (tidak perlu sudo)

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

Namun, terkadang, ketika saya perlu menggunakan browser file,

sudo nautilus /media/$USER/mydrive/

Catatan: ini adalah perbaikan cepat, gunakan hanya jika Anda merasa frustrasi karena tidak ada jawaban lain di atas yang berfungsi

Metode 2

Mulai ulang OS


0

coba strategi di bawah ini

  1. edit /etc/fuse.conf sebagai superuser

    ubah #user_allow_otherkeuser_allow_other

  2. aktifkan dukungan penulisan untuk perangkat eksternal

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

0

Ini karena sistem file Anda adalah NTFS dan berada dalam stat yang tidak aman, mungkin Anda menggunakan disk Anda di windows, salah satu alasannya adalah Anda hibernasi windows atau restart dengan cepat., Jadi gunakan salah satu dari langkah-langkah ini:

  1. unmount media menggunakan perintah di bawah ini, pergi ke windows (mungkin mode dual boot atau mungkin di komputer lain) dan matikan windows sepenuhnya, tidak hibernasi atau restart cepat,

    sudo umount /media/"your media label"

kemudian datang ke Linux lagi dan pasang media Anda menggunakan perintah ini:

'sudo mount -o rw,mount /your media'
  1. jika Anda menggunakan macO, colokkan media Anda ke perangkat mac Anda dan gunakan perintah ini:

    'sudo / usr / sbin / diskutil disableJournal / Volume / nama-media'


0

Yang Anda butuhkan adalah mengikuti 3 perintah.

  1. df -Th

hasil - masukkan deskripsi gambar di sini

  1. umount /media/user/KINGSTON (ini adalah mount on path)
  2. dosfsck -a /dev/sdb1 (ini adalah jalur Filesystem)

0

Jalankan perintah berikut di terminal (ubuntu) untuk memberikan izin menulis ke Flashdisk.

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

    • "/ media / madusanka / KINGSTON" adalah "Mounted on" nilai yang diberikan oleh perintah pertama
  3. sudo dosfsck -a /dev/sdb1

    • "/ dev / sdb1" adalah nilai "Filesystem" yang diberikan oleh perintah pertama.
  4. Masukkan kata sandi Anda

  5. Periksa Flashdisk dengan menempelkan atau membuat file baru.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.