Уголок новичка

Grub не работает сразу после установки monjaro

Никак не могу сообразить, не работает grub от слова совсем, подскажите, пожалуйста куда копать, перерыл, вроде, все, вроде все настроено, но никак. Перестал работать, ещё когда ubuntu был, всё снёс, накатил заново Винду, и monjaro. В uefi ничего особо не трогал. Помогите, пожалуйста, разобраться, всё логи, какие нужны будут, предоставлю
Manjaro KDE Edition

Как восстановить загрузчик GRUB?

У меня было установлена Windows 10 и рядом Manjaro Linux.
Захотел выделить больше места под Манджаро грубым способом… Из Винды удалил раздел с ней, выделил еще места для нее, попробовал установить на нее Манджаро, но установка завершилась с ошибкой (что-то было написано про EFI system).
При перезагрузке ноута, соответственно, выбора ОС нет, но есть тот самый «grub rescue».
Очень странно, но месяц назад я таким же макаром поменял Убунту на Манджаро, и все встало идеально, а тут захотел переустановить ее саму и вот…
Никак не могу восстановить загрузчик, ни с LiveCD, ни из «grub rescue»
Следующие команды выдают ошибку:
$ sudo mount /dev/sda1 /mnt
$ sudo grub-install --root-directory=/mnt /dev/sda1

Ошибка:
grub-install: error: cannot find EFI directory.

Для информации:
sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/nvme0n1p2 1028160 160433558 159405399 76G 7 HPFS/NTFS/exFAT
/dev/nvme0n1p4 161565766 1000214527 838648762 399.9G f W95 Ext'd (LBA)
/dev/nvme0n1p5 161565768 839475877 677910110 323.3G 7 HPFS/NTFS/exFAT
/dev/nvme0n1p6 839477926 1000214527 160736602 76.6G 83 Linux

Помогите, пожалуйста, восстановить загрузчик
Ядро & Оборудование

Проблемы с GRUB и BIOS одновременно...

В общем поступил я очень глупо и по итогу ситуация сложилась такая:
— система не грузится, выбрасывает в grub rescue
— bios не открывается, просто черный экран при попытке войти в него (нажатие клавиши F2)
— папки с /grub не существует, соответственно все танцы с бубном вокруг попытки вручную указать его тщетны...
Если еще варианты чтобы вернуться к работе?
P.S. Данные на диске не важны, можно спокойно сносить, я бы даже поставил цель => загрузиться с флешки
Учебники (How-To & F.A.Q)

МУЛЬТИ-УСТАНОВКА дистрибутивов Linux НА ОДИН РАЗДЕЛ в SUBVOLUME-BTRFS на примере Дистрибутива MANJARO

Статья детально описывает процесс установки со всеми пояснениями. Автор рассчитывает достучаться до начинающих пользователей тоже, поэтому, просьба сильно не критиковать подход :)


МУЛЬТИ-УСТАНОВКА дистрибутивов Linux НА ОДИН РАЗДЕЛ в SUBVOLUME-BTRFS на примере Дистрибутива MANJARO с мульти-загрузкой двух или даже многоуровнего GRUB загрузчика для каждого дистрибутива. Все мы привыкли к ситуациям, когда на одном ПК у нас стоит один Linux дистрибутив и например Windows дистрибутив. Иногда системы три, иногда четыре, но это бывает редко. В основном этот подход подразумевает под собой установку разных операционных систем или разных дистрибутивов на разные разделы ваших дисков. Но что если я сейчас вам покажу то, что различные Linux дистрибутивы или один дистрибутив с различными десктопами и для различных нужд могут уживаться на одном единственном разделе и при этом каждый будет жить своей собственной жизнью, а каталог пользователя и его подкаталоги будут объедены в один общий? Такого не может быть? Ну что же, давайте посмотрим :)

Все тесты проводились на дистрибутиве MANJARO KDE, но по сути, не имеет никакого значения какой из доступных дистрибутивов MANJARO выберете вы!

Для начала грузимся с лайв CD/USB, после чего открываем консоль, получаем постоянные root права на эту сессию через «sudo su -» и начинаем :) Нам нужно выполнить разметку диска и присвоить каждому разделу код файловой системы и название. Для этого будем последовательно использовать 2 программы, потому что в одной проще сделать разметку, а во второй присвоить коды и дать название разделам. Опытные пользователи могут выбрать свой вариант.

