Инструкция найдена на форуме убунту.ру, но времени чтоб найти потратил кучу, поэтому сделаю у себя описание.
В моем случае флешка монтируется, но при попытке удалить или записать
данные появляется сообщение, что файловая система примонтирована только
для чтения.
Ни монтирование с полными правами для моего пользователя:
sudo mount -t vfat /dev/sdb /home/alex/flash -o uid=1000,gid=1000,utf8,dmask=777,fmask=777
Ни попытка поменять права доступа:
sudo chmod -R 777 /home/alex/flash
никакого результата не дали.
После выполнения всех операций ниже все данные на флешке будут полностью уничтожены!
Сначала нужно определить какое устройство отвечает в системе за
подключаемую флешку. Я полез в «Система-Администрирование-Дисковая
утилита» (ее же можно вызвать из терминала (gnome-terminal) набрав:
palimsest и нажав Ввод) и слева в меню, клацнув на подключенной флешке,
увидел, что это устройство /dev/sdb. Узнать это можно разными способами,
описанный — самый «чайниковский»)
Далее строго по инструкции:
1. Размонтируем флешку, если примонтирована:
sudo umount /dev/sdb1
2. Отформатируем флешку, записав вместо данных нули:
sudo dd if=/dev/zero of=/dev/sdb
процедура долгая, у меня 8 гигабайтную флешку форматировало около 40 минут. Можно переписать только первые 512 байт, в которых записана таблица разделов:
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1
3. Далее создадим раздел:
sudo fdisk /dev/sdb
на что я получил в ответ такое:
Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSFBuilding a new DOS disklabel with disk identifier 0xba831fb7.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.
Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
Команда (m для справки):
жмем n, получаем:
Действие команды
e расширенный
p основной раздел (1-4)
жмем p, получаем:
Номер раздела (1-4):
жмем 1, получаем:
Первый цилиндр (1-1021, по умолчанию 1):
жмем Enter, получаем
Используется значение по умолчанию 1
Last цилиндр, +цилиндры or +size{K,M,G} (1-1021, по умолчанию 1021):
жмем Enter, получаем
Используется значение по умолчанию 1021
Команда (m для справки):
жмем t, получаем:
Выбранный раздел 1
Шестнадцатеричный код (введите L для получения списка кодов):
Жмем l, получаем список возможных вариантов создания файловой системы и выбираем 6 — FAT 16:
Системный тип раздела 1 изменен на 6 (FAT16)
Команда (m для справки):
Жмем p, получаем:
Диск /dev/sdb: 8075 МБ, 8075120640 байт
249 heads, 62 sectors/track, 1021 cylinders
Units = цилиндры of 15438 * 512 = 7904256 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xba831fb7
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 1021 7881068 6 FAT16
Команда (m для справки):
Далее сохраняем изменения нажав w и получив:
Таблица разделов была изменена!
Вызывается ioctl() для перечитывания таблицы разделов.
ПРЕДУПРЕЖДЕНИЕ: Если вы создали или изменили
какие-либо разделы DOS 6.x, пожалуйста, прочтите
страницу руководства fdisk для получения
дополнительной информации.
Синхронизируются диски.
Основная работа сделана — осталось отформатировать флешку. Для этого сначала размонтируем ее, если она автоматически примонтировалась и отформатируем:
sudo umount /dev/sdb1
sudo mkfs.vfat -F 32 /dev/sdb1
Теперь вынуть вставить флешку и вуаля) Все работает и доступно и для чтения и для записи)
Спасибо большое за статью, восстановил флешку за минуту.
Как-то,когда пользовался виндой, восстанваливал ее целый вечер, в ubuntu же все гораздо проще)
Еще раз спасибо за статью!
в статье опечатка.
во втором пункте вместо
sudo dd if=/dev/zero of=dev/sdb
должно быть
sudo dd if=/dev/zero of=/dev/sdb
слеш пропущен
поправил, спасибо)
Спасибо.
У меня пишет: Носитель не найден
Если пишет носитель не найден, значит носитель примонтирован по-другому. Узнать как примонтирован носитель можно выполнив в терминале команду «
df -h
» — В полученном ответе нужно выбрать правильный /dev/sdX — вместо X — нужная буква.Если в списке нет нужного /dev/sdX — значит носитель не определяется на уровне файловой системы. Попробуйте выполнить в терминале команду
lsusb
— будет ли в выводе что-то о вашем носителе?Спасибо! Я счастлив!!!
Спасибо!
После данной процедуры убунту вообще перестала видеть флешку.
Что значит вообще? lsusb — не показывает устройства?
пишет что файловая система доступна только для чтения((((
Если такое пишет после всех проделанных успешно операций, то, возможно вы где-то ошиблись. Попробуйте еще раз проделать. Либо совсем печаль и флешка таки повреждена необратимо(
Lot of smarts in that ponistg!
разметтьте под виндой мне флешку так, чтоб она была как с завода, и чтоб она корректно работала везде, а не только в винде.
Очень дельное дополнение. Спасибо. Таки да, насколько я знаю, контроля целостности данных во флешке нет. Если не ошибаюсь, аналогично можно и вывод dd перенаправить на mdum
разметтьте под виндой мне флешку так, чтоб она была как с завода, и чтоб она корректно работала везде, а не только в винде.