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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Восстановление загрузчика grub2 - EFI  (Прочитано 62619 раз)

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

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
Восстановление загрузчика grub2 - EFI
« : 23 Сентября 2017, 19:13:11 »
 /dev/sda1 - efi раздел
 /dev/sda3 - корень


Код: (bash) [Выделить]
sudo mount /dev/sda3
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo cp /etc/resolv.conf /mnt/etc/
modprobe efivars
sudo chroot /mnt
 
apt-get install --reinstall grub-efi-amd64

У меня пытается записать загрузчик на /dev/sdb1, почему то. Я вот по этой инструкции всегда восстанавливал, может где то опечатался или не то переустанавливаю?

Загрузчик слетел по той причине, что восстановил загрузчик windows, а он слетел, потому что Ubuntu переустанавливал. Тема в беседке болтается где то.

Оффлайн symon.2014

  • Забанен
  • Старожил
  • *
  • Сообщений: 1225
  • Ковырятель страны OS.
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #1 : 23 Сентября 2017, 19:38:19 »
sudo mount /dev/sda3
а продолжение где?
sudo mount /dev/sda3 /mnt

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #2 : 23 Сентября 2017, 20:28:41 »
Опечатался, верно заметили. Но я еще раз выполнял данные команды и писал c /mnt
Я копировал код с сайта, с мануала, не все скопировал видать

Насколько я понял, grub-efi пытался устаноаиться на /dev/sdb1, так как я видел его в выхлопе после команды переустановки пакета grub-efi
« Последнее редактирование: 23 Сентября 2017, 20:30:34 от ConnaiSSant »

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5496
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #3 : 23 Сентября 2017, 20:35:28 »
apt-get install --reinstall grub-efi-amd64
Так ты пакет же ставишь?
А grub-install?
grub-install --efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub- примерно. Пути сверь со своими.

Оффлайн ConnaiSSant

  • Автор темы
  • Активист
  • *
  • Сообщений: 458
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #4 : 23 Сентября 2017, 20:43:03 »
ubuntu@ubuntu:~$ sudo fdisk -l  /dev/sda
(Нажмите, чтобы показать/скрыть)

Код: (bash) [Выделить]
ubuntu@ubuntu:~$ sudo mount /dev/sda3 /mnt/
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/boot/efi
ubuntu@ubuntu:~$ for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
ubuntu@ubuntu:~$ sudo cp /etc/resolv.conf /mnt/etc/
ubuntu@ubuntu:~$ modprobe efivars
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# apt-get install --reinstall grub-efi-amd64
(Нажмите, чтобы показать/скрыть)

Код: (bash) [Выделить]
root@ubuntu:/# grub-install
Installing for x86_64-efi platform.
Installation finished. No error reported.
Цитировать
grub-install --efi-directory=/boot/efi --boot-directory=/boot/efi/EFI --bootloader-id=grub

А это из chroot выполнять?







Пользователь добавил сообщение 23 Сентября 2017, 20:45:52:
- примерно. Пути сверь со своими.

Благодарю, достаточно было grub-install. Загрузился с системы.
« Последнее редактирование: 23 Сентября 2017, 20:45:52 от ConnaiSSant »

Оффлайн spectr

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #5 : 25 Января 2023, 17:25:33 »
доброго времени суток.
Ubuntu 20.04 x64 Server. GPT, UEFI.
После установки сервисов для работы с KVM по этому руководству:
https://obu4alka.ru/ustanovka-i-nastrojka-kvm-na-ubuntu-server.html
система перестала загружаться, зависает на initramfs.

Причиной послужило подмена имени раздела, на котором установлен загрузчик GRUB:
grub-probe -t device /boot/grub
выдает:
/dev/mapper/root-98d1f8b1f435

должно быть:
/dev/sda2