1. Создаем GPT метку диска утилитой «parted» — нажимаем — «p» — на экран будет выведена информация о разделах и если они есть, то удаляем их командой «rm» — где «1» это номер раздела. Команду нужно повторить для всех разделов. Их список мы смотрели на предыдущем шаге командой «p».
Теперь создаем разметку GPT, пишем «mklabel gpt» — «yes» — «q» и «ENTER»
# parted /dev/sda

2. Запускаем программу разметки диска
# cfdisk /dev/sda

2. Создаём раздел на 31МБ для будущего GRUB загрузчика. Нажимаем — «Новый» — пишем «31M» — выбираем тип файловой системы «EFI»

По этому же принципу делаем остальные разделы

3. Создаём раздел на 128МБ для будущего /BOOT раздела. Переключаемся на неразмеченную область — «Новый» — пишем «128M» — выбираем тип файловой системы «BIOS boot»

4. Создаём раздел на 50ГБ для будущего / раздела систем (у меня на виртуалке для наглядного примера это 25ГБ), переключаемся на неразмеченную область — «Новый» — пишем «50G» и «ENTER»

Дополнительные возможности
Установленных систем разных или одного дистрибутива может быть 2! на 50GB или даже 3! Тут есть один нюанс — если у вас имеется в наличии например 1SSD на 128ГБ или 256ГБ и 2SSD или HDD на 1ТБ например для /DATA файлов (по сути будущие подкаталоги /home/user/.., то можете в этом пункте отдать под этот раздел 100ГБ. Чем больше места будет в корне, тем большее кол-во разных дистрибутивов или копий одного дистрибутива вы сможете на него установить. Если конечно вам это нужно. Тут важно понимать, что /DATA (это /home/user/..) у нас будет (5) пятым разделом и места под него должно быть достаточно для ВАШИХ нужд! Например у меня на рабочей системе для этого раздела выделен отдельный HDD на 1TB и мне этого хватает для всего что мне нужно.

5. Создаём раздел на RAM+2GB (у меня на виртуалке это 4+2, вы рассчитывайте свой объём оперативной памяти и прибавляйте 2GB), переключаемся на неразмеченную область — «Новый» — пишем «размер равный вашей оперативной памяти + 2ГБ» и «ENTER» — выбираем тип файловой системы «Linux своп»

6. Создаём раздел на всё остальное место для /DATA (будущий /home/user/..), переключаемся на неразмеченную область — «Новый» — жмем «ENTER» чтобы выбрать оставшееся место на диске под будущий /DATA раздел. Нажимаем «Запись» пишем «yes» и нажимаем «ENTER» а после «Выход»

7. Запускаем программу разметки диска # gdisk /dev/sda — и далее присваиваем для каждого раздела код файловой системы и метку раздела (не путайте с меткой диска, это мы сделаем чуть позже при форматировании разделов), всё цифры и имена набираем с клавиатуры.
t - 1 - EF02 - ENTER
t - 2 - 8300 - ENTER
t - 3 - 8300 - ENTER
t - 4 - 8200 - ENTER
t - 5 - 8300 - ENTER

c - 1 - UEFI   - ENTER
c - 2 - BOOT   - ENTER
c - 3 - SYSTEM - ENTER
c - 4 - SWAP   - ENTER
c - 5 - DATA   - ENTER

Теперь нажмите p чтобы проверить всё ли вышло правильно. Должны увидеть что-то вроде этого (фото)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048           67583    32.0 MiB    EF02  UEFI
   2           67584         2164735   128.0 MiB    8300  BOOT
   3         2164736       107022335    50.0 GiB    8300  SYSTEM
   4       107022336       136382463     6.0 GiB    8200  SWAP
   5       136382464       500118158    18.8 GiB    8300  DATA

Не забудьте сохранить изменения и выйти, для этого нажмите «w» а после «y» и «ENTER»

8. Запускаем графический установщик. В разделе «Клавиатура» рекомендую пока выбрать «English (US)» и нажать «Далее». Второй язык сможете добавить позднее. Выбираем «Ручная разметка» после выбираем "/dev/sda3" и нажимаем «Править» — выбираем «Форматировать» — «Файловая фистема» — «Btrfs» и «Точка монтирования» — "/" чтобы система понимала, на какой раздел нужно производить установку. Потом выбираем "/dev/sda4" и нажимаем «Править» — выбираем «Форматировать» — «Файловая система» — «Область подкачки Linux» и «Точка монтирования» без изменений. После нажимаем «Ок» и «Далее» — настраиваем имена и пароли. На окно с предупреждением нажимаем «ОК» — «Далее» и у вас должно было быть сейчас что-то вроде этого. Ну всё, можем запускать графическую установку, нажимайте «Установить» и «Приступить к установке» а после завершения процесса установки не перезагружайтесь!

9. Далее переходим к настройке GRUB загрузчика, назовём его установку двухуровневой. Что это нам даёт — у каждой системы есть свой взгляд на загрузку и для того, чтобы избежать конфликтов, мы пропишем GRUB на отдельный раздел и он будет передавать управление тому GRUB загрузчику, чью систему мы будем загружать через GRUB меню при старте ПК/Ноутбука.

10. Форматирование раздела под наш загрузчик "-L BOOT" задаёт метку разделу, он же «LABEL» и "-m0" отключает резерв места для записи от пользователя
# mkfs.ext3 -L BOOT -m0 /dev/sda2

11. Создаём каталог BOOT куда будет установлен наш загрузчик
# mkdir /mnt/BOOT

12. Монтируем наш отформатированный раздел по заданной ранее при форматировании метке, то есть по «LABEL»
# mount -L BOOT /mnt/BOOT

13. Так как при установке системы она поставила свою загрузочную запись на /dev/sda, то нам нужно забрать у системного загрузчика управление назад и прописать туда наш
# grub-install --boot-directory=/mnt/BOOT/ /dev/sda

После чего вы должны получить такой ответ:
"Выполняется установка для платформы i386-pc.
Установка завершена. Ошибок нет."

14. Создадим каталог в папке /mnt/
# mkdir /mnt/SUB

15. Присвоим метку разделу, чтобы мы знали, что это системный раздел
# btrfs filesystem label /dev/sda3 SYSTEM

16. Смонтируем наш системный раздел по метке в созданный каталог для доступа к нашим /@SOBVOLUMES — он пригодится нам для будущей работы с нашими субсистемами :)
# mount -L SYSTEM /mnt/SUB

