LINUX.ORG.RU

Не запускается Линукс второй системой

 , ,


0

1

Здравствуйте! У меня несколько лет стояли вместе Linux Mint и Manjaro. Пользовался я практически только Manjaro, и он со временем стал все сильнее глючить. Решил я его переустановить. Скачал новый образ, запустил установку, снес раздел со старым Manjaro. Установка закончилась сообщением о благополучном завершении. Перезагружаю комп и вижу загрузчик Mint’а (до переустановки был загрузчик Manjaro). Из него грузится сам Mint, Manjaro - ни в какую. Попробовал поставить Debian - абсолютно такая же картина, причем в загрузчике Mint’а так и висит Manjaro. То есть ни Manjaro, ни Debian не могут почему-то прописать свой GRUB. Остается загрузчик Mint’а, который тоже не обновляется, а остается старый - тот самый, который был еще до всех переустановок. И ничего из него, кроме самого Mint’a, естественно, не загружается. Хотя новая система стоит - захожу на диск и вижу ее файлы. Подскажите, пожалуйста, можно что-то сделать, не снося вообще все с винта?



Последнее исправление: newspring (всего исправлений: 5)
Ответ на: комментарий от newspring

Во многих установщиках есть выбор, ставить загрузчик или нет, но да, по умолчанию эта возможность скрыта за экспертным режимом или ещë как-то иначе.

Что нужно делать – во-первых, не бояться экспериментировать. Посмотри внимательно на разметку дисков. По-хорошему, было бы неплохо перенести ценные данные на, например, внешний диск, очистить все загрузочные записи в NVRAM, кроме стандартных и заново переразметить диск. Для этого годится любой LiveUSB, например, SystemRescue, да хоть тот же Mint, у него есть Live-режим. Каждому дистрибутиву нужно выделить один раздел под корневой раздел, сделать один общий ESP. Кроме того, можно сделать общий swap (но если пользуешься гибернацией, это не подходит). У каждого раздела есть свой GUID, который, к тому же, описывает назначение раздела, это можно посмотреть, например, здесь, и, кроме того, каждому разделу можно и нужно назначать метки – человекочитаемое короткое имя.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от yars068

На счет экспериментов – сейчас отовсюду выпиливают поддержку LVM в установщиках, увы. Сейчас она осталась для десктопных дистрибутивах только в RHEL и клонах, Fedora, Debian – в Ubuntu выпилили, в Calamares есть, но работает так криво, что по факту нет.

Очень жаль, так как LVM+ext4 очень гибкое и удачное решение. Я вот недавно ставил Ubuntu 24.04 себе, так чтобы получить нужную мне разметку, мне пришлось ставить 20.04 Server Legacy Installer, потом через 22.04 обновлять – или возиться с debootstrap, на что знаний хватит, но ещё сильнее влом.

При этом в Debian можно и в 13 получить нужное сразу, но требовалась ради ПО именно Ubuntu.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от newspring

стандартные установщики, типа Calamares, и не помню, чтобы там был какой-то выбор, в каком режиме должна грузиться система…

Установщик никак не влияет, в каком режим грузиться. Это делается в УЕФИ. Но в окне calamares-а показано, в каком режиме ты загрузился в данной конкретной сессии. Так-же в нём, где указывается место установки загрузчика, есть вариант «без загрузчика».

andytux ★★★★★
()
Ответ на: комментарий от yars068

Я думал над тем, чтобы все снести и заново поставить. Эксперименты это, конечно, неплохо, но у меня это основной домашний рабочий компьютер, а тут получится, что он будет в нерабочем состоянии пока я буду экспериментировать, то есть неопределенное время. Потому что сколько я не читал про эту разбивку дисков, сколько не пытался в ней разобраться - в плане понимания дальше разбивки из виндового установщика не ушел. Теорию вроде понимаешь, но начинаешь что-то делать - ничего не работает. А времени не получается на это выкраивать, сколько хотелось бы.

newspring
() автор топика
Ответ на: комментарий от newspring

будет в нерабочем состоянии пока я буду экспериментировать, то есть неопределенное время.

Почему в нерабочем? У тебя есть флешка с «живой системой». «Живая система» может больше, чем установленная, намного больше.

andytux ★★★★★
()
Ответ на: комментарий от andytux

Я имел в виду, если все сносить и экспериментировать с разбивкой диска, как yars068 предлагает.

newspring
() автор топика
Ответ на: комментарий от newspring