В меню загрузчика граб исправляю вручную адрес раздела и система загружается нормально. Но команда update-grub завершается ошибкой:
grub-probe: error: cannot find a GRUB drive for /dev/mapper/root-98d1f8b1f435.  Check your device.map.
вывод lsblk:
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                   7:0    0  63,2M  1 loop /snap/core20/1738
loop1                   7:1    0  63,3M  1 loop /snap/core20/1778
loop2                   7:2    0  91,9M  1 loop /snap/lxd/24061
loop3                   7:3    0  49,8M  1 loop /snap/snapd/17950
loop4                   7:4    0  49,6M  1 loop /snap/snapd/17883
loop5                   7:5    0  91,8M  1 loop /snap/lxd/23991
sda                     8:0    0 223,6G  0 disk
├─sda1                  8:1    0   1,1G  0 part /boot/efi
├─sda2                  8:2    0   200G  0 part
│ └─root-98d1f8b1f435 253:0    0   200G  0 dm   /
└─sda3                  8:3    0  22,5G  0 part [SWAP]
sdb                     8:16   0   1,8T  0 disk
└─sdb1                  8:17   0   1,8T  0 part /mnt/stuff
sdc                     8:32   0   931G  0 disk
└─sdc1                  8:33   0   931G  0 part /mnt/cloud

вывод df -h:
Filesystem                     Size  Used Avail Use% Mounted on
udev                           7,8G     0  7,8G   0% /dev
tmpfs                          1,6G  2,4M  1,6G   1% /run
/dev/mapper/root-98d1f8b1f435  196G   14G  173G   8% /
tmpfs                          7,8G     0  7,8G   0% /dev/shm
tmpfs                          5,0M     0  5,0M   0% /run/lock
tmpfs                          7,8G     0  7,8G   0% /sys/fs/cgroup
/dev/sdc1                      916G  4,4G  865G   1% /mnt/cloud
/dev/sda1                      1,1G  5,3M  1,1G   1% /boot/efi
/dev/loop0                      64M   64M     0 100% /snap/core20/1738
/dev/sdb1                      1,8T  6,4G  1,7T   1% /mnt/stuff
/dev/loop1                      64M   64M     0 100% /snap/core20/1778
/dev/loop2                      92M   92M     0 100% /snap/lxd/24061
/dev/loop3                      50M   50M     0 100% /snap/snapd/17950
/dev/loop4                      50M   50M     0 100% /snap/snapd/17883
/dev/loop5                      92M   92M     0 100% /snap/lxd/23991
tmpfs                          1,6G     0  1,6G   0% /run/user/1000

переустановка командой grub-install так же завершается ошибкой:
grub-install: error: cannot find a GRUB drive for /dev/mapper/root-98d1f8b1f435.  Check your device.map.
Система уже вся настроена, переустанавливать ее не самый оптимальный вариант.
Подскажите, пожалуйста, как исправить GRUB?

Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 169
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #6 : 25 Января 2023, 17:31:53 »
Самый простой вариант следующий:
apt-get install python-software-properties
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
сделать эту установку нужно с live-cd или флешки загрузочной,выбрать восстановление по умолчанию и будет вам счастье.

Оффлайн spectr

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #7 : 25 Января 2023, 18:32:47 »
Dosifei,
спасибо за столь скорый ответ. А возможно обойтись без загрузочной флешки?
может быть можно из работающей ОС отредактировать конфиг GRUB в той ее части, где прописан путь до загрузочного раздела?
Ну и, судя по выводу lsblk, может быть достаточно отредактировать конфиг, в котором указана точка монтирования корневого раздела ОС?
fstab я смотрел - но там нет упоминаний о /dev/mapper/root-98d1f8b1f435.

Поправьте меня, пожалуйста, если мои суждения в корне не верны.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5496
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #8 : 25 Января 2023, 19:34:30 »
Как ты из незагружающейся системы поправишь grub?
Также если система загружается, то и править не надо, но если есть желание- то текстовым редактором grub.cfg.
Можно обойтись без лайва, из консоли grub или чрут из второй существующей линукс-системы

Оффлайн spectr

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #9 : 25 Января 2023, 20:00:41 »
Morisson,
во время загрузки, загрузчик на 15 секунд показывает меню с параметрами загрузки. Я нажимаю E на клавиатуре и попадаю в редактор GRUB, в нем нахожу строку, начинающуюся со слова linux и заменяю содержимое параметра root= на адрес раздела, на котором установлен GRUB (пишу /dev/sda2 вместо /dev/mapper/root-98d1f8b1f435).

