USB-пристрої, які відображаються лише для читання


122

Я використовую Ubuntu 14.04.

У мене є 8GB FAT32 USB-накопичувач і 500gb FAT32 HDD; обидва вони раптом стали лише пристроями для читання.

Я спробував видалити каталог всередині, /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)

заглушити його, коли змонтують? Як ви це змонтуєте? Як корінь? Автоматичне кріплення з автоматичним підключенням файлового менеджера?
davidbaumann

Я зазвичай підключаю USB-накопичувачі, а потім або спливає вікно, або мені доступно відкривати та перетягувати файли. Зазвичай я не використовую термінал для копіювання чи іншого подібного.
oodles2do

Підключіть, відкрийте та додайте результат, mountбудь ласка.
davidbaumann

Ви не хочете думати глупо, але що саме ви маєте на увазі? Який код потрібно ввести в термінал? Якщо це ви маєте намір зробити це. Дякую!
oodles2do

mountсаме;)
davidbaumann

Відповіді:


248

Дивіться цю помилку .

Виконайте цю команду, щоб убити Nautilus (Файли):

killall nautilus

45
Нічого собі, я не можу повірити , що працював
Джед

11
Я буду проклятий, це працює ха-ха
Текст

6
Я використовую nemo, так і зробив, killall nemoі це працює.
Окі Ері Рінальді

14
Сумно, що все ще працює в 2018 році (Ubuntu 16.04.3 LTS)
Ендрю

2
Найстрашніше виправлення, яке я бачив. Досі працює над Ubuntu 18.04
CodeMonkey

74

Підключивши свій USB-ключ до ноутбука:

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

Проблему слід вирішити зараз.

Тепер для вашого жорсткого диска слідкуйте за відповіддю на це запитання . Мова йде про зовнішній жорсткий диск, але це те саме, що і у вашому випадку.


1
Спасибі за вашу допомогу! Я намагався виконати те, що ви сказали, чи правильно вводити umount / dev / sdb1 для демонтажу моєї usb-палки? Крім того, я не знаю, як користуватися dosfsck. Дякуємо також за посилання
oodles2do

3
@SimonBremford, якщо ваш USB встановлений, /dev/sdb1звичайно, ваша команда правильна. Для вашого іншого питання просто введіть:dosfsck -a /dev/sdb1

23
Дякуємо за вашу допомогу, однак це не спрацювало. USB-паличка читається лише досі. Я думаю, що це проблема з Ubuntu, а не з самою USB-палкою, оскільки це було так раптово. І той факт, що на це впливає більше ніж один USB-пристрій одночасно.
oodles2do

3
Іноді найпростіше зробити це перезапустити
Gayan Weerakutti

2
Було б корисно додати у відповідь, що перезавантаження дійсно потрібне.
Артем Пеленицин

20

Я отримав таку ж помилку, коли використовував GParted для встановлення таблиці розділів та форматування моєї USB-накопичувача. Після цього всі накопичувачі USB перейшли на "лише для читання".

Але під кореневим копіюванням працювало чудово ...

Випуск зник після перезавантаження машини. Тому я здогадуюсь, що ця проблема може виникнути при використанні GParted.


Дивіться робоче рішення, яке розміщено нижче, Serranoі мій коментар до нього. Як і для мене, походження з'явилося завдяки використанню GPated...
Антоніо

16

У мене теж була ця проблема. Я отримав помилку під час копіювання на палець usb, я використовую корицю Mint 17.1, ядро ​​3.13.0-43 з файловим менеджером caja.

Коли я переглянув медіа-каталог в терміналі 'dir / media', я побачив, що макет змінився, як правило, ви очікуєте побачити диски, перераховані тут, але тепер вони вказані під вашим іменем користувача, і здогадуєтесь про що? Це ім'я користувача має лише права ROOT.

Що я зробив, це набрати

sudo chown [username] /media/[username]

і

sudo chgrp [username] /media/[username]

