Автор Тема: Ошибка загрузки второй ОС Linux  (Прочитано 26189 раз)

Оффлайн AlexR2D2

  • Начинающий
  • *
  • Сообщений: 7
После установки Simply Linux 8.2, перестала загружаться MX Linux 18 (установленна первой).
При выборе в загрузчике пункта  "MX 18 Continuum (18)" возникает ошибка:
ошибка: файл "/boot/vmlinuz-4.19.0-1-686-pae" не найден.
ошибка: сначала вам нужно загрузить ядро.
Нажмите любую клавишу для продолжения...

В Linux новичок. Подскажите с чего начать, может разберусь.
« Последнее редактирование: 30.01.2019 17:51:58 от AlexR2D2 »

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: Ошибка загрузки второй ОС Linux
« Ответ #1 : 30.01.2019 20:41:12 »
Рассказывайте, как у вас диск разбит был или диски на момент установки, а также куда ставили загрузчик. Разбивку диска можно посмотреть в GParted.

Оффлайн AlexR2D2

  • Начинающий
  • *
  • Сообщений: 7
Re: Ошибка загрузки второй ОС Linux
« Ответ #2 : 30.01.2019 21:39:50 »
На момент установки диск был разбит на следующие разделы:
/dev/sda1 - файл подкачки
/dev/sda2 - под MX Linux 18
/dev/sda3 - расширенный
    /dev/sda5 - файл подкачки
    /dev/sda6 - под SimplyLinux 8.2
    /dev/sda7 -

Загрузчик оставил по умолчанию (как предложил SimplyLinux) - был указан жесткий диск.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: Ошибка загрузки второй ОС Linux
« Ответ #3 : 01.02.2019 10:12:41 »
Загрузись с этого образа, подбери свой 32 или 64
alt-p8-rescue-* https://mirror.yandex.ru/altlinux-starterkits/release/
набери mount-system - в консоли будет описание.
Будет всякая ругань на английском, но монтирование должно пройти и должно подмонтироваться две системы в каталог /mnt/...
/mnt/system1 и /mnt/system2
Определи который с альтами ( к примеру 1) и залогинься из консоли chroot /mnt/system1
проверь имя компьютера hostname, если твой то далее по инструкции
https://www.altlinux.org/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B9_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8

grub-mkconfig -o /boot/grub/grub.cfg

grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB

Оффлайн Kalt

  • Завсегдатай
  • *
  • Сообщений: 996
Re: Ошибка загрузки второй ОС Linux
« Ответ #4 : 01.02.2019 10:38:33 »
...Есть такой инструмент Grub Customizer, в Simply его можно установить из Synaptic(если не установлен). Он увидит все стоящие у вас ОС, в нём есть возможность редактировать загрузчик по вашему усмотрению. Пользоваться командной строкой не придётся.
« Последнее редактирование: 01.02.2019 21:01:02 от Kalt »
Intel Xeon X3440 2,53GHz, MSI H55- G43, DDR3- 4x2GB, GF GT710

Оффлайн AlexR2D2

  • Начинающий
  • *
  • Сообщений: 7
Re: Ошибка загрузки второй ОС Linux
« Ответ #5 : 03.02.2019 17:54:55 »
Выполнил действия как описал rabochyITs. К сожалению не получилось. Но обнаружил, что MX 18 Continuum (18) имеет ошибку: "неизвестная файловая система" (screen1).

SimplyLinux 8p был не обновлен, поэтому решил обновить все, что связано с GRUB в Synaptic.
Для обновления был один пакет:
   alterator-grub

С ним обновились:
   liblzma
   xz

Были установлены пакеты:
   grub-common
   grub-pc

Были удалены:
   grub2-common
   grub2-pc

После этого выполнил все по рекомендациям rabochyITs.
Все заработало (screen2). При выборе этой системы она загружается.

До проделанных действий результат команды grub-install -v в SimplyLinux: (GRUB) 2.00-alt21
После: см. screen3

Если несложно ответьте на вопросы (хочу разобраться):
1. Почему MX 18 Continuum (18) имел неизвестную файловую систему (screen1)?
2. Как на результат повлияли действий в Synaptic?
3. Почему результат grub-install -v: см. screen3 ?