17. Для начала сделаем 2 снимка (SNAPSHOT) нашей системы установленной на /@SUBVOLUMES, она сейчас установлена в каталок "/@" — для этого выполним команду
# btrfs subvolume snapshot /mnt/SUB/@ /mnt/SUB/@MSTABLE
# btrfs subvolume snapshot /mnt/SUB/@ /mnt/SUB/@MSECOND

18. И сразу сделаем бэкап свежеустановленной системы в "/@" для того, чтобы у нас вдруг с ним не вощник конфликт делёжки GRUB конфига и заодно если что, можно будет откатиться к свежачку :)
# mv /mnt/SUB/@ /mnt/SUB/@reserved

Что представляет из себя SNAPSHOT
К слову, снимок системы, то есть SNAPSHOT по факту ничего не весит и не замимает места на вашем SSD или HDD, а так же его создание занимает, ну хорошо если 1 секунду :) Таким образом мы сейчас установили на один раздел 2 копии НЕЗАВИСИМЫХ друг от друга систем! Которые не занимают места на диске. Я думаю из названий снимков уже понятно, какая будет у нас основной, а какая второстепенной. А та система, которая была установлена при установке в "/@" пусть там и лежит. Если что-то пойдёт не так, то мы просто загрузимся с LiveCD/USB или из второй системы "@MSECOND", смонтируем нашу систему в "/mnt/SUB" командой «mount -L SYSTEM /mnt/SUB», переименуем наш SNAPSHOT "/@MSTABLE" в "/@MOLD" и сделаем ещё один снимок (SNAPSHOT) командой «btrfs subvolume snapshot /mnt/SUB/@ /mnt/SUB/@MSTABLE». И не забывайте, SNAPSHOT системы не занимает места на вашем диске, а значит вы можете делать его, например перед обновлением или установкой незнакомого софта или же просто имея желание поэкспериментировать с системой.

19. Теперь нужно прописать в загрузчик временный путь к нашему /@MSTABLE SUBVOLUME, чтобы он загрузил именно эту систему. Сделать это можно следующим образом
# nano -w /mnt/SUB/@MSTABLE/boot/grub/grub.cfg