Нажимаю, F10 и система успешно загружается. Но когда снова ребутишь систему, тогда указанные мероприятия нужно проводить снова.
Хочу поправить GRUB 1 раз и навсегда, а не делать это при каждой загрузке системы.

Пользователь добавил сообщение 25 Января 2023, 20:23:16:
На сколько я понял у меня после установки супервизора KVM произошло перемещение корневой файловой системы с раздела /dev/sda2 в логический том «root» (/dev/mapper/root-98d1f8b1f435). Так вот, как можно вернуть все обратно?

ну в граб появилась ссылка на /dev/mapper/root-98d1f8b1f435, однако, она не работает как следовало бы.

Пользователь добавил сообщение 25 Января 2023, 21:15:05:
прежде всего нужно понять, что же произошло.
$ sudo grub-install /dev/sda
Installing for x86_64-efi platform.
grub-install: error: cannot find a GRUB drive for /dev/mapper/root-98d1f8b1f435.  Check your device.map.

$ sudo blkid
/dev/sdc1: UUID="870e8191-83d9-49fc-814a-d3de656574a6" TYPE="ext4" PARTUUID="1a0cc2cf-ea0c-4231-b4b1-b0c96e823065"
/dev/sda1: UUID="BC4A-1E2C" TYPE="vfat" PARTUUID="c47d6eef-c83a-493f-9750-876df04ab8a6"
/dev/sda2: UUID="119d50f5-bfbe-4cd7-a70f-d6ca540b15d1" TYPE="ext4" PARTUUID="cb63913d-31dd-40ad-82aa-ef5ff1a4110c"
/dev/sda3: UUID="ed44a127-74d2-4fa6-8e29-d671ed5b9b44" TYPE="swap" PARTUUID="f038da5a-572b-49fe-b9b0-0253319d3df2"
/dev/sdb1: UUID="80df44b8-e739-4409-a9b2-f24b161e8fef" TYPE="ext4" PARTUUID="dd81ce96-6443-4947-aee5-ac1e32b95fdc"
/dev/mapper/root-98d1f8b1f435: UUID="119d50f5-bfbe-4cd7-a70f-d6ca540b15d1" TYPE="ext4"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"

здесь обращаю внимание, что "/dev/mapper/root-98d1f8b1f435" и "/dev/sda2" имеют одинаковый UUID. Что это все значит?
« Последнее редактирование: 25 Января 2023, 21:16:07 от spectr »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6018
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #10 : 26 Января 2023, 05:32:57 »
Цитировать
поправить GRUB 1 раз и навсегда, а не делать это при каждой загрузке системы.
Для этого сущеcтвует файл /etc/grub.d/40_custom. Все, что тебе нужно, добавляй в него. После этого выполни "update-grub".
Вот только сам не запутайся, о загрузчике какой системы идет речь: реальной или виртуальной.

Цитировать
"/dev/mapper/root-98d1f8b1f435" и "/dev/sda2" имеют одинаковый UUID
Вот и загляни в /dev/mapper, /dev/disk. Может там найдешь подсказки. Сравни в реальной и виртуальной системе.

Оффлайн spectr

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #11 : 26 Января 2023, 08:26:07 »
Цитировать
Сравни в реальной и виртуальной системе.
Хочу отметить, что хостовую ОС я ставил без LVM и этих разделов "dm" здесь быть не должно, на сколько я понимаю.
После установки virsh и ее зависимостей, гостевых ОС еще не было создано. Виртуальные жесткие диски KVM я предполагал хранить в структуре папок (Directory-based Storage Pools). Появление "root-98d1f8b1f435 -> ../dm-0" с обрушением GRUB на рабочем сервере после установки virsh стало для меня полнейшей неожиданностью, поскольку прежде я это испытал на другом ПК, так называемой своей "песочнице" и подобного там не было.

Вот вывод команд:

$ ls /dev/mapper -all
total 0
drwxr-xr-x  2 root root      80 янв 25 18:20 .
drwxr-xr-x 18 root root    4160 янв 25 19:26 ..
crw-------  1 root root 10, 236 янв 25 18:20 control
lrwxrwxrwx  1 root root       7 янв 25 18:20 root-98d1f8b1f435 -> ../dm-0