Отличный вариант, но вот если он является чисто BIOS-машиной, без UEFI, то там получится отработать установку только в вариантах BIOS/MBR и BIOS/GPT. Впрочем, существуют загрузчики, например, Clover, которые позволяют на BIOS-машинах эмулировать работу UEFI. Кроме того, можно изучить загрузку UEFI, пользуясь той же виртуальной машиной, виртуалкой, отдавая ей реальный жëсткий диск.

yars068 ★★★★★
()
Ответ на: комментарий от yars068

отдавая ей реальный жëсткий диск.

Думаю не стоит давать такие советы. Есть вероятность, что автор сломает себе ХОСТ систему, повредив данные на диске.

А так, можно вообще виртуалку арендовать на VDS / Хостинге. Поставить туда даже Proxmox и развлекаться.

Но должна поддерживаться вложенная виртуализация.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Я писал в контексте использования отдельной машины для экспериментов, там ошибки не так критичны.

yars068 ★★★★★
()
Ответ на: комментарий от andytux

Удалось через Esc попасть в меню минтовского GRUB. Но при выборе пункта Debian menu (который ссылается на grub.de13) появляется просто надпись Press any key to continue… и все. При нажатии любой кнопки возвращаешься в меню.

newspring
() автор топика
Ответ на: комментарий от andytux

Да, я думаю, смысла бодаться с этим дальше нет. Дебиан запускается и хорошо. Достану ноутбук и буду находить время, чтобы разбираться с правильной установкой нескольких систем.

Огромное всем спасибо за помощь и поддержку.

newspring
() автор топика
Ответ на: комментарий от newspring

Рано или поздно, всё-равно понадобится.

Улучшенный вариант.

 submenu 'Debian menu' {
	src='/boot/grub/grub.de13'
	root='x'; search --no-floppy --set --file "${src}"
	if [ "${root}" = 'x' ]
		  then	echo "${src} not exist"; sleep 4
		  else	configfile ${src}
	fi
 }

Если не найдёт, то выведет сообщение. Что искать, вынесено в начало кода. Для замены, не придётся искать по всему коду, изменять только в одном месте. Например, в окне меню груба войти в режим редактирования и изменить на ‘/boot/grub/grub.cfg’. Теперь будет искать стандартный конфиг груба, какой первый попадётся. Изменения сделанные в этом режиме нигде не сохраняются, действуют только один раз, удобно для экспериментов.

andytux ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Кстати про Ubuntu Pro исправь что разновидности Kubuntu и Xubuntu тоже могут получать её но не Mint вот как через команды ubuntu-pro-client так что сама Ubuntu не обязательна хотя можно установить её и поменять окружение

anonymous
()
Ответ на: комментарий от andytux

Попробовал. Выдает:

error: no such device: /boot/grub/grub.de13.
/boot/grub/grub.de13 not exist

Press any key to continue...

После изменения пункта меню в режиме редактирования на /boot/grub/grub.cfg просто выбрасывает обратно в меню безо всякого сообщения.

Интересно, а как оно определяет, к какой /boot/grub/ обращаться? Ведь такая папка есть и на диске с Минтом и с Дебианом. Их две.

newspring
() автор топика
Ответ на: комментарий от newspring

как оно определяет, к какой /boot/grub/ обращаться?

Никак. Он ищет /boot/grub/grub.de13. Я ведь писал, для этого и присвоил уникальное имя.

Так и думал, так было понятно по работе предыдущего варианта. Он не нашёл это файл. А почему не нашёл, вопрос к тебе. Возможно, по этой причине он и не нашёл и не может загрузить Дебиан.

После изменения пункта меню в режиме редактирования на /boot/grub/grub.cfg…

А это не понятно. Я надеялся, что загрузит меню Минта. Если конечно где-то нет еще аналогичного. Для прояснения, можно в ветвь ‘else…’ добавить сообщение с выводом значения переменной ‘root’.

Я тебе с первого сообщения говорю про работу вслепую.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от andytux

Получается, ищет /boot/grub/grub.de13 везде? И на sda3 (Debian) и на sda4 (Mint)?

«Я надеялся, что загрузит меню Минта. Если конечно где-то нет еще аналогичного.» Он это и делает. По F10 появляется меню GRAB Минта, из которого через пункт Debian menu я в этот режим редактирования и зашел. Получается, оно все-таки ищет /boot/grub/grub.de13 на диске с Минтом. А там его нет, он же на диске с Дебианом.

newspring
() автор топика
Ответ на: комментарий от newspring

ищет /boot/grub/grub.de13 везде?

