Ядро без синхронизации: VFS: невозможно смонтировать root fs на неизвестном блоке (179,6), на котором работает Raspbian поверх NOOBS

26

При загрузке последовательность останавливается на следующем:

Не синхронизируется паника ядра: VFS: невозможно смонтировать root fs на unknown-block (179,6)

Что я могу сделать, чтобы мой Raspberry Pi 2 снова загрузился с использованием существующей установки Raspbian , так как он содержит много файлов и конфигураций, которые было бы слишком болезненно для воссоздания?

ПРИМЕЧАНИЕ: это , это и это связаны, но разные.

Влад Шнаковски
источник

Ответы:

28

Обратите внимание, что есть четкое различие между ошибками, основанное на числах в конце, и я не буду вдаваться в подробности, так как они могут быть легко обнаружены в Интернете при необходимости. Эти исправления предполагают, что у вас есть все необходимые соединения (питание, SD-карта, HDMI, проводная клавиатура, мышь) и вы используете Raspbian вместе с NOOBS.

Подробная информация об ошибке, заканчивающейся на 2, находится в конце ответа. Если ваше сообщение об ошибке заканчивается на 6 , вот так:

Ядро без синхронизации: VFS: невозможно смонтировать root fs в unknown-блоке (179, 6 )

вам нужно будет проверить и восстановить файловую систему:

  1. Запустите Малину, удерживая Shiftключ.
  2. Как только NOOBS загрузится, нажмите Alt-F2для доступа к командной строке восстановления.
  3. Войти с именем пользователя rootи паролем raspberry.
  4. Тип sudo fsck.ext4 -y /dev/mmcblk0p6. Это отсканирует и попытается восстановить поврежденную файловую систему (замените ext4 на тип вашего раздела, если это необходимо). Обратите внимание, что autoрежим fsck(т.е. только печатать fsckвместо fsck.ext4) не поддерживается.
  5. Типа, sudo shutdown -h nowчтобы выключить Малину чисто.
  6. Отключите кабель питания и подключите его снова. Raspberry должен начать нормально.

Если ваше сообщение об ошибке заканчивается на 2 , вот так:

Ядро без синхронизации: VFS: не удалось смонтировать root fs на unknown-block (179, 2 )

вполне вероятно, что проблема вызвана ошибкой обновления. Исправление включает в себя переключение 2 в 6 :

  1. Запустите Малину, удерживая Shiftключ.
  2. Нажмите Edit config (e)кнопку или нажмите e.
  3. Нажмите на cmdline.txtвкладку или нажмите right arrowна клавиатуре.
  4. Заменить:

root = / dev / mmcblk0p 2

с

root = / dev / mmcblk0p 6

  1. Нажмите OKи затем нажмите escapeна клавиатуре, чтобы продолжить последовательность загрузки.

Ваш Пи теперь должен загрузиться нормально. Если появляется та же ошибка, но с 6, выполните вышеуказанные шаги.


В некоторых случаях Pi может игнорировать изменения, сделанные в графическом интерфейсе NOOBS, и вы все равно увидите точно такую ​​же ошибку, с которой 2в конце загрузки. В этом случае ответ tktbjp может помочь:

На самом деле использовать режим восстановления просто. Я вошел в режим восстановления и нажал alt-F2 для входа в систему как root. Изменение cmdline.txt из графического интерфейса не работает.

После входа в систему как root с паролем raspberry, проверьте, есть ли каталог / boot. Скорее всего, его не будет. Если нет, то создайте его с помощью mkdir / boot. Затем используйте редактор vi для создания cmdline.txt.

#cd /boot

#vi cmdline.txt

в редакторе vi измените корень на mmcblk0p6. Мое содержимое cmdline.txt выглядит такdwc_otg.lpm_enable=0 console=ttyAM0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

сохраните файл тогда важно сделать синхронизацию.

#sync

Затем загрузите доску. Перекрестная проверка с использованием графического интерфейса, если cmdline действительно изменен. Мой PI B + сейчас работает

Влад Шнаковски
источник
1
вместо того, чтобы нажимать 'y' или вводить вручную, вы можете использовать опцию '-y' в fsck ...
Андрей Сапегин
1
Отличный совет, спасибо за помощь. Однако для меня это не сработало с командой sudo. Система не может найти его. Но это было прекрасно без него!
Roker Pivic
3
Запустить малину, удерживая клавишу Shift ? Я предполагаю, что вы имеете в виду физическую клавиатуру, потому что беспроводная клавиатура не будет работать так при загрузке
IgorGanapolsky
1
@IgorGanapolsky Я никогда не использовал беспроводную клавиатуру с моим Pi, поэтому я не знал об этой проблеме. Я обновил ответ, спасибо.
Влад Шнаковски
1
Я теперь решил свою проблему - это не имело никакого отношения к ответам, обсужденным здесь. Я не понял, как настроить образ диска. Поскольку я, похоже, больше не могу публиковать здесь свой ответ, я разместил его здесь как новый вопрос и ответ .
Билл
5