Находим первую запись в строке с названием "### BEGIN /etc/grub.d/10_linux ###"
И заменяем в этом разделе все "/@" на "/@MSTABLE" — должно получиться вот так

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2282e840-f7a1-4312-b6e9-912ea9f9541c' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod btrfs
	set root='hd0,gpt3'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  2282e840-f7a1-4312-b6e9-912ea9f9541c
	else
	  search --no-floppy --fs-uuid --set=root 2282e840-f7a1-4312-b6e9-912ea9f9541c
	fi
	linux	/@MSTABLE/boot/vmlinuz-5.10-x86_64 root=UUID=2282e840-f7a1-4312-b6e9-912ea9f9541c rw rootflags=subvol=@MSTABLE  quiet apparmor=1 security=apparmor udev.log_priority=3
	initrd	/@MSTABLE/boot/intel-ucode.img /@MSTABLE/boot/initramfs-5.10-x86_64.img
}

20. Теперь проделываем всё то же самое со второй системой
# nano -w /mnt/SUB/@MSECOND/boot/grub/grub.cfg

и в конфиг GRUB копируем и вставляем следующий код
# nano -w /mnt/BOOT/grub/grub.cfg

set timeout=5
set default=0

insmod part_gpt
insmod btrfs

menuentry 'Start MANJARO STABLE'{
    configfile (hd0,gpt3)/@MSTABLE/boot/grub/grub.cfg
}
menuentry 'Start MANJARO-SECOND'{
    configfile (hd0,gpt3)/@MSECOND/boot/grub/grub.cfg
}

Естественно, если схема разбивки вашего диска иначе, то «hd0» подгоните под номер вашего диска и «gpt3» под номер раздела на диске :)

Вам нужны доказательства что эти системы не имеют общих папок, что это две абсолютно независимые друг от друга системы? Давайте в @MSTABLE и в @MSECOND создадим в /ROOT/ каталоге по одному файлу и назовём их @MSTABLE-proof и @MSECOND-proof :) а после их загрузки убедимся в том, что это две разные системы на одном разделе!
# touch /mnt/SUB/@MSTABLE/root/@MSTABLE-proof
# touch /mnt/SUB/@MSECOND/root/@MSECOND-proof

21. Теперь даём в консоли команды
# umount /mnt/SUB
# umount /mnt/BOOT
# reboot

22. Загрузились :) запускаем консоль, получаем root права через «sudo su -» и первым делом настраиваем все параметры конкретной загруженной системы под её загрузчик, потом повторяем то же самое для второй системы и перезагружаемся!
# grub-mkconfig -o /boot/grub/grub.cfg

23. Теперь отформатируем наш /DATA раздел, чтобы в последующем перенастроить пути к домашним каталогам пользователей, но для этого выйдет отдельная статья!
# mkfs.btrfs -L DATA /dev/sda5
# mkdir /mnt/BOOT
# mkdir /mnt/SUB


Я немного затупил вконце видео, не понял почему файл оставленный на Рабочем столе одной системы появился на второй ) Но у нас же они идентичные, юзер один и тот же и домашние каталоги общие :) Но это тема отдельной статьи!

На этом мы закончили и как видите, на одном "/dev/sda3" разделе может существовать бесконечное множество дистрибутивов. Сам я около 3 месяцев как перешёл на Линукс и мне посчастливилось познакомиться на канале @calculatelinux в Телеграм с замечательным и умнейшим человеком под ником @Kewol. Именно он рассказал мне о такой возможности и на пальцах показал все преимущества такого подхода, за что ему огромнейшее человеческое спасибо! Он так же написал статью на https://wiki.calculate-linux.org/ru/install_multy_distrs_to_btrfs_subvol/draft (к сожалению её пока не подтвердили, да и писал он больше для себя и для того, чтобы увидеть её, нужно пройти регистрацию). Дело в том, что по всей видимости не каждый дистрибутив умеет сразу ставить себя в /@ SUBVOLUME, но когда мы начали пробовать на MANJARO Linux, то он был очень удивлён, так как на этом дистрибутиве всё встало само собой! Очень надеюсь, что статья вызовет резонанс среди продвинутых пользователей и пригодится новичкам :)

Скоро выложу вторую часть по настройке домашних каталогов на другой раздел диска.
Видеоинструкция тут: www.youtube.com/watch?v=tQvttHujarY

Всем спасибо за внимание и всем добра!
Уголок новичка

File ‘/boot/vmlinuz-5.4-x86_64’ not found

Привет.
Я новичок, ничего не нашел при поиске, извините.
Сегодня я решил скачать програмное обеспечение, но случайно не дождавшись окончательной загрузки выключил ноутбук, после при запуске системы появились данные ошибки:
error: file ‘/boot/vmlinuz-5.4-x86_64’ not found,
error: you need to load the kernel first.
Подскажите возможно ли это как то исправит через Grab или другими способами.