Да. Ты забыл ещё про sda1, sda2. И все прочие диски, вдруг ты сейчас забыл выдернуть флешку.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 2)
Ответ на: комментарий от newspring

Смотри, если ты хочешь грузить конфиг файл с пунктом меню с другой файловой системы, то нужно её и указывать:

configfile (uuid,UUID)/path/to/file

Но в этом случае все обращения к файлам в этом конфиге нужно делать так же через указание относительно нужного UUUD.

UUID в команде выше это конкретный UUID файловой системы, где находится конфиг, т.е. с которой ты хочешь прочитать файл и использовать его как пункт меню.

Не забудь добавить в конфиг, который ты грузишь как пункт меню пункт для загрузки конфига grub Mint для возвращения в основное меню.

Если переписывать конфиг не хочешь, то делай что-то вроде:

search --no-floppy --fs-uuid --set=root UUID-UUID-UUID
configfile /path/to/file

Тут произойдёт смена рабочей директории, относительно которой grub будет выполнять команды, грузить файлы и прочее.

Так же, если нужно возвращаться в конфиг (основное меню) - добавляй загрузку конфига Mint через UUID.

Всё работает относительно. Не путайся.

Вместо UUID можно указывать конкретные разделы, но в случае изменения набора дисков это может сломаться.

Т.е. что-то вроде:

(hd0,gpt1)
(hd1,msdos1)

Почитай документацию по grub. И просто конфигурационный файл.

Если нужно, чтобы некоторая секция (пункт меню) всегда добавлялась в результирующий конфиг загрузчика, который обновляется при установке новых ядер / пакетов с драйверами / пакетов с прошивками - нужно сделать соответствующие настройки в /etc/default/grub или в /etc/default/grub.d.

Почитай примеры в документации.

Если для тебя всё это сложно - просто переустанови системы. И вообще, в идеале тебе одну ОС и загрузчик на ноутубуке / ПК и проблем у тебя не будет.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Формально, ты прав. «search –no-floppy –fs-uuid –set=root UUID-UUID-UUID» Если найдёт, в переменной ‘root’ вернёт указание на диск/раздел. Абсолютно аналогично поступит поиск файла. Только не надо путаться с УУИД-ами. А если в переманной ‘root’ правильное значение, то нет никакой необходимости дублировать его в строке с ‘configfile…’, рискуя ошибиться.

andytux ★★★★★
()
Ответ на: комментарий от andytux

Если нужно построить переходы как субменю - лучше делать search каждый раз.

И с configfile я ошибся, он не умеет делать ещё и search, поэтому либо search –file или search –uuid или search –label и далее set root :

А далее просто configfile.

Если возвращаться из субменю не нужно - один раз поиск, загрузка конфига и запуск нужного, в субменю конфигов grub отдельных ОС.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Еще один минус твоего варианта поиска УУИД-а.

Нам нужен файл, ищем файл. В твоём варианте, УУИД может быть, а файла там нет.

‘set root’ не нужен. Его устанавливает ‘search’.

andytux ★★★★★
()
Ответ на: комментарий от anonymous

Технически их можно подключить, как я понимаю, но патчи безопасности НЕ будут распространяться на все их компоненты, включая альтернативные DE, что в них. Могу ошибаться, если так, прошу привести пример, что неправ.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от andytux

Это не минус, это ответственность того, кто пишет конфиг grub.

Если он делает search по UUID для того, чтобы загрузить конфиг следующей командой - значит файл конфига он положил на ту ФС, UUID которой ищет и по тому пути, который указал для загрузки конфига.

Если один и тот же UUID указывается в нескольких местах, чтобы избежать ошибок - используй переменные для его объявления, а эту переменную уже в search или где ещё нужно.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от andytux

Я не понимаю тебя.

Если используется отдельный загрузчик для каждой ОС, то своим конфигом каждая ОС будет управлять (наполнять) самостоятельно при установке нового пакета с ядром, драйвера видео карты, прошивки и в некоторых других ситуация тоже.

Следовательно если стоит цель использовать один загрузчик и загружать другие ОС, их ядра - нужно грузить конфиг их загрузчика с их ФС, а для этого search и configfile.

Если ядра обновлять не планируется в других ОС - вперёд, жёстко добавь загрузку конкретных файлов ядра и initramfs с конкретными параметрами ядра, готово.

Что ты мне пытаешься доказать, я не понимаю. Мне без разницы как будет делать автор. Как ему удобнее это будет поддерживать и как он планирует обновлять ОС и прочее.