У меня была та же проблема, но с unknown-block (179.7), и первое решение работало нормально, просто заменив это:

sudo fsck.ext4 -y /dev/mmcblk0p6

с этим:

sudo fsck.ext4 -y /dev/mmcblk0p7

Я не эксперт, но надеюсь, что это может помочь другим.

tinobin
источник
1
Доступна ли команда fsck.ext4 на Mac?
Игорь Ганапольский
Нет, к сожалению это не так.
Дэвид Артманн
4

Чтобы решить суть проблемы (не обходной путь), если вы не можете загрузиться (или у вас нет «NOOBS»), вам необходимо:

  • извлеките SD-карту из вашего Pi и вставьте ее в кард-ридер на вашем компьютере с Linux.
  • если автоматически смонтировано, размонтируйте оба раздела. Проверьте правильное имя устройства с помощью fdisk -lи mount -l. В моем примере он монтируется как /dev/sdb1и /dev/sdb2. Итак, для размонтирования, использования umount /dev/sdb1и umount /dev/sdb2. ( БУДЬТЕ ВНИМАТЕЛЬНЫ, ЧТОБЫ ПРОВЕРИТЬ НОМЕР ВАШЕГО РАЗДЕЛА. «2» - это только МОЙ пример).
  • Теперь вы готовы приступить к проверке с исправлениями.
    • С помощью fdisk -lидентифицируйте раздел DOS и проверьте / исправьте его с помощью fsck.fat -y /dev/sdb1( Проверьте ваш правильный номер )
    • Также fdisk -lпоказывает ext4номер раздела. Исправьте это с помощью fsck.ext4 -y /dev/sdb2( проверьте ваш правильный номер )
  • Если это снова автоматически, umountоба снова. Если нет, вы готовы удалить со своего компьютера на Raspberry Pi и включить его.

Если это просто проблема с блоком, она, вероятно, будет запущена. Если Kernel Panicпродолжить, проверьте, не изменилось ли сообщение об ошибке на что-то другое. В этом случае вам следует снова поискать другие ответы или, возможно, подумать о перезаписи SD-карты с нуля.

Доктор Беко
источник
3

Я столкнулся с этой ошибкой после попытки установить Raspbian (Lite) на слишком маленькую SD-карту. Конечно, если бы я действительно посмотрел на вывод процесса dd, я бы увидел это, прежде чем вслепую положить карту в мой Pi:

$ dd bs=1m if=Downloads/2016-05-27-raspbian-jessie-lite.img of=/dev/rdisk3
Password:
dd: /dev/rdisk3: short write on character device
dd: /dev/rdisk3: Input/output error
969+0 records in
968+1 records out
1015808000 bytes transferred in 45.492548 secs (22329108 bytes/sec)

Я закончил тем, что установил Minibian .

Merlin83b
источник
2

Получил эту ошибку, заканчивающуюся 2 при дублировании известной хорошей карты. По сути, я копировал байты с оригинальной карты на новую / новую SD-карту dd. Я не ожидал никаких ошибок от этого простого процесса, поэтому представьте мое удивление, когда я столкнулся с этим сообщением:

Ядро без синхронизации: VFS: не удалось смонтировать root fs на unknown-block (179, 2 )

После поиска выяснилось, что свежая SD-карта оказалась немного меньше оригинальной.

Из-за этого не удалось смонтировать корневой раздел. И это, в свою очередь, привело к печально известному сообщению паники ядра. Я предполагаю, что ядро ​​попыталось добраться до блоков за концом SD-карты или обнаружило, что раздел (являющийся последним по порядку) не полностью помещается на SD-карту.

Поскольку я действительно хотел сохранить свои файлы и настройки, я сократил корневую файловую систему. Это включает в себя запуск resize2fsсначала, а затем fdiskнастроить раздел. Имейте в виду, что один инструмент сообщает размер в блоках по 4 КБ, другой работает со смещениями начала / остановки сектора 512 байт. Это действительно легко испортить. Поэтому сохраняйте резервные копии известных хороших изображений.

Вероятно, лучше сделать это на другом ПК или ноутбуке с кард-ридером. Не на самой малине.

Само собой разумеется, что у вас должно быть достаточно места в файловой системе, чтобы иметь возможность его сжать ...

Э. ван Путтен
источник
1

В моем случае я должен клонировать SD в другой SD, потому что оригинал был поврежден в этом секторе.

Для клонирования в Windows вы можете использовать этот инструмент: Win32 Disk Imager .

Чтобы сжать образ sd, если новый sd меньше исходного, вы можете использовать этот скрипт в linux vm, где вы поделились образом sd: PiShrink .

Наконец, если вы хотите увидеть всю процедуру в этом видео .

Francesco
источник