де ви замінили [ім'я користувача] своїм іменем користувача, вилучили USB-паличку, почекали, а потім поставити його назад, проблема вирішена, я зараз можу написати їй!


Для мене sudo chown [username] /media/[username]добре працювали. Мені навіть не довелося брати usb stick і в (і мені це не потрібно chgrp- я на Xubuntu 16.04)
Nicolas

Дякую за вашу відповідь. Це має бути прийнятою відповіддю, оскільки насправді немає проблеми з самими носіями інформації, а з моментом монтажу.
агім

чуун може також змінити групу, chown [username]:[groupname] filesеквівалентний бігу chownі тоді chgrp. Дивітьсяman chown
Xen2050

1
@ Xen2050, ще краще, chown [username]: filesоскільки `chown`` за замовчуванням для групи входу користувачів.
Лукас

@Lucas спасибі, що краще. Це спритно приховано на manсторінці, але видно на infoсторінці [було б дуже приємно, якщо сторінки чоловіка та інформації збігаються ...]
Xen2050

11

У мене були ті ж проблеми з 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-поділ, приєднав його знову, і проблема була вирішена.


1
ГАРАЗД. Спасибі, це було рішення. Однак в кінці вам потрібно restart your computer, щоб мати повний доступ до mounted USBs. Ще один момент, який я варто того, я вважаю, ця проблема виникла після того, як creating a new gpt partition tableна USB stickс GParted. Згодом усі мої USB були пошкоджені. Однозначно хлопці у GPartedсебе повинні поводитись інакше ...
Антоніо

9

Я відформатований за допомогою Gparted. Це видалило всі дані на диску, і виявилося, що це також усунуло проблему.


1
Так, це працює. Необхідно створити нову таблицю розділів як msdosтип, а потім створити один великий парітон з fat32.
vskubriev

1
Я думаю, що ця відповідь є заглушкою. Будь ласка, розгорніть його.
Лео Леопольд Герц 준영

6

Коли ви запускали mountтільки sda5 (ваш /), був змонтований, і він був прочитаний-написати ( rw), тому ви повинні мати можливість писати на нього. Як правило, більшість з цих каталогів , як /sys, /binтільки записується корінь (ви повинні були б sudoпершим), але ваша домашня папка повинна бути записуваної до звичайному користувачеві.

Чи можете ви створити будь-які файли в домашній папці? Можливо, ваш менеджер файлів gui застряг, думаючи, що вони доступні лише для читання, якщо ви спробуєте в терміналі, чи працює це? Наприклад, чи працюють ці команди ?:

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стати власником, але FAT32 fs, як у sdb1, не має цих прав; вони встановлюються, коли він монтується за допомогою параметра монтажу uid=value(значення - це ваш користувальницький текст, дізнайтеся його за допомогою echo $UIDабо id -u), тоді ви можете спробувати це і побачити, чи працює він згодом:

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • Примітка. Іноді вам може знадобитися перезапустити свій файловий менеджер gui, щоб він міг "помітити" зміну кріплення, яка дозволяє писати у файлову систему / диск, але термінал повинен завжди працювати.

Або , якщо вище не працює, спробуйте sudo su«стати» корінь, щоб побачити , якщо що - небудь може записувати файли на USB (з touch, echoі так далі)?


Дякую за вашу відповідь, я виконав команди newfile001, і я отримав "матеріал" у відповідь. Крім того, в команді mount є rw в дужці для usb stick, тому я повинен мати можливість читати-записувати до нього. Я просто спробував команди в кінці вашої відповіді, але це не спрацювало, це все-таки пристрій лише для читання.
oodles2do

Принаймні, HD працює ... USB має бути записаним ... якщо ви знаходитесь cdу папці USB, чи можете ви записувати будь-які файли з echo stuff >> newusbfileподібними? Або echo stuff | sudo tee newusbfile? Або спочатку запустіть, sudo suщоб "стати" корінцем, потім відлуння, кішка тощо?
Xen2050

Як зробити команди 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

Іноді ми можемо виконати завдання з Баша без проблем, як правило, я роблю (судо не потрібно)

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 disabledJournal / Томи / ім'я медіа'


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" - це значення "Встановлено на", яке задається першою командою
  3. sudo dosfsck -a /dev/sdb1

    • "/ dev / sdb1" - це значення "Filesystem", яке задається першою командою.
  4. Введіть ваш пароль

  5. Перевірте Pendrive, вставивши або створивши новий файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.