Как примонтировать битую флешку в линукс?
То есть получается флешка аппаратно здоровая? Что с ней дальше делать, как привести в рабочее состояние? P.S. Я выводил dmesg | grep usb поэтому не все выдало:
[138136.086431] scsi 15:0:0:0: Direct-Access GENERIC USB Mass Storage 1.00 PQ: 0 ANSI: 2 [138136.086960] sd 15:0:0:0: Attached scsi generic sg2 type 0 [138136.091619] sd 15:0:0:0: [sdb] Attached SCSI removable disk
Но система совсем не видит [sdb], ну никак. Нашел статью http://rlab.ru/doc/repair_usb_flash_linux.html не помогло. Дополнил. @alexanderbarakin sudo fdisk -l /dev/sdb не дает никакого эффекта, т.е. сразу выскакивает приглашение командной строки.
echo -e 'o\nn\n\n\n\n\nw' | sudo fdisk /dev/sdb fdisk: невозможно открыть/dev/sdb: Носитель не найден
после такого habrahabr.ru/post/251451 я бы не рисковал втыкать флешки, если я их не знаю. раз она определяется — смотрите дальше, какое там будет имя (в Вашем логе этого нет).
Вы имеете ввиду [sdb]? [138136.086431] scsi 15:0:0:0: Direct-Access GENERIC USB Mass Storage 1.00 PQ: 0 ANSI: 2 [138136.086960] sd 15:0:0:0: Attached scsi generic sg2 type 0 [138136.091619] sd 15:0:0:0: [sdb] Attached SCSI removable disk Я уже все перепробовал все: sudo mount /dev/sdb /mnt/lfs
@NatanTalifero, добавьте, пожалуйста, в вопрос вывод команды $ ls -l /dev/sd* , выполненной после того, как подключите устройство (на всякий случай выполняйте не сразу же после подключения, а спустя хотя бы секунд 5-10).
@NatanTalifero, форматированная информация в комментариях практически нечитабельно. именно поэтому я и попросил вас дополнить ею ответ. // но, раз файл блочного устройства появляется, приложите, пожалуйста, к вопросу вывод команды $ sudo fdisk -l /dev/sdb . кстати, чтобы я получил уведомление о вашем ответе в комментарии, упомяните меня примерно так: @alexanderbarakin .
2 ответа 2
если в кольцевом буфере linux-а (который можно просмотреть с помощью программы dmesg ) больше ничего не появилось, значит, само блочное устройство (usb-storage) — неработоспособно.
а микросхема usb-контроллера, «рассказывающая»: «есть у меня блочное устройство!», — искренне заблуждается.
похороните её с честью, в мусорном ведре.
раз файл блочного устройства всё-таки появляется, попробуйте создать на нём dos partition table и один раздел. например, так:
$ echo -e 'o\nn\n\n\n\n\nw' | sudo fdisk /dev/sdb $ sync
если после этого в каталоге не появится файл блочного устройства /dev/sdb1 , дополните, пожалуйста, вопрос полным выводом приведённой команды (начинающейся с echo ).
а если файл /dev/sdb1 появился, то можно попробовать создать на нём файловую систему:
К сожалению, у меня не хватает кармы написать комментарий, поэтому пишу как ответ. Мои извинения!
Вообще во флешке (во флеш-стике) находится две микросхемы: одна — собственно сама микросхема флеш-памяти, а другая — микроконтроллер.
Микроконтроллер имеет два интерфейса. Первый интерфейс — USB, через него идет обмен с компом. Второй интерфейс работает с микросхемой памяти.
В двух словах — что происходит при подключении флешки:
Комп видит, что к разъёму USB что-то «подцепилось». Компу нужно выяснить — что «это» из себя представляет. Это устройство передачи данных по прерыванию типа мышки, клавы. Или это устройство, работающее в реальном времени (звуковые колонки). Или это устройство массива данных? Для всех этих типов устройств комп должен установить (подобрать) соответствующий протокол обмена. В процессе определения типа устройства комп общается с микроконтроллером, запрашивает у него идентификаторы, дескрипторы и другую служебную информацию.
После того как комп «поймёт», что подключенное устройство является устройством массива памяти, он должен определить такие параметры как сколько разделов (выражаясь по-Линуксовому, или сколько дисков — выражаясь по-Виндовому) имеет устройство. Комп должен определить размеры разделов, начальный и конечный их адреса. Далее компу нужно знать какой тип файловой системы «накатан» на тот или иной раздел. Понятно, что эти данные микроконтроллер флешки не знает, да и не надо ему это знать! Сегодня эта флешка имеет один раздел, отформатированный в FAT32, а завтра продвинутый пользователь создаст на ней два раздела и «накатает» на них ext2.
Таким образом, на этом этапе комп должен получать информацию непосредственно из микросхемы флешь-памяти. А если она «убитая», то есть уже выработала свой ресурс, то микроконтроллер будет читать из нее мусор, а не достоверную информацию. Скорее всего процесс вычитывания информации из памяти «обломиться» по несовпадению контрольной суммы. А это значит, что микроконтроллер будет считать, что считывание из памяти было неудачно. Поэтому ничего полезного или значимого он не сможет «сказать» компу. Соответственно, и комп в свою очередь не сможет ничего определенного сказать пользователю относительно разделов и файловых систем.
Надеюсь, теперь Вам будет понятно, что и как происходит при подключении флешки, и что следует делать, если что-то не получается.
К стати, поскольку флешки изготовляются на базе разных микроконтроллеров, с разной тактовой частотой, а в самих микроконтроллерах записаны абсолютно разные микропрограммы, то становится понятно, почему флешки так сильно различаются по своему быстродействию.
update-grub не работает — носитель не найден
Я запускаю Ubuntu 20.04 LTS с LVM и UEFI на Thinkpad T480.
Всякий раз, когда я бегу sudo update-grub , Я получаю такой результат:
Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file . /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found Found linux image: /boot/vmlinuz-5.4.0-29-generic Found initrd image: /boot/initrd.img-5.4.0-29-generic /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found Found linux image: /boot/vmlinuz-5.4.0-28-generic Found initrd image: /boot/initrd.img-5.4.0-28-generic Found linux image: /boot/vmlinuz-5.4.0-21-generic Found initrd image: /boot/initrd.img-5.4.0-21-generic /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found /dev/sdb: open failed: No medium found Adding boot menu entry for UEFI Firmware Settings done
Мои изменения не вступают в силу после выполнения команды.
У меня нет тома под названием /dev/sdb. Я не понимаю, зачем ему это искать.
Как я могу исправить эту проблему?
1 ответ
Решение из этого комментария к отчету об ошибке на панели запуска:
Добавить global_filter = [ «r|/dev/sda|», «r|/dev/sdb|» ] в файл /etc/lvm/lvm.conf :
143 # Example 144 # Accept every block device: 145 # filter = [ "a|.*|" ] 146 # Reject the cdrom drive: 147 # filter = [ "r|/dev/cdrom|" ] 148 # Work with just loopback devices, e.g. for testing: 149 # filter = [ "a|loop|", "r|.*|" ] 150 # Accept all loop devices and ide drives except hdc: 151 # filter = [ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ] 152 # Use anchors to be very specific: 153 # filter = [ "a|^/dev/hda8$|", "r|.*|" ] 154 # 155 # This configuration option has an automatic default value. 156 # filter = [ "a|.*|" ] 157 global_filter = [ "r|/dev/sda|", "r|/dev/sdb|" ]
Бегать sudo update-grub перед фильтром:
Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' GRUB-Konfigurationsdatei wird erstellt … /dev/sda: open failed: No medium found /dev/sda: open failed: No medium found . . . Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-52-generic initrd-Abbild gefunden: /boot/initrd.img-5.4.0-52-generic Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-48-generic initrd-Abbild gefunden: /boot/initrd.img-5.4.0-48-generic /dev/sda: open failed: No medium found . . . Startmenüeintrag für UEFI-Firmware-Einstellungen wird hinzugefügt erledigt
Бегать sudo update-grub после фильтра:
Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' GRUB-Konfigurationsdatei wird erstellt … Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-52-generic initrd-Abbild gefunden: /boot/initrd.img-5.4.0-52-generic Linux-Abbild gefunden: /boot/vmlinuz-5.4.0-48-generic initrd-Abbild gefunden: /boot/initrd.img-5.4.0-48-generic Startmenüeintrag für UEFI-Firmware-Einstellungen wird hinzugefügt erledigt