Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: помогите восстановить загрузку системы  (Прочитано 7419 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #60 : 08 Января 2016, 16:02:47 »
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)Вот так укатятся все ядра, кроме двух последних.
Ну да. Только пока мы не попали в ситему эта команда будет пытаться удалять ядра с LiveCD.

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #61 : 08 Января 2016, 16:11:06 »
dasha_dasha,
давайте еще разок так попробуем последовательно выполнить:
set root=(hd0, gpt2)
linux /vmlinuz-3.19.0-25-generic root=/dev/sda5
initrd /initrd.img-3.19.0-25-generic
boot

Пользователь решил продолжить мысль 08 Января 2016, 16:15:38:
проверил на виртуалке все получилось, а вот с root=UUID=... зависало, но и на initrd не ругался, хотя конечно у меня загрузчик не покалечен, но тем не менее...
« Последнее редактирование: 08 Января 2016, 16:15:38 от F12 »

Оффлайн dasha_dasha

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #62 : 08 Января 2016, 16:40:19 »
F12,
грузился, грузился, попросил ввести пароль от диска, я ввела, появился BusyBox.
сейчас у меня его консоль (initramfs).
Немного погуглила, у всех я вижу перед Bysybox у всех ошибки, у меня же никаких ошибок нет...

Пользователь решил продолжить мысль 08 Января 2016, 17:33:52:
ввела exit, вышло
(Нажмите, чтобы показать/скрыть)
и больше ни на что не реагирует
« Последнее редактирование: 08 Января 2016, 17:33:52 от dasha_dasha »

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #63 : 08 Января 2016, 17:44:08 »
dasha_dasha,
что-то я в предыдущем своем сообщении очипятылси  :-[

давай еще разset root=(hd0,2)
linux /vmlinuz-3.19.0-25-generic root=/dev/sda2
initrd /initrd.img-3.19.0-25-generic
boot

И да, полное название ядра помнить не обязательно, просто вбивай linux /vml и далее жми tab - консоль предложит из чего выбрать, а если вариант только один, то сама и допишет, тоже самое касается и initrd

Пользователь решил продолжить мысль 08 Января 2016, 17:47:16:
...
ввела exit, вышло
(Нажмите, чтобы показать/скрыть)
и больше ни на что не реагирует
ну, дык, если на exit отреагировала, то должна и на другие sh команды реагировать... попробуй login ::)
« Последнее редактирование: 08 Января 2016, 17:47:16 от F12 »

Оффлайн dasha_dasha

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #64 : 08 Января 2016, 18:17:56 »
F12,
а тут такого нет,вот что есть

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #65 : 08 Января 2016, 18:37:24 »
dasha_dasha,
а прошлый раз Вы так и вбивали?
Цитировать
set root=(hd0, gpt2)
linux   /vmlinuz-3.19.0-25-generic root=/dev/sda5
initrd   /initrd.img-3.19.0-25-generic
boot
- т.е. с пробелом в hd0, gpt2 и root=/dev/sda5, а не root=/dev/sda2

ну, я уже совсем не соображаю к концу дня... может попробовать hd0, gpt2(как и в прошлый раз) и linux /vmlinuz-3.19.0-25-generic с root=/dev/sda2 и если снова выкинет в initramfs попробовать вбить login, я тут правда на счет синтаксиса не знаю, но что-то типа этого помнится...

Ну в любом случае идей других нет...  :-\  может кто другой что дельное подскажет ::)
 

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #66 : 08 Января 2016, 20:17:15 »
Попробовал поставить Ubuntu на виртуалку с шифрованием домашней папки и автоматической разметкой диска на разделы. Именно так установщик и разбивает диск, то есть 255 Mb под /boot и все остальное под шифрованный корень. Так что автор такую разметку не сама придумала. :)

Попробую смоделировать эту проблему на виртуалке (испорчу как-нибудь раздел с /boot и попытаюсь восстановить), если получится, то отпишусь.

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #67 : 08 Января 2016, 20:37:26 »
Heider,
да ненужно ничего портить, просто нажми "c" пока GRUB ждет, чтоб попасть в консоль...
ну и далее, как в сообщении #65

Оффлайн dasha_dasha

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #68 : 08 Января 2016, 22:25:22 »
F12,
в первый раз вбивала root=/dev/sda1 а так все тоже самое

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #69 : 09 Января 2016, 14:07:22 »
Я пробовал на виртуалке смоделировать похожую ситуацию. Установил систему в пустой диск с шифрованием всего диска способом, который предлагает установщик по умолчанию. Он так же как у автора вынес /boot на отдельный маленький нешифрованный раздел. Дальше я загрузился LiveCD и намеренно "повредил" (спаковал в архив) файлы в разделе /boot. Система так же, как у автора перестала загружаться.

Приступаем к лечению.

Создаем точку монтирования для раздела boot
sudo mkdir /mnt/boot
Смотрим, как система назвала наши разделы
sudo blkidраздел с /boot будет иметь тип фс TYPE="ext2", а шифрованный корень - TYPE="crypto_LUKS"