Спасибо за помощь.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #6 : 03.02.2019 19:27:45 »
1. Почему MX 18 Continuum (18) имел неизвестную файловую систему (screen1)?

Что говорит команда?
# file -s /dev/sda2

3. Почему результат grub-install -v: см. screen3 ?

Потому что отсутствует параметр, как устройство для установки загрузчика.
Приёмы профессиональной работы в shell: Установка GRUB2 в MBR

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #7 : 04.02.2019 20:35:36 »
3. Почему результат grub-install -v: см. screen3 ?

В таблице разделов у вас отсутствует GPT.
Значит загрузка должна быть через MBR.
Вы должны указать устройство для установки загрузчика и в случае чего, сказать и инсталлятору загрузчика и линукс-программисту:
- Не твоё собачье дело куда хочу установить загрузчик! Сказано?, - выполняй!

Оффлайн AlexR2D2

  • Начинающий
  • *
  • Сообщений: 7
Re: Ошибка загрузки второй ОС Linux
« Ответ #8 : 04.02.2019 21:32:03 »
Что говорит команда?
# file -s /dev/sda2
/dev/sda2: Linux rev 1.0 ext4 filesystem data, UUID=de25513c-a2aa-4375-aca5-d66ff631e6b7, volume name "rootMX18" (needs journal recovery) (extents) (64bit) (large files) (huge files)
« Последнее редактирование: 04.02.2019 21:36:43 от AlexR2D2 »

Оффлайн AlexR2D2

  • Начинающий
  • *
  • Сообщений: 7
Re: Ошибка загрузки второй ОС Linux
« Ответ #9 : 04.02.2019 22:10:53 »
Вы должны указать устройство для установки загрузчика и в случае чего, сказать и инсталлятору загрузчика и линукс-программисту:
- Не твоё собачье дело куда хочу установить загрузчик! Сказано?, - выполняй!
Результат работы команды grub-install --target=i386-pc --force /dev/sda - Установка завершена. Ошибок нет.
Но результат grub-install -v остался как на screen3.

Также заметил, что при запуске загрузчика появилась ошибка:
GRUB loading.
error: file '/boot/grub/locale/POSIX.gmo' not found
« Последнее редактирование: 04.02.2019 22:16:20 от AlexR2D2 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #10 : 04.02.2019 22:43:47 »
Результат работы команды grub-install --target=i386-pc --force /dev/sda - Установка завершена. Ошибок нет.
Но результат grub-install -v остался как на screen3.

Так и должно быть:
Выполняется установка для платформы i386-pc
grub-install: ошибка: не указано устройство, но которое нужно выполнить установку.

Просто Линукс-программисты grub2, не знают что такое умолчания и не знают, что десятки лет загрузчик устанавливался в MBR. Поэтому из-за их хорошего кода, устройство нужно указать явно. Даже если винчестер только один в компьютере и никаких GPT с UEFI-ями там не было и нет.
Вот здесь
https://forum.altlinux.org/index.php?topic=36337.msg331130#msg331130
пункты 4 и 6, 22 года назад были написаны специально для этих Линукс-программистов.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #11 : 05.02.2019 00:23:35 »
1. Почему MX 18 Continuum (18) имел неизвестную файловую систему (screen1)?

Хороший вопрос:
Что говорит команда?
# file -s /dev/sda2
/dev/sda2: Linux rev 1.0 ext4 filesystem data, UUID=de25513c-a2aa-4375-aca5-d66ff631e6b7, volume name "rootMX18" (needs journal recovery) (extents) (64bit) (large files) (huge files)

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Ошибка загрузки второй ОС Linux
« Ответ #12 : 05.02.2019 02:28:13 »
Две системы. Два корня.
В каждом корне -- свой /boot и /boot/grub.
Первая ОС раньше грузилась так:

MBR -> stage1.5 -> /dev/sda2 (grub stagе2 в /boot/grub)
Этот раздел (/dev/sda2) раньше был активным/загрузочным.

fdisk /dev/sda
a
2
w

