2015-07-15 13 views
0

В результате экспериментов с разработкой драйвера PCI у меня произошло сбой ядра. Теперь я в ситуации, когда ОС загружается и снова рушится, так как она пытается загрузить мой неисправный драйвер. Каким образом это исправить, возможно, не загрузите мой драйвер, чтобы я мог войти в систему в безопасном режиме, а затем исправить мой драйвер или, по крайней мере, удалить из системы?ОШИБКА OracleSolaris 11.2 при загрузке

UPDATE После прочтения http://docs.oracle.com/cd/E36784_01/pdf/E36801.pdf и другие документы, по-видимому, что шаги заключаются в следующем:

1) загрузка с соляриса CD

2) выберите Shell

3) zpool import -R /a rpool

4) zfs mount rpool/ROOT/zfsBE

5) cd /a и удалите неисправный драйвер с /usr/kernel/drv/

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

UPDATE2 Таким образом, выше фикс-сценарий почти работал для меня, что сказал, что я в состоянии импортировать rpool и это автоматически устанавливается /export/home под /a, и это позволило мне удалить мой неисправный драйвер, так как раньше я сделал софт-ссылку с /usr/kernel/drv; в основном я смог перезагрузить и запустить Solaris без проблем и никаких сообщений об ошибках, поэтому я даже не запускал fsck. Но то, что не работает для меня, это zfs mount rpool/ROOT/solaris, который является корневым FS, потому что я хотел удалить ссылку с /usr/kernel/drv. Сообщение об ошибке говорит, что я должен делать это с mount.

BTW, сейчас я копирую свой драйвер на /tmp и создаю ссылку /usr/kernel/drv/amf64/mydrv, поэтому в случае сбоя система перезагрузится и очистит раздел/tmp. Мне нужно будет потратить некоторое время в beadm позже.

Спасибо.

+3

Вот почему вы должны использовать beadm для создания дополнительной загрузочной среды, поэтому вам просто нужно выбрать другую запись меню grub при загрузке, чтобы вернуться к работающему ядру. Это поможет, если вы это сделаете, прежде чем устанавливать сломанный драйвер. – alanc

+0

@alanc. В самом деле. Первое, что я узнал на ранней стадии разработки моего первого модуля ядра, - «У вас есть план перезагрузки без этого модуля». –

ответ

1

Загрузите с CD/DVD или прочитайте около page 81 of this document, предполагая, что вы работаете на оборудовании x86.

В принципе, вам необходимо обойти загрузку устройства. Если у вас нет опции GRUB в безопасном режиме (опять же, предполагая x86), или если безопасный режим все еще загружает ваш драйвер, то, вероятно, намного проще просто загружать CD/DVD Solaris, монтировать/импортировать корневой пул и удалите драйвер из файловой системы.

+0

спасибо за ответ. Это машина x86, что такое опция GRUB в безопасном режиме и как она может помочь? Не могли бы вы также показать, как монтировать/импортировать мой корневой пул, как только я загрузился с компакт-диска Solaris? – Mark

+0

см. Мое обновленное исходное сообщение, в частности команды, которые я нашел для импорта и монтирования root FS. Благодарю. – Mark

+1

Да, это самый простой способ, если вы не получите надежную или безопасную загрузку.Solaris 10 предоставит такой вариант на x86, хотя я не нашел в нем документации для Solaris 11 - см. Http://docs.oracle.com/cd/E26505_01/html/E29492/ggqdn.html. И как заметил в своем комментарии @alanc, создание резервной загрузочной среды - это другой метод. См. Http://docs.oracle.com/cd/E36784_01/html/E36803/index.html, как это сделать. Имейте в виду, что один побочный эффект нескольких загрузочных сред в одном корневом пуле ZFS - это неприятный беспорядок клонов файловой системы и моментальных снимков. –