Вопрос или проблема
У меня есть USB-накопитель с правами только для чтения, и я не смог его исправить. Я прочитал несколько статей об этом и пытался восстановить, но не смог.
Я размонтировал накопитель и использовал dosfsck
для проверки и восстановления файловых систем MS-DOS, потому что это файловая система FAT
, и запустил:
dosfsck -a /dev/sdb1
Он выдал следующий вывод:
fsck.fat 4.1 (2017-01-24) open: Файловая система только для чтения
Что мне с этим делать? Могу ли я восстановить его или время выбросить его в мусор?
Если USB-накопитель когда-то было возможно записать, а теперь он больше не работает, это говорит о трех вещах:
-
Аппаратный переключатель на устройстве был переключен.
Если это так, простое решение — найти этот аппаратный переключатель (они могут быть действительно незаметными) и переключить его.
-
Произошло «некорректное» размонтирование, такое как вытаскивание USB до завершения записи данных ОС.
Чтобы сохранить жизнь устройств и улучшить производительность, записи на большинство носителей выполняются с буферизацией — включая USB-накопители. По сути, это означает, что если вы не скажете операционной системе извлечь/размонтировать USB-накопитель, у вас нет гарантии, что все данные были записаны. Более того, большинство файловых систем имеют флаги, указывающие, когда они были смонтированы и размонтированы: всегда говорите ОС, что собираетесь удалить накопитель («извлечь», «размонтировать», «выключить»), прежде чем вытащить его из слота.
Таким образом, если простая проверка и исправление файловой системы не работают, вы можете попробовать грубый подход — временно скопировать ваши данные куда-нибудь еще, отформатировать USB-накопитель, а затем скопировать данные обратно. При форматировании вы полностью перезаписываете то, что было, так что ОС/файловая система не будут помнить, что USB-накопитель/файловая система были только для чтения до форматирования.
Одно замечание по поводу восстановления файловой системы. Убедитесь, что она не смонтирована. Ваш набор команд подразумевает, что она смонтирована. Итак:
sudo umount /dev/sdb1
sudo dosfsck -a /dev/sdb1
-
Сам USB-накопитель умирает, и встроенная прошивка защищает вас от потери данных.
Если USB использует флэш-память, возможно, вы записали на устройство достаточно раз, что теперь оно не может больше записывать. Запись на флэш-память — это разрушительный процесс, и каждый сектор может принимать только ограниченное количество перезаписей. Многие накопители «скрывают» этот факт, имея существенно большую память (например, 16 ГБ общего пространства для записи), но только представляя ОС меньший объем (например, 2 ГБ). По мере того как каждый сектор начинает изнашиваться, прошивка автоматически перемещает данные на новый неиспользованный сектор. Однако после слишком многих записей больше не останется полезной памяти, и умные реализации прошивки заблокируют накопитель, чтобы предотвратить потерю данных. В этот момент ваш единственный вариант — скопировать данные на новый флэш-накопитель.
USB-накопитель имеет, возможно, совсем недавно, некоторый способ сделать себя только для чтения на несколько дней, когда вы что-то записываете на него — возможно, просто чтобы сохранить его жизнь как флэш-память дальше.
Этот накопитель вовсе не исчерпан, и вам, возможно, стоит раньше установить флаг только для чтения в ноль…
Пожалуйста, посмотрите hdparm --security-help
для вашего устройства.
Возможно, вы захотите выполнить некоторые из них, если не все; попробуйте определить правильную последовательность.
Идея здесь в том, чтобы:
hdparm --security-mode m --user-master m --security-freeze device;
hdparm --security-mode m --user-master m --security-set-pass null device;
hdparm --security-mode m --user-master m --security-unlock null device;
hdparm --security-mode m --user-master m --security-disable null device;
hdparm --security-mode m --user-master m --security-erase null device;
hdparm --security-mode m --user-master m --security-erase-enhanced null device;
Полностью отключить функцию только для чтения вашего устройства.
Я успешно справился с этим на USB 2.0 64G multilaser ™ флешке здесь, в Бразилии, месяц назад.
Простое решение: подключите флешку к компьютеру под управлением Windows. Windows обнаружит ошибку и предложит вам просканировать и исправить ее. Затем накопитель будет работать на Ubuntu так, как обычно.
Утилита Ubuntu под названием “ДИСКИ” очень мощная. Она иногда может исправить эту ошибку. Я несколько раз добивался успеха с ней. Подключите USB-накопитель. Откройте ДИСКИ. Слева она перечислит устройство, которые она может видеть. В главном окне будут показаны разделы на каждом устройстве. Выберите USB-накопитель из списка слева. Он откроется в главном окне и будет показан как один раздел (если вы это не изменяли). Под окном есть 2 значка, один можно использовать для монтирования и размонтирования накопителя, а другой (шестеренки) можно использовать для широкого спектра операций по обслуживанию. Под ними есть 4 элемента информации о накопителе — Размер, Устройство, UUID, Содержимое. Они помогут вам убедиться, что вы выбрали правильный накопитель. Нажмите на шестеренки и в появившемся меню найдите около 7 пунктов вниз “Исправить файловую систему”. Вы получите предупреждение, но продолжайте. Если ДИСКИ могут исправить накопитель, они могут создать несколько файлов FSCK на накопителе. Когда все будет готово, она перечислит созданные файлы FSCK. Вам нужно будет открыть консоль и удалить эти файлы с помощью sudo rm -rf FSCK*. После того как вы сделаете это для очистки накопителя, вы закончите. ДИСКИ удалит флаг, который сделал файловую систему только для чтения. Извлеките USB-накопитель, а затем уберите его из слота. Теперь он должен вести себя нормально, если вам повезет.
Я установил gparted на моем Ubuntu через эту команду:
sudo apt install gparted
Затем я запустил его и смог отформатировать весь USB-накопитель в нужный мне тип файловой системы.
Я знаю, что это не элегантный ответ, но это удивительно, как это было просто.
Ответ или решение
Как исправить USB-накопитель, который стал доступен только для чтения
Если ваш USB-накопитель стал доступен только для чтения, это может быть вызвано различными причинами, включая аппаратные проблемы, ошибки файловой системы или износ устройства. В данной статье мы рассмотрим основные шаги, которые вы можете предпринять для решения этой проблемы.
1. Проверьте наличие аппаратного переключателя
Многие USB-накопители имеют маленький аппаратный переключатель для защиты от записи. Если ваш накопитель был защищен, это можно легко исправить, просто переключив его в другое положение. Проверьте корпус устройства на наличие такого переключателя и убедитесь, что он находится в положении, разрешающем запись.
2. Проверьте файловую систему
Если аппаратный переключатель в порядке или его нет, следующей причиной может быть поврежденная файловая система. Если вы ранее отключили USB-накопитель ненадлежащим образом, это могло привести к проблеме. В этом случае выполните следующие шаги:
-
Демонтаж накопителя. Перед проведением любых операций с файловой системой обязательно демонтируйте устройство.
sudo umount /dev/sdb1
-
Проверка и восстановление файловой системы. Используйте команду
dosfsck
для проверки и ремонта файловой системы вашего накопителя.sudo dosfsck -a /dev/sdb1
Обратите внимание на вывод команды. Если вы увидите сообщение о том, что файловая система доступна только для чтения, переходите к следующим шагам.
3. Форматирование накопителя
Если предыдущие шаги не помогли, вы можете попробовать отформатировать ваш USB-накопитель. Форматирование удалит все данные с устройства, поэтому убедитесь, что у вас есть резервная копия важных файлов, если это возможно. Для форматирования воспользуйтесь следующими шагами:
-
Установка GParted. Если у вас его нет, установите GParted, используя следующую команду:
sudo apt install gparted
-
Запуск GParted. Запустите GParted и выберите ваш USB-накопитель. Убедитесь, что вы выбрали верное устройство.
-
Форматирование. Нажмите правой кнопкой мыши на разделе накопителя и выберите "Форматировать". Выберите файловую систему, которую вы хотите использовать (например, FAT32 или ext4) и подтвердите операцию.
4. Используйте утилиту ‘DISK’
Существует утилита на Ubuntu под названием ‘DISK’, которая также может помочь в решении проблемы. Выполните следующие шаги:
- Откройте утилиту "Диски" (Disks) и выберите ваш USB-накопитель.
- Внизу экрана нажмите «Шестеренка» и выберите «Проверить файловую систему».
- Убедитесь, что устройство безопасно демонтировано перед выполнением этой операции.
5. Проверка на Windows
Если вы все еще испытываете проблемы, подключите ваш USB-накопитель к компьютеру с Windows. Windows может автоматически обнаружить ошибки и предложить провести сканирование и восстановление. Эта процедура иногда позволяет исправить ошибки, которые не удаётся устранить в Linux.
6. Возможность аппаратного износа
Если ни один из вышеперечисленных методов не помог, возможно, ваш USB-накопитель физически изношен. Flash-накопители имеют ограниченное количество циклов записи и могут защищаться от дальнейших операций записи, чтобы предотвратить потерю данных. В этом случае вам может потребоваться замена устройства.
Заключение
Существует несколько способов исправления USB-накопителя, который стал доступен только для чтения. Начните с проверки аппаратного переключателя и файловой системы, перед тем как перейти к форматированию. В случае неудачи, попробуйте подсоединить накопитель к компьютеру с Windows, или учтите возможность его износа. Следуя этим шагам, вы сможете решить проблему и продолжить использовать ваш USB-накопитель с полной функциональностью.