И старая система вновь начнёт грузиться. Хотя может и нет. Потому что когда ставили вторую систему, а потом и grub-install запускали, затёрли оригинальный код первой системы в MBR и stage1.5. Что получилось теперь:

.... x /dev/sda2 -- бесхозный, никто не грузится с него!
MBR -> stage1.5 -> /dev/sda6 (grub stagе2 в /boot/grub - здесь ALT).

Какая-то недоработка в grub-probe при установке Simply 8.2? А вот и нет! Вы версию ядра смотрите. Если бы установщик первой ОС форматировал ext4 раздел с опцией -O ^64bit, старый grub-probe из Simply 8.2 (а точнее тут дело в ядре и e2fsprogs, в версии mke2fs) увидел бы раздел /dev/sda2 нормально.

Выход видится такой: во второй системе создать /etc/grub.d/07_mxlinux, посмотрев соседние файлы, возможно использовать chainload, чтобы не перетаскивать из /boot первой системы ядро 4.19 с initrd в новый /boot АЛЬТА, переустановить загрузчик снова. Как вариант: снести Альт со всеми его разделами, сделать активным /dev/sda2, как предлагалось выше, восстановить и там MBR со stage1.5 через grub-install, загрузиться с рескьюшки или чего-то ещё и сделать tune2fs -O ^64bit /dev/sda2, после чего снова установить АЛЬТ второй системой. Может и без сноса/переустановки это получится сделать, прямо из АЛЬТА. Если обновить в Альте ядро и e2fsprogs (только смотрите конфиг /etc/mke2fs.conf чтобы новый попал либо руками там это добавьте: auto_64-bit_support = 1 в разделе ext4{}). Вообще всегда лучше сначала ставить более старые системы, потом более новые. Тогда этой свистопляски можно избежать.

Также заметил, что при запуске загрузчика появилась ошибка:
GRUB loading.
error: file '/boot/grub/locale/POSIX.gmo' not found
Кажется, эта проблема решается так:
LC_ALL=C LANG=C grub-install .... (и всё что вы там дальше указывали).
« Последнее редактирование: 05.02.2019 03:08:29 от klark973 »
To moan or to solve -- that is the question!

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #13 : 05.02.2019 03:33:14 »
Также заметил, что при запуске загрузчика появилась ошибка:
GRUB loading.
error: file '/boot/grub/locale/POSIX.gmo' not found

Здесь не в теме.
Но кажется что
grub2
# find /boot/grub/ -name "*mo" | sort
/boot/grub/locale/ast.mo
/boot/grub/locale/ca.mo
/boot/grub/locale/da.mo
/boot/grub/locale/de_CH.mo
/boot/grub/locale/de@hebrew.mo
/boot/grub/locale/de.mo
/boot/grub/locale/en@arabic.mo
/boot/grub/locale/en@cyrillic.mo
/boot/grub/locale/en@greek.mo
/boot/grub/locale/en@hebrew.mo
/boot/grub/locale/en@piglatin.mo
/boot/grub/locale/en@quot.mo
/boot/grub/locale/eo.mo
/boot/grub/locale/es.mo
/boot/grub/locale/fi.mo
/boot/grub/locale/fr.mo
/boot/grub/locale/gl.mo
/boot/grub/locale/hr.mo
/boot/grub/locale/hu.mo
/boot/grub/locale/id.mo
/boot/grub/locale/it.mo
/boot/grub/locale/ja.mo
/boot/grub/locale/ko.mo
/boot/grub/locale/lt.mo
/boot/grub/locale/nb.mo
/boot/grub/locale/nl.mo
/boot/grub/locale/pa.mo
/boot/grub/locale/pl.mo
/boot/grub/locale/pt_BR.mo
/boot/grub/locale/ru.mo
/boot/grub/locale/sl.mo
/boot/grub/locale/sr.mo
/boot/grub/locale/sv.mo
/boot/grub/locale/tr.mo
/boot/grub/locale/uk.mo
/boot/grub/locale/vi.mo
/boot/grub/locale/zh_CN.mo
/boot/grub/locale/zh_TW.mo
# find /boot/grub/ -name "*mo" | sort | wc -l
38