Возможно, никак не будет. Потому как задача уже обмусоливается 5 дней. В тоже время она решается, если есть некоторый уровень навыка, ну за полчаса с отладкой, а вообще минут за 10. Если навыка нет, ну 2-3 часа.

А прошло уже 5 дней.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

«Не сразу Москва строилась.»

Быстро только кошки плодятся.

А пять дней… Это не срок. Автор вполне разумен, даже если решение затянется ещё на месяц-другой.

Но вероятно, придётся сносить раздел с Дебианом.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от andytux

Chain loading здесь абсолютно лишний. У него под ногами ещё и второй ESP путается.

Почему путается? В NVRAM записывается связка UUID+efi-файл, от того что их два никто не страдает. Если удалить, то он тупа потеряет загрузчики на втором, их надо будет восстанавливать или копировать и создавать новую запись в NVRAM, удалив ссылки на пропавший раздел. В итоге он просто получит лишнюю работу, которую не понимает, а придёт к той же ситуации, только освободит несколько мегабайт в лучшем случае, в худшем что нибудь сломает.

AZJIO
()
Ответ на: комментарий от newspring

А как туда попасть?

EFI-раздел монтируется в папке/каталоге/директории /boot. Чтобы получить доступ я использую Cinnamon (вместо KDE/XFCE), там файловый менеджер Nemo имеет пункт контекстного меню папки/каталога/директории «Открыть как root» в некоторых файловых менеджерах этот пункт надо создавать путём добавление команды в настройках, например в Thunar. Когда открыта папка/каталог/директория как root, то все файлы там открывается от root, то есть открыл в Geany и можно редактировать и сохранять. Главное не испортить файл, а то лишнюю скобку там поставишь и как ты говоришь вместо меню грузится сразу Mint, хорошо хоть грузится, а могло ничего не грузится, если выше пункта код поправил. Кстати в 41_custom, кой упоминался у меня там ещё сверху и снизу ключевые слова

cat <<EOF
тут вставляемый код
EOF

Не тупо код вставлен. И там у меня так (загрузчик Mint`а сам создал так):

cat <<EOF
if [ -f  \${config_directory}/custom.cfg ]; then
  source \${config_directory}/custom.cfg
elif [ -z "\${config_directory}" -a -f  \$prefix/custom.cfg ]; then
  source \$prefix/custom.cfg
fi
EOF

То есть в файл custom.cfg, который я создал рядом с grub.cfg, вот в этот файл я вставляю дополнительные пункты, взяв их из аналогичных конфигов других ОС.

Я до сих пор не понял в каком режиме ты грузишься UEFI или Legacy? То что установщики загрузчиков насовали тебе EFI загрузчиков это не означает что ты с них грузишься. У тебя может вполне реально грузится MBR оставшийся от старой установки, а диски ты сконвертировал в GPT, при этом этот функционал умеет не затирать MBR.

Во время тестов отключи секьюрити бут, а то ещё и он тебе поможет лесом послать какие нибудь загрузчики.

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 4)
Ответ на: комментарий от AZJIO

Почему путается?

Во-первых, УЕФИ автоматом создал две одинаковые загрузочные записи для дефолтных загрузчиков на разных ESP.

Во-вторых, систем, которые запускались-бы со второго ESP у него нет.

Есть ещё и в-третьих и в-четвёртых…

andytux ★★★★★
()
Ответ на: комментарий от AZJIO

до сих пор не понял в каком режиме ты грузишься UEFI или Legacy?

В обоих. MBR у него таки от новой установки. И диск у него MBR.

Ты ошибся в каждом слове.

andytux ★★★★★
()
Ответ на: комментарий от andytux

А из дебиановского GRUB`а и без всяких правок все запускается - и Дебиан и Минт. Единственное неудобство - по умолчанию при загрузке запускается минтовский GRUB. Но нажать при загрузке F9 мне несложно… Ох, ребята, у меня от этого всего голова взрывается. Наверное, я оставлю пока все как есть и буду понемногу разбираться с Дебианом, достану ноутбук и на него попробую ставить несколько систем. Вроде там есть EFI.

newspring
() автор топика
Ответ на: комментарий от newspring

Сложно для меня

В каждом разделе линукс есть папка/каталог/директория boot, в дебиане, в манджаре, в минте.

Запустить от root можно открыв файловый менеджер из терминала, например
sudo nemo
sudo thunar

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 1)
Ответ на: комментарий от newspring

Теперь, как говориться, следи за руками. К чему это было.

Неподтверждённая гипотеза.

