LM 19.3 x64 Cinnamon
После попытки переустановки загрузчика GRUB c помощью программы Boot Repair, программа выдала ошибку. При перезагрузке компа загрузочного меню нет, только минимал grub>. При работе Boot Repair выдала лог:
http://paste.ubuntu.com/p/3FgtBnvYfk/
Прошу помочь разобраться, что не так и каковы возможности исправления. На диске три системы Win7, Mageia и LinuxMint. Минт как основной и загрузчик был его, но имел много мусора и правка с grub customizer сводилась в ноль после каждой команды update-grub (и обновления ядра).
Восстановить Grub
1. Загружаете компьютер с LinuxMint LiveUSB.
2. Открываете консоль и вводите:
[console]sudo mount /dev/sdaX /mnt[/console]
3. Если у Вас GPT и UEFI, то дополнительно вводите:
[console]sudo mount /dev/sdaY /mnt/boot/efi[/console]
4. Перестанавливаете загрузчик:
[console]sudo grub-install --root-directory=/mnt /dev/sda[/console]
5. Перезагружаетесь:
[console]reboot[/console]
sdaX и sdaY замени́те на свои номера разделов. sdaX − корневой раздел LinuxMint, sdaY − раздел EFI.
Rizado, попробовал - результат тот же - минимал grub> при загрузке. (выполнив LiveUSB и указанные команды, у меня MBR и sda5 с LM).
Это я уже пытался делать загрузив LM19.3 с помощью груба внешнего диска , где были прописаны эти системы, и sudo grub-install.
vlalu, обратите внимание на параметры в grub-install.
Rizado, имеете ввиду:
sudo grub-install --root-directory=/mnt /dev/sda,
где указать sda4 - создал диск именем /boot (BoorRepair потребовал при первой попытке).
vlalu, почему sda4, если у Вас корневой раздел LinuxMint на sda5???
Rizado, да конечно sda5, недопонял.
[console]mint@mint:~$ sudo mount /dev/sda5 /mnt
mint@mint:~$ sudo grub-install --root-directory=/mnt /dev/sda5
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
mint@mint:~$
[/console]
vlalu, Вы неверно прочитали и сделали. Потому и ругается на ошибки.
Загрузчик ставится не на раздел, а на устройство.
[console]sudo mount /dev/sda5 /mnt[/console]
Здесь верно, замечаний нет. А вот это:
[console]sudo grub-install --root-directory=/mnt /dev/sda5[/console]
Должно выглядеть так:
[console]mint@mint:~$ sudo grub-install --root-directory=/mnt /dev/sda[/console]
В конце не /dev/sda5 должно быть, а /dev/sda. Так понятно, где проблема?
В конце не /dev/sda5 должно быть, а /dev/sda. Так понятно, где проблема?
можно добавить - судя по :
результат тот же - минимал grub> при загрузке.
нет grub.cfg. Лечится просто и без затей:
[console]
sudo grub-mkconfig > /<PATH_TO_>/boot/grub/grub.cfg
[/console]
где <PATH_TO_> фактическая точка монтирования корневого раздела в данный момент. Да я слышал про волшебные бубунтовские костыли для граба которые разве что девок не вызывают со скидкой, но раз в сабже минимал, значит костыли то поломатые! так можно и по старинке накатить, без оных...
Rizado,
[console]mint@mint:~$ sudo sudo mount /dev/sda5 /mnt
mount: /mnt: /dev/sda5 already mounted on /mnt.
mint@mint:~$ sudo grub-install --root-directory=/mnt /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
mint@mint:~$
[/console]
результат grub> и все.
Добавлено: 25.12.2019 20:58:23
gramozeka,
[console]mint@mint:~$ sudo mount /dev/sda5 /mnt
mint@mint:~$ sudo grub-mkconfig > /dev/sda5 /boot/grub/grub.cfg
bash: /dev/sda5: Permission denied
mint@mint:~$ sudo grub-mkconfig > /dev/sda5 /boot/grub/grub.cfg
bash: /dev/sda5: Permission denied
mint@mint:~$ [/console]
vlalu, у вас /boot не на отдельный раздел вынесен? Если да, то монтируете его после корневого:
[console]sudo mount /dev/sdaX /mnt/boot[/console]
Rizado,
[console]mint@mint:~$ sudo mount /dev/sda4 /mnt
mint@mint:~$ sudo grub-mkconfig > /dev/sda4 /boot/grub/grub.cfg
bash: /dev/sda4: Permission denied
mint@mint:~$ [/console]
vlalu, Вы снова неверно поняли. Расписываю подробно. Монтируем корень:
[console]sudo mount /dev/sda5 /mnt[/console]
Насколько я понял, у Вас /boot вынесен в /dev/sda4. Тогда следующий шаг:
[console]sudo mount /dev/sda4 /mnt/boot[/console]
И потом устанавливаем загрузчик:
[console]mint@mint:~$ sudo grub-install --root-directory=/mnt /dev/sda[/console]
Наверное, будет проще, если покажете /etc/fstab из LinuxMint.
В debian`ax насколько знаю надо после установки сделать [console]update-grub[/console], а уж потом и перезагружаться.
Rizado,
[console]mint@mint:~$ sudo sudo mount /dev/sda5 /mnt
mint@mint:~$ sudo sudo mount /dev/sda4 /mnt
mint@mint:~$ sudo grub-install --root-directory=/mnt /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
mint@mint:~$
[/console]
то же самое grub>
vlalu,
Наверное, будет проще, если покажете /etc/fstab из LinuxMint.
shtoom, не обязательно. Разве что был удалён раздел с какой-то системой или же установили нову систему без установки загрузчика (такое тоже бывает).
bash: /dev/sda5: Permission denied
доступ запрещён!
Вариантов мульён. Но суть везде одна - отсутствует один из каталогов как факт(либо смонтировано рид-онли), причины могут быть разные, вплоть до того, что в целевой системе сам граб как пакет может вообще отсутствовать, такое вполне возможно с тем бредовым подходом убунтовской пакетной системы, когда удаляя kwrite сносятся все кеды. Я не силён в этих извращениях, но давай пойдём последовательно:
1. Как выглядит корень целевой системы.
2. Не разделены ли корень и собственно каталог /boot на разные партиции ака:
у вас /boot не на отдельный раздел вынесен?
3. собственно сам граб можно ставить как угодно, а потом вручную править grub.cfg на предмет корректного указания корня и раздела /boot , но! Можно пойти и другим путём - не мотая все эти сопли по одной монтируя разделы в лайфе, а потом из него же ставить граб. Можно загрузиться в chroot и установить граб штатным системным способом, плюс тут в том, что система(целевая) сама себе ставит граб сообразно собственным настройкам и предустановкам, так сказать нативно, в этом случае возможность ошибок сводится к минимуму.
ЗЫ\ЗЫ!
Если все эти пляски утомят, то вот простой мануальчик как восстановить граб с chroot'ом:
1. Вводные:
а) liveCD(USB, etc.) загружается, видит целевую систему, есть интернет, и проч...
б) Целевая система сидит на /dev/sda1, /boot не разделён и находится в корне.(sda1 меняй на свой)
2. Сама процедура:
1. Грузимся в лайф.
2. открываем терминал заходим рутом через su - и не используем sudo(БЕЗ SUDO!!!!!)
[console]
su -
root@mint # export RES=/mnt/RES
root@mint # mkdir -pv ${RES}
root@mint # mount -v /dev/sda1 ${RES}
root@mint # mount -v -o bind /dev ${RES}/dev
root@mint # mount -vt devpts -o gid=5,mode=620 devpts ${RES}/dev/pts
root@mint # mount -vt proc proc ${RES}/proc
root@mint # mount -vt tmpfs tmpfs ${RES}/run
root@mint # mount -vt sysfs sysfs ${RES}/sys
root@mint # chroot "${RES}" /usr/bin/env -i \
HOME=/root TERM="${TERM}" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
[/console]
после этих манипуляций ты окажешься в целевой системе, все системные команды и настройки будут доступны, ну кроме системных демонов ака systemd, но можно качать и устанавливать пакеты из удалённых репов, а так же например установить\восстановить grub.
ну а дальше всё просто (БЕЗ SUDO!!!!!):
[console]
root ~# grub-install --recheck --no-floppy /dev/sda
root ~# grub-mkconfig > /boot/grub/grub.cfg
[/console]
после чего просто перезагружаемся.
Важное замечание! Надо выяснить как собран сам grub, например федора обзывает grub как grub2, и соответственно все команды идут как grub2-что-то-там и каталог grub выглядит как /boot/grub2. Я привёл вариант по умолчанию. Если /boot и корень разнесены в разные партиции, выше нужно после монтирования корня, добавить монтирование собственно boot, например:
[console]
su -
root@mint # export RES=/mnt/RES
root@mint # mkdir -pv ${RES}
root@mint # mount -v /dev/sda1 ${RES}
root@mint # mount -v /dev/sdb1 ${RES}/boot # (boot находится на диске sdb1)
root@mint # mount -v -o bind /dev ${RES}/dev
root@mint # mount -vt devpts -o gid=5,mode=620 devpts ${RES}/dev/pts
root@mint # mount -vt proc proc ${RES}/proc
root@mint # mount -vt tmpfs tmpfs ${RES}/run
root@mint # mount -vt sysfs sysfs ${RES}/sys
root@mint # chroot "${RES}" /usr/bin/env -i \
HOME=/root TERM="${TERM}" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
[/console]
как-то так... да, могут быть разночтения по путям команд /usr/bin/env и /bin/bash , это лучше заранее уточнить и вписать верные пути(например bash может быть и в /usr/bin а env наоборот, тут я не подскажу по минту)
Rizado,
[console] /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda5 during installation
UUID=af47bade-8ad6-4f99-942f-e9e68d546475 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=4ebacfb8-79c2-4cfb-ad6f-76ec85818855 none swap sw 0 0
UUID=2255c72d-43ef-40b0-8608-16a2e5b56ce9 /boot ext4 defaults 0 2[/console]
vlalu, в твоём случае второй вариант.
Только приложи вывод
[console]
sudo blkid
[/console]
не доглядел...
вот твой вариант:
[console]
su -
root@mint # export RES=/mnt/RES
root@mint # mkdir -pv ${RES}
root@mint # mount -v /dev/sda5 ${RES}
root@mint # mount -v /dev/sdb4 ${RES}/boot
root@mint # mount -v -o bind /dev ${RES}/dev
root@mint # mount -vt devpts -o gid=5,mode=620 devpts ${RES}/dev/pts
root@mint # mount -vt proc proc ${RES}/proc
root@mint # mount -vt tmpfs tmpfs ${RES}/run
root@mint # mount -vt sysfs sysfs ${RES}/sys
root@mint # chroot "${RES}" /usr/bin/env -i \
HOME=/root TERM="${TERM}" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
[/console]
gramozeka,
[console]mint@mint:~$ sudo blkid
/dev/sda1: LABEL="System Reserved" UUID="A21CDE351CDE0467" TYPE="ntfs" PARTUUID="0c7a859b-01"
/dev/sda2: LABEL="Windows" UUID="A85EEDDC5EEDA374" TYPE="ntfs" PARTUUID="0c7a859b-02"
/dev/sda4: LABEL="/boot" UUID="2255c72d-43ef-40b0-8608-16a2e5b56ce9" TYPE="ext4" PARTUUID="0c7a859b-04"
/dev/sda5: UUID="af47bade-8ad6-4f99-942f-e9e68d546475" TYPE="ext4" PARTUUID="0c7a859b-05"
/dev/sda7: UUID="1815f9be-c20a-4280-8cfd-b5e66c47d03f" TYPE="ext4" PARTUUID="0c7a859b-07"
/dev/sda8: UUID="e15415a1-19e8-4574-a8c9-b684a5a4e408" TYPE="ext4" PARTUUID="0c7a859b-08"
/dev/sdb1: LABEL="Data" UUID="75EE86DE1209B8B0" TYPE="ntfs" PARTUUID="1efcbac3-01"
/dev/loop0: TYPE="squashfs"
/dev/sda6: UUID="4ebacfb8-79c2-4cfb-ad6f-76ec85818855" TYPE="swap" PARTUUID="0c7a859b-06"
/dev/sdd1: UUID="2019-12-13-16-58-44-00" LABEL="Linux Mint 19.3 Cinnamon 64-bit" TYPE="iso9660" PTUUID="1dda4ac4" PTTYPE="dos" PARTUUID="1dda4ac4-01"
/dev/sdd2: SEC_TYPE="msdos" UUID="833C-CDB0" TYPE="vfat" PARTUUID="1dda4ac4-02"
mint@mint:~$
[/console]
это как есть сейчас.