я здесь не понимаю что за /dev/mapper (вроде от LVM, но его у меня во время установки хостовой ОС не было), и куда он ссылается, что за "dm-0"?

$ ls /dev/disk/by-uuid/ -all
total 0
drwxr-xr-x 2 root root 140 янв 25 18:20 .
drwxr-xr-x 6 root root 120 янв 25 18:20 ..
lrwxrwxrwx 1 root root  10 янв 25 18:20 119d50f5-bfbe-4cd7-a70f-d6ca540b15d1 -> ../../sda2
lrwxrwxrwx 1 root root  10 янв 25 18:20 80df44b8-e739-4409-a9b2-f24b161e8fef -> ../../sdb1
lrwxrwxrwx 1 root root  10 янв 25 18:20 870e8191-83d9-49fc-814a-d3de656574a6 -> ../../sdc1
lrwxrwxrwx 1 root root  10 янв 25 18:20 BC4A-1E2C -> ../../sda1
lrwxrwxrwx 1 root root  10 янв 25 18:20 ed44a127-74d2-4fa6-8e29-d671ed5b9b44 -> ../../sda3

Здесь, как я понимаю, все правильно.

На самом деле, более всего заботит восстановление правильной конфигурации GRUB, чтобы систему можно было запускать удаленно. Что подскажете делать?


Пользователь добавил сообщение 26 Января 2023, 08:40:06:
у меня сейчас стало так:
$ lsblk
sda                     8:0    0 223,6G  0 disk
├─sda1                  8:1    0   1,1G  0 part /boot/efi
├─sda2                  8:2    0   200G  0 part
│ └─root-98d1f8b1f435 253:0    0   200G  0 dm   /
└─sda3                  8:3    0  22,5G  0 part [SWAP]
а мне нужно сделать так:
$ lsblk
sda                     8:0    0 223,6G  0 disk
├─sda1                  8:1    0   1,1G  0 part /boot/efi
├─sda2                  8:2    0   200G  0 part /
└─sda3                  8:3    0  22,5G  0 part [SWAP]

И обновить об этом информацию в GRUB, но как это все сделать я не знаю.
« Последнее редактирование: 26 Января 2023, 08:40:59 от spectr »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6018
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #12 : 26 Января 2023, 08:48:02 »
Цитировать
восстановление правильной конфигурации GRUB
А ты хотя-бы посмотрел, что там есть? Раз уж о нем речь, то покажи содержимое grub.cfg.


Пользователь добавил сообщение 26 Января 2023, 08:52:34:
Цитировать
хостовую ОС я ставил без LVM и этих разделов "dm" здесь быть не должно
Не далее как на днях, в соседней теме, меня уверяли, что LVM ставится по-умолчанию...

Цитировать
Появление "root-98d1f8b1f435 -> ../dm-0" с обрушением GRUB на рабочем сервере после установки virsh...
Ты сам и ответил. Кто такой "virsh", для меня не ведомо.
« Последнее редактирование: 26 Января 2023, 08:56:33 от andytux »

Оффлайн spectr

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #13 : 26 Января 2023, 09:33:51 »
Цитировать
А ты хотя-бы посмотрел, что там есть? Раз уж о нем речь, то покажи содержимое grub.cfg.
Да, смотрел. Очень много упоминаний этого "root-98d1f8b1f435". Это еще больше ввело меня в замешательство.

(Нажмите, чтобы показать/скрыть)

Цитировать
Ты сам и ответил. Кто такой "virsh", для меня не ведомо.
virsh — утилита для командной строки Linux, предназначенная для управления виртуальными машинами и гипервизорами KVM и Xen. Virsh использует API libvirt.
Не ожидал от нее такого эффекта, поскольку испытал ее сначала на VirtualBox-машине, потом на другой реальной машине. И только после этого запустил на рабочем сервере. Ничто не предвещало беды.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5496
    • Просмотр профиля
Re: Восстановление загрузчика grub2 - EFI
« Ответ #14 : 26 Января 2023, 09:36:27 »
Ничто не предвещало беды.
так у тебя ось- гость? Система в виртуалке?

 

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