Старый Минт (не известно какой), старый груб, старая версия ext4 на этом разделе. Новый Дебиан, новый груб, новая версия ext4 на этом разделе.

Старый груб не знает всех фич новой ext4, поэтому не может найти систему на новом разделе и загрузить её. Новый груб знает знает и старую и новую версию ext4, поэтому находит и загружает систему с любого раздела.

Следствие. Либо пользоваться новым грубом, но тогда нельзя удалять Дебиан. Если пользоваться старым грубом, то нужно форматировать раздел с Дебианоам в старую версию ext4. И далее, при установке систем на этот раздел, не форматировать его.

Единственное неудобство - по умолчанию при загрузке запускается минтовский GRUB

Настроить приоритеты УЕФИ. Не во всяком УЕФИ это возможно. Некоторые плюют на любые пользовательские хотения и живут по своим правилам.

andytux ★★★★★
()
Ответ на: комментарий от AZJIO

Это я использую, спасибо. Я о том, сколько всего нужно прочитать чтобы хоть приблизительно понять, о чем идет речь. И еще плачусь о том, как это тяжело с моими гуманитарными мозгами.

newspring
() автор топика

С флешки запустить рекавери_моде не судьба? И зачем сносить Манджару, она же роллинг? #pacman -Syu сделать не судьба?

piwww ★★★★
()
Ответ на: комментарий от piwww

Отказался напрочь обновляться AUR (Google Chrome, например), авторизация в графическом режиме перестала работать (не давала ввести пароль, окно открывалось на секунду и сразу закрывалось с ошибкой авторизации). Последний раз даже из терминала обновление системы не запустилось, насколько помню. По крайней мере обновиться не смог и реши переустановить, так как все равно многовато глюков накопилось.

newspring
() автор топика
Ответ на: комментарий от andytux

Удалось настроить в биосе так, что загружается сразу GRUB Дебиана! Только немного жаль, что все это до первого выключения компьютера. Батарейка на плате давно села и изменения в биосе сбрасываются… А заменить батарейку лень.

newspring
() автор топика

А, нет, даже после выключения-включения и выдачи сообщения с обычными ругательствами на разряженную батарейку открывается все равно GRUB Дебиана. Так что по факту считаю проблему решенной и благодарю всех, а особенно andytux, за то что с таким терпением предлагали мне все эти ценные советы и сведения!

newspring
() автор топика
Ответ на: комментарий от newspring

В копилку опыта. Хотя-бы будешь знать, что возможно. А то, очень многие считают, что ‘live’ - это только флешка, только для установки.

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от andytux

Смотрю, как баран на новые ворота… Но все равно спасибо, буду разбираться!

newspring
() автор топика
Ответ на: комментарий от newspring

Только немного жаль, что все это до первого выключения компьютера. Батарейка на плате давно села и изменения в биосе сбрасываются…

Уважаемый. У EFI есть пути по умолчанию до файлов efi загрузчиков, которые прошивка EFI ищет. В этом случае не нужно даже создавать какие-либо записи в efivars.

Вы не задумывались, почему при любой загрузочной флешки у вас стартует EFI загрузчик? Ведь загрузчик с флешки не прописан в EFI вашего компьютера.

https://wiki.archlinux.org/title/GRUB

If you use the option --removable then GRUB will be installed to **esp/EFI/BOOT/BOOTX64.EFI** (or **esp/EFI/BOOT/BOOTIA32.EFI** for the i386-efi target) and you will have the additional ability of being able to boot from the drive in case EFI variables are reset or you move the drive to another computer. Usually you can do this by selecting the drive itself, similar to how you would using BIOS. If dual booting with Windows, be aware Windows usually places an EFI executable there, but its only purpose is to recreate the UEFI boot entry for Windows. If you are installing GRUB on a Mac, you will have to use this option. Some desktop motherboards will only look for an EFI executable in this location, making this option mandatory, in particular with MSI boards. If you execute a UEFI update, this update might delete the existing UEFI boot entries. Therefore, it is a potential fallback strategy to have the "removable" boot entry enabled.

В этой же wiki странице есть инструкции как перенести загрузчик в пути по умолчанию.

Да это Arch Linux, но в случае Debian можно действовать по аналогии.

Более того при установке именно Debian, но в экспертном режиме есть вопрос, ставить загрузчик по путям для removable устройств или нет.

И эта информация лежит в открытом доступе, про пути по умолчанию. Нужно только чуть-чуть подумать.

Но вообще, странно, что вы не задались вопросом: «Как же у меня флешки грузятся, если в EFI ничего с них не прописано?».

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария