Невозможно успешно загрузиться на рабочий стол после принудительного выключения

631
coolcat007

Я работаю с Распбианом Уизи. Со вчерашнего дня я не смог загрузить свой RPi после принудительного выключения (отключив шнур питания). С тех пор все начинается следующим образом: http://pastebin.com/QiEbda2y

Обратите внимание на следующие несколько строк:

 [ 2.176606] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. ... [ 2.220626] Starting init: /etc/init exists but couldn't execute it (error -13) 

Затем начинается ш. Когда я пытаюсь запустить bash, он выдает следующие предупреждения:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell root@(none):/# 

Обратите внимание, что он сказал root@(none)

Кроме того (несколько ожидаемый) загрузочный диск не смонтирован, и (совсем не ожидаемый) корневой диск находится в режиме только для чтения. Я могу смонтировать оба в режиме rw с помощью:

fsck /dev/mmcblk0p1 (needed because dirty bit is set) mount /boot mount -o remount,rw / 

Когда я запускаю ps, он говорит мне бежать mount -t proc proc /proc. Это также необходимо для использования ifup / ifdown.

Если я не использую ifdown / ifup на eth0, мой ifconfig будет пустым, но простое использование ifup заставляет его жаловаться, что eth0 уже запущен.

Я могу запустить службу ssh, используя ее, service ssh startи она будет доступна после предыдущей настройки eth0.

такие программы, как vim, все еще работают, но такие вещи, как shutdown -r nowне работали, так как выключение не распознавалось (где это было раньше). Печатание exitдает ошибки (не при выходе из bash, а из sh, который является pid 1):

 Kernel panic - not syncing: Attempted to kill init! exitcode=00000800 ... 

После этого я изменил cmdline.txt для запуска корневого раздела на USB-диске /dev/sda2(он не был подключен в первый раз, когда я столкнулся с проблемой, он был подключен во время копирования dmesg в pastebin). USB был создан, чтобы содержать Распби Джесси. Теперь он работал, и рабочий стол загружался (хотя мышь и клавиатура перестали работать после того, как был показан рабочий стол), и я мог подключиться к нему по ssh без какой-либо настройки (кроме смены паролей на учетной записи pi и root)

Изменив cmdline.txt обратно на / dev / mmcblk0p2, на котором был расположен старый корень, и после правильной перезагрузки shutdown -r nowвсе старые проблемы сохранились, за исключением того, что мне не пришлось fsck раздел / boot.

До принудительного завершения работы, вызвавшего проблемы, я провел apt-get update / upgrade на сумму около года.

Может кто-нибудь помочь мне вернуть мою распбианую установку в рабочее состояние?

Существуют ли какие-либо инструменты, которые могут помочь мне восстановить неизвестные сломанные части операционной системы?

0
Я думаю, что SD-карта deaad: / djsmiley2k 7 лет назад 0
@ djsmiley2k Нет, это не так, поскольку файловая система все еще полностью доступна, и когда старый / boot находится на SD, а чистая установка / находится на USB, он работает просто отлично. coolcat007 7 лет назад 0
Спасение файла, промывание и переустановка не вариант? Sam3000 7 лет назад 1
@ Sam3000, это последний вариант, но я ищу решение, которое не нужно переустанавливать. coolcat007 7 лет назад 0
Возможно, некоторые файлы повреждены. Нет другого выбора, кроме @ Sam3000. Don't Root here plz... 7 лет назад 0
Ошибка -13 - «Отказано в доступе» (EACCESS). Каковы разрешения для / etc / init? Кроме того, я запутался, почему он пытается * выполнить * / etc / init, он должен выполнить `/ sbin / init` и искать конфигурацию в / etc / init. Я согласен, что, возможно, файлы были повреждены, если вы не можете их точно определить, переустановить проще. dirkt 7 лет назад 0
@dirkt Я надеялся найти инструмент, который сможет проверить мой дистрибутив Linux (используя контрольные суммы или что-то еще). На момент допроса я не смог переустановить, потому что у меня не было другого устройства чтения карт SD (мой ноутбук, который я использовал в первый раз, умер). Теперь, когда у меня есть новый ноутбук, я попытаюсь переустановить его (теперь мне нужно только выяснить, как скопировать мой сервер Tomcat на новую установку -_-) coolcat007 7 лет назад 0
Это инструменты для [проверки установленных пакетов] (http://serverfault.com/questions/322518/can-dpkg-verify-files-from-an-installed-package), но для этого требуется всего лишь переустановка, и он не проверяет все файлы (не все имеют md5sums). dirkt 7 лет назад 1

0 ответов на вопрос