берёт локали отсюда
# find /usr/share/ -name "grub.mo" | grep '\/grub.mo' | sort
/usr/share/locale/ast/LC_MESSAGES/grub.mo
/usr/share/locale/ca/LC_MESSAGES/grub.mo
/usr/share/locale/da/LC_MESSAGES/grub.mo
/usr/share/locale/de_CH/LC_MESSAGES/grub.mo
/usr/share/locale/de@hebrew/LC_MESSAGES/grub.mo
/usr/share/locale/de/LC_MESSAGES/grub.mo
/usr/share/locale/en@arabic/LC_MESSAGES/grub.mo
/usr/share/locale/en@cyrillic/LC_MESSAGES/grub.mo
/usr/share/locale/en@greek/LC_MESSAGES/grub.mo
/usr/share/locale/en@hebrew/LC_MESSAGES/grub.mo
/usr/share/locale/en@piglatin/LC_MESSAGES/grub.mo
/usr/share/locale/en@quot/LC_MESSAGES/grub.mo
/usr/share/locale/eo/LC_MESSAGES/grub.mo
/usr/share/locale/es/LC_MESSAGES/grub.mo
/usr/share/locale/fi/LC_MESSAGES/grub.mo
/usr/share/locale/fr/LC_MESSAGES/grub.mo
/usr/share/locale/gl/LC_MESSAGES/grub.mo
/usr/share/locale/hr/LC_MESSAGES/grub.mo
/usr/share/locale/hu/LC_MESSAGES/grub.mo
/usr/share/locale/id/LC_MESSAGES/grub.mo
/usr/share/locale/it/LC_MESSAGES/grub.mo
/usr/share/locale/ja/LC_MESSAGES/grub.mo
/usr/share/locale/ko/LC_MESSAGES/grub.mo
/usr/share/locale/lt/LC_MESSAGES/grub.mo
/usr/share/locale/nb/LC_MESSAGES/grub.mo
/usr/share/locale/nl/LC_MESSAGES/grub.mo
/usr/share/locale/pa/LC_MESSAGES/grub.mo
/usr/share/locale/pl/LC_MESSAGES/grub.mo
/usr/share/locale/pt_BR/LC_MESSAGES/grub.mo
/usr/share/locale/ru/LC_MESSAGES/grub.mo
/usr/share/locale/sl/LC_MESSAGES/grub.mo
/usr/share/locale/sr/LC_MESSAGES/grub.mo
/usr/share/locale/sv/LC_MESSAGES/grub.mo
/usr/share/locale/tr/LC_MESSAGES/grub.mo
/usr/share/locale/uk/LC_MESSAGES/grub.mo
/usr/share/locale/vi/LC_MESSAGES/grub.mo
/usr/share/locale/zh_CN/LC_MESSAGES/grub.mo
/usr/share/locale/zh_TW/LC_MESSAGES/grub.mo
# find /usr/share/ -name "grub.mo" | grep '\/grub.mo' | sort | wc -l
38

и там нет локали POSIX

Кстати если установлен пакет
# rpm -q --qf '%{NAME}\n' rootfiles
rootfiles

то у root -а будет локаль не POSIX
# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
« Последнее редактирование: 05.02.2019 03:50:12 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Ошибка загрузки второй ОС Linux
« Ответ #14 : 05.02.2019 09:13:12 »
Если обновить в Альте ядро и e2fsprogs (только смотрите конфиг /etc/mke2fs.conf чтобы новый попал либо руками там это добавьте: auto_64-bit_support = 1 в разделе ext4{}).

В SL 8.2
После установки Simply Linux 8.2, ...

эта фича в образе:
Цитировать
http://ftp.altlinux.org/pub/distributions/ALTLinux/p8/images/simply/alt-simply-8.2.0-x86_64.iso.txt
/ALTLinux/RPMS.main/e2fsprogs-1.42.13-alt2.x86_64.rpm
$ rpm2cpio e2fsprogs-1.42.13-alt2.x86_64.rpm | cpio -idmv
$ sed -n '13,17p' ./etc/mke2fs.conf
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                auto_64-bit_support = 1
                inode_size = 256
« Последнее редактирование: 05.02.2019 09:34:23 от Speccyfighter »