запоминаем или записываем на бумажке, у меня получилось:
sda5 для   /
sda1 для   /boot

Обозначим корневой раздел sdaX (у меня это sda5), а загрузочный /boot обозначим sdaY (у меня sda1), а Вы подставьте свои значения.

Создаем виртуальный раздел с нашим корнем:
sudo cryptsetup luksOpen /dev/sdaX sdaX_crypt (внимание: вместо X после sda в двух местах подставьте свое значение)
по запросу Enter passphrase for /dev/sdaX: вводим пароль, которым шифровали раздел

Монтируем уже расшифрованный виртуальный корневой раздел
sudo mount /dev/mapper/ubuntu--vg-root /mnt
Монтируем раздел /boot
sudo mount /dev/sdaY /mnt/boot(внимание: вместо Y подставьте свое значение)

Монтируем системные процессы и устройства, чтобы у нас в новом корне работал интернет и все остальное
sudo cp -L /etc/resolv.conf /mnt/etc/
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys

Переходим в среду нашего расшифрованного и примонтированного корня:
sudo chroot /mnt /bin/bach
Если все прошло благополучно, то изменится приглашение командной строки, будет что-то вроде root@ubuntu:/#

Теперь мы уже находимся в корне своей зашифрованной системы и можем делать все операции по установке и удалению пакетов от ее имени. Например, можем почистить систему от старых ядер:
apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)Можно работать без sudo, так как мы и так действуем от имени суперпользователя.

Затем можно для пущей чистоты сделать
apt-get autoremove
Проверяем результат:
ls /bootдожны остаться по два файла ядер последних версий и дополнительные файлы initrd и проч.

Если файлов ядра по какой-нибудь причине не оказалось, или они повреждены, ставим ядро командой
apt-get install linux-image-generic
apt-get install linux-headers-generic

Если поврежден только initrd лечим командой
update-initramfs -c -k all
Предыдущие команды (установки ядра или initrd) должны обновить меню загрузчика автоматически, если эти команды не запускались, то запускаем обновление вручную:
update-grub
Выходим из chroot
exit
Перезагружаемся и запускаемся уже с шифрованного диска. Все должно работать.

Зы: для входа систему с шифрованным корнем с LiveCD, чтобы не набирать каждый раз команды расшифрования и монтирования, можно написать коротенький скрипт и разместить его на LiveCD, тогда можно будет заходить в систему одной командой. Это может понадобиться в будущем, если опять появятся какие-нибудь сбои.
« Последнее редактирование: 09 Января 2016, 15:12:16 от Heider »

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #70 : 09 Января 2016, 14:50:23 »
Heider,
серьезную работу проделал :)

И добавить то, собственно, нечего...  ;)
- ну разве-что, в идеале, версии системы на LiveCD и системы на ПК, должны быть идентичны, хотя, может и не обязательно, я не проверял... но известны случаи, когда это имело значение (смотри в комментах к статье по ссылке)

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #71 : 09 Января 2016, 14:59:35 »
- ну разве-что, в идеале, версии системы на LiveCD и системы на ПК, должны быть идентичны, хотя, может и не обязательно, я не проверял... но известны случаи, когда это имело значение (смотри в комментах к статье по ссылке)
Я тестировал ubentu 14.04 LTS для архитектуры i386 с графсредой Unity, и LiveCD такой же, именно с него и ставил систему в шифрованный раздел. Предполагаю, что полное совпадение версий необязательно, достаточно совпадения архитектур (иначе, chroot не запустится). Но может быть, ты и прав, лень проверять. :) Но и в этом случае, можно просто скачать с инета LiveCD с системой нужной версии и работать с него.

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #72 : 09 Января 2016, 15:09:27 »
Heider,
еще один тест проведи, пожалуйста, попробуй аварийную загрузку системы, т.е. из командной строки GRUB.
Хочу понять для себя, почему нашего ТС в завершении уже как бы нормально идущей загрузки выкидывает в консоль (initramfs), не в шифровании ли всего диска кроется причина...

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #73 : 09 Января 2016, 15:25:22 »
F12,
На это я уже тоже натыкался. В моем случае был кривой initrd, и меня тоже при загрузке дальше (initramfs) не пускало. initrd должен содержать папки со скриптами для дешифрования, а initramfs правильные hooks (в народе их называют по-разному: хуки, крючки) - скрипты для монтирования шифрованного раздела на этапе загрузки системы. Все это при правильной подготовке chroot создается автоматически командой
update-initramfs -c -k allили просто переустановкой ядра.
« Последнее редактирование: 09 Января 2016, 15:30:27 от Heider »

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 4496
    • Просмотр профиля
Re: помогите восстановить загрузку системы
« Ответ #74 : 09 Января 2016, 15:40:30 »
...был кривой initrd
дык, у ТС штук 5 initrd.img в /boot было, и что все кривые?.. - маловероятно ::)

 

Страница сгенерирована за 0.089 секунд. Запросов: 23.