The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
загрузиться в старый linux через UEFI, !*! anonymous, 15-Дек-23, 20:39  [смотреть все]
Доброе время суток всем!

Прибежала сегодня одна сотрудница спец-отдела с глазами побитой коровы перед закланием, притащила установочные диск и флешку вначале с требованиями, потом - с мольбами: закупили какое-то ПО, надо установить на комп. Внутри - какое-то наше отечественное ПО на базе дебиана, запиленного под кали, на ядре ещё 4.17.17. Флешка грузится только в режиме БИОС. UEFI не понимает категорически. :( Компы, что есть в наличии, умеют только UEFI.

Я эту штуку на раздел sda6 в итоге поставил, она даже что-то попыталась записать в mbr, но грузиться не может - говорит "Missing operating system. ERROR: No boot disk has been detected..." Диск в GPT.

Кто помнит, как lilo|grub|etc уговорить с GPT грузиться? Или как убедить это поделие загрузиться через UEFI? Современные ж дистрибутивы того же Кали умеют грузиться через UEFI. Я как-то давно вопросами загрузки не занимался - расслабился и всё, оказывается, забыл... :(

Спасибо заранее за пинок в нужную сторону!

  • загрузиться в старый linux через UEFI, !*! 1, 23:08 , 15-Дек-23 (1)
    grub насколько я зная прекрасно грузится с GPT и может все-таки uefi то отключается в этих компах?
    • загрузиться в старый linux через UEFI, !*! 1, 23:11 , 15-Дек-23 (2)
      ну гугл если начать набирать grub gpt предлагает grub gpt bios boot partition -- ну и почитать

    • загрузиться в старый linux через UEFI, !*! anonymous, 10:12 , 16-Дек-23 (3)
      > grub насколько я зная прекрасно грузится с GPT и может все-таки uefi
      > то отключается в этих компах?

      Я вчера не успел поковыряться в этой штуке - не знаю, что за загрузчик она поставила. :( Но на примере опыта работы с Астрой СЕ, вполне допускаю, что средств разработки в ней может и не быть. :( Придётся грузиться с чего-то стороннего и ставить. А я как-то упустил grub в своём развитии. С lilo в своё время разобрался, а с grub-ом проблем не возникало - не удосужился до сих пор. :(

      • загрузиться в старый linux через UEFI, !*! Аноним, 13:15 , 16-Дек-23 (4)
        Надо маленький диск ~1Mb хватит.
        Теперь необходимо сменить тип этого диска на BIOS GRUB (bios_grub) type=21686148-6449-6E6F-744E-656564454649
        Допустим он под номером 1

        # parted /dev/sda
        (parted) p
        (parted) set 1 bios_grub on
        (parted) p
        (parted) q

        # sfdisk -d /dev/sda
        сверить тип раздела

        Надо загрузится из чего нибудь, потом примонтировать диск с "новой" системой и
        chroot /в/новую/систему
        # grub-install /dev/sda
        grub-install имеет параметры, попробовать те что с UEFI если сам что ему надо не найдёт.

        • загрузиться в старый linux через UEFI, !*! anonymous, 12:51 , 18-Дек-23 (5)
          > Надо маленький диск ~1Mb хватит.

          GPT-шный EFI подойдёт? 356 Метров, 277 свободных.

          > Надо загрузится из чего нибудь, потом примонтировать диск с "новой" системой и
          > chroot /в/новую/систему
          > # grub-install /dev/sda

          А вот с этим грустно - grub в этой штуке стоит, но, видимо, какой-то древний. grub-install там отсутствует. Есть кучка утилит:
          /usr/lib/grub
          /usr/lib/grub/grub-mkconfig_lib
          /usr/bin/grub-glue-efi
          /usr/bin/grub-script-check
          /usr/bin/grub-render-label
          /usr/bin/grub-mkimage
          /usr/bin/grub-mkrescue
          /usr/bin/grub-mklayout
          /usr/bin/grub-kbdcomp
          /usr/bin/grub-menulst2cfg
          /usr/bin/grub-editenv
          /usr/bin/grub-file
          /usr/bin/grub-mkpasswd-pbkdf2
          /usr/bin/grub-fstest
          /usr/bin/grub-syslinux2cfg
          /usr/bin/grub-mount
          /usr/bin/grub-mkfont
          /usr/bin/grub-mknetdir
          /usr/bin/grub-mkrelpath
          /usr/bin/grub-mkstandalone
          /usr/sbin/grub-macbless
          /usr/sbin/grub-probe
          /usr/sbin/grub-mkconfig
          /usr/sbin/grub-mkdevicemap

          dpkg говорит, что стоит grub-common 2.02+dfsg1-4

          > grub-install имеет параметры, попробовать те что с UEFI если сам что ему
          > надо не найдёт.

          На live-cd от kali, что под рукою, grub в пакетах не стоит, но в загрузчике присутствует... :(

          • загрузиться в старый linux через UEFI, !*! Аноним, 17:19 , 18-Дек-23 (6)
            Абстрагируйся от конкретного grub. Надо всего бутнуть ядро с определёнными параметрыми. В своём родном буте пропиши их ядро с параметрами и инитрд.

            Можно поставить и другой GRUB. Файл /boot/grub/grub.conf можно потом чуть руками подправлять. Для глобальных настроек используй /etc/default/grub можно /etc/grub.d/*

            • загрузиться в старый linux через UEFI, !*! anonymous, 08:38 , 19-Дек-23 (7)
              > Абстрагируйся от конкретного grub. Надо всего бутнуть ядро с определёнными параметрыми.
              > В своём родном буте пропиши их ядро с параметрами и инитрд.

              Это понятно, но вот пока даже грузануться в grub не получается. :( Я уже освежил теорию по https://wiki.archlinux.org/title/GRUB_(Русский), попытался подменить в EFI-разделе /EFI/Boot/bootx64.efi на EFI-загрузчик с линуксовой флешки - всё равно, грузится либо винда, либо "Missing operating system. ERROR: No boot disk has been detected..."

              > Можно поставить и другой GRUB. Файл /boot/grub/grub.conf можно потом чуть руками подправлять.
              > Для глобальных настроек используй /etc/default/grub можно /etc/grub.d/*

              Это уже будет следующий шаг. Мне бы первый рубеж преодолеть...

              • загрузиться в старый linux через UEFI, !*! anonymous, 14:39 , 19-Дек-23 (8)
                >> Можно поставить и другой GRUB. Файл /boot/grub/grub.conf можно потом чуть руками подправлять.
                >> Для глобальных настроек используй /etc/default/grub можно /etc/grub.d/*
                > Это уже будет следующий шаг. Мне бы первый рубеж преодолеть...

                Поставил я другой линукс, проапдейтил grub, снова загрузился в это поделие, запустил установку - она перетёрла всё. При попытке загрузки grub ругается, что ему не хватает файла /boot/grub/x86_64-efi/normal.mod и выпадает в rescue.
                Гружусь с live-USB - файлы на месте.
                Снова пытаюсь загрузиться - rescue grub видит устройства (hd0) (hd1) (hd1,gpt8) (hd1,gpt7) (hd1,gpt6) ... (hd1,gpt1)
                систему ставлю(ил) на sda6
                На все (hd1,gptX) ответ один - "Filesystem is unknown", кроме (hd1,gpt6) - там ext2 и в этом разделе - файловая система ("новая") со всей структурой.

                Поискал по ключевому слову "normal.mod" - ничего на разделе нет. Т.е., каким-то образом инсталлер этого поделия грохнул часть кода(?) установленного grub, что он теперь не может подгрузить свои модули? Я правильно понимаю?

                • загрузиться в старый linux через UEFI, !*! 1, 14:55 , 19-Дек-23 (9)
                  глубоко не вникал, но вдруг оно -- https://archlinux.org.ru/forum/topic/946/
                  • загрузиться в старый linux через UEFI, !*! anonymous, 15:46 , 19-Дек-23 (10)
                    Я попытался скопировать (sda1)/EFI/grub/ в (sda6)/boot, теперь grub в rescue выпадает с ошибкой
                    error: symbol `grub_disk_get_size` not found.
                    при попытке загрузить модуль normal выдаёт туже ошибку grub_disk_get_size.
                    Я так понимаю, что это несовместимость версий нового модуля и старого загрузчика. Но на sda6 я не нашёл ничего, похожего на grub-install, а на live-USB загрузчик есть, но ни пакета, ни того же grub-install нет.
                    Получается, что инсталлер прописал grub и переназначил загрузку на sda6, но сам настолько древний, что работать с UEFI не умеет, а скопировать модули grub не достаточно (логично). Как бы теперь синхронизировать версии ядра grub и модулей...

                    > глубоко не вникал, но вдруг оно -- https://archlinux.org.ru/forum/topic/946/

                    Почитаю, спасибо.

                    • загрузиться в старый linux через UEFI, !*! anonymous, 17:12 , 19-Дек-23 (11)
                      К сожалению, перебрал всё, в безрезультатных попытках загрузить ядро с sda6. Через insmod grub говорит, что (модуль/ядро) не является EFI-архитектурно-независимым образом, а простые попытки впрямую загрузить (hd1,gpt6)/boot/vmlinuz выдают ошибку "Command not found". :(

                      >> глубоко не вникал, но вдруг оно -- https://archlinux.org.ru/forum/topic/946/
                      > Почитаю, спасибо.

                      Есть интересные мысли, записал себе в блокнот, но в моём случае ничего не помогло.

                    • загрузиться в старый linux через UEFI, !*! Аноним, 17:21 , 19-Дек-23 (12)
                      Есть возможность отключить установку GRUB в инсталлере?

                      99% Linux-ов вообще можно не инсталировать а скопировать всё в новый корень:

                      # cp -pRPd /old/* /mnt/new/

                      А GRUB с UEFI установить и настроить отдельно.

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

                      • загрузиться в старый linux через UEFI, !*! anonymous, 07:25 , 26-Дек-23 (15)
                        > Есть возможность отключить установку GRUB в инсталлере?

                        Не нашёл. Там есть ярлык "Установка...", ссылающийся на что-то qt-based, которое вывадит на экран какой-то копирайт, спрашивает, на какой раздел или диск поставить, выводит индикатор процесса и говорит "Ok" в конце. Может, у него где-то и есть меню конфигурации, но я не искал.

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

                        А что нужно для полного бэкапа граб-а? Я сильно подозреваю, что одни файлы модулей и конфиги из каталога grub - это не достаточно. Нужен же ещё boot-загрузчик и тело (ядро), которое потом обработает меню. А ещё, оказывается, и версии бывают разные...

                        PS: А я там ещё веточку в обсуждении отрастил, но её модератор скрыл - её совсем никто не видит?

                • загрузиться в старый linux через UEFI, !*! anonymous, 12:57 , 20-Дек-23 (13)
                  Ковыряюсь потихоньку в проблеме, читаю про grub и вдруг натыкаюсь на такой очень интересный момент: загрузился я с liveUSB (старенький kali примерно 5-7-летней давности - что валялось в загашнике)...

                  # fdisk -l
                  Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
                  Disk model: ST500LT012-1DG14
                  Units: sectors of 1 * 512 = 512 bytes
                  Sector size (logical/physical): 512 bytes / 4096 bytes
                  I/O size (minimum/optimal): 4096 bytes / 4096 bytes
                  Disklabel type: gpt
                  Disk identifier: 36DC2626-8506-44CC-A0C2-90A79D0C1DFC

                  Device         Start       End   Sectors  Size Type
                  /dev/sda1       2048    739327    737280  360M EFI System
                  /dev/sda2     739328   1001471    262144  128M Microsoft reserved
                  /dev/sda3    1001472 435116031 434114560  207G Microsoft basic data
                  /dev/sda4  435116032 854630399 419514368  200G Microsoft basic data
                  /dev/sda5  854630400 901408767  46778368 22.3G Microsoft basic data
                  /dev/sda6  901408768 943570943  42162176 20.1G EFI System
                  /dev/sda7  943570944 944754687   1183744  578M Windows recovery environment
                  /dev/sda8  944754688 976773119  32018432 15.3G Microsoft basic data

                  Disk /dev/sdb: 3.69 GiB, 3965190144 bytes, 7744512 sectors
                  Disk model: Storage Device  
                  Units: sectors of 1 * 512 = 512 bytes
                  Sector size (logical/physical): 512 bytes / 512 bytes
                  I/O size (minimum/optimal): 512 bytes / 512 bytes
                  Disklabel type: dos
                  Disk identifier: 0x26d50ddd

                  Device     Boot Start     End Sectors  Size Id Type
                  /dev/sdb1  *     2048 7744511 7742464  3.7G  c W95 FAT32 (LBA)

                  Disk /dev/loop0: 2.38 GiB, 2558971904 bytes, 4997992 sectors
                  Units: sectors of 1 * 512 = 512 bytes
                  Sector size (logical/physical): 512 bytes / 512 bytes
                  I/O size (minimum/optimal): 512 bytes / 512 bytes

                  # mount |grep sda                                                                                                                            
                  /dev/sda1 on /mnt/UEFI type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)

                  # ls -al /mnt/UEFI/EFI/grub
                  total 3604
                  drwxr-xr-x 5 root root    4096 Dec 18 12:09 .
                  drwxr-xr-x 7 root root    4096 Dec 19 06:06 ..
                  -rwxr-xr-x 1 root root     326 Dec 18 12:09 config.cfg
                  -rwxr-xr-x 1 root root  191158 Dec 18 12:09 dejavu-bold-14.pf2
                  -rwxr-xr-x 1 root root  212142 Dec 18 12:09 dejavu-bold-16.pf2
                  -rwxr-xr-x 1 root root  753664 Dec 18 12:09 efi.img
                  -rwxr-xr-x 1 root root    2970 Dec 18 12:09 grub.cfg
                  drwxr-xr-x 2 root root   20480 Dec 18 12:09 i386-efi
                  drwxr-xr-x 2 root root    4096 Dec 18 12:09 live-theme
                  -rwxr-xr-x 1 root root      27 Dec 18 12:09 loopback.cfg
                  -rwxr-xr-x 1 root root   63071 Dec 18 12:09 splash.png
                  -rwxr-xr-x 1 root root     415 Dec 18 12:09 theme.cfg
                  -rwxr-xr-x 1 root root 2395475 Dec 18 12:09 unicode.pf2
                  drwxr-xr-x 2 root root   20480 Dec 18 12:09 x86_64-efi

                  # less /mnt/UEFI/EFI/grub/grub.cfg
                  source /boot/grub/config.cfg

                  # Live boot
                  menuentry "Live system" {
                          linux   /live/vmlinuz-5.9.0-kali1-686-pae boot=live components quiet splash noeject findiso=${iso_path}
                          initrd  /live/initrd.img-5.9.0-kali1-686-pae
                  }
                  menuentry "Live system (fail-safe mode)" {
                          linux   /live/vmlinuz-5.9.0-kali1-686-pae boot=live components noeject memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
                          initrd  /live/initrd.img-5.9.0-kali1-686-pae
                  }
                  [skip...]

                  Т.е., сейчас, с загруженной live-USB системы в разделе EFI на жёстком диске конфиг груб-а от текущей live-USB системы! Подозреваю, что не только конфиг, но и остальные файлы-модули. Кто-то имет понятие, что происходит и как это работает? Расскажите, плз, прокоментируйте...

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

                  Помогите разложить в голове по правильным полочкам!

                  • загрузиться в старый linux через UEFI, !*! WatchCat, 15:41 , 29-Дек-23 (16)

                    Я бы предложил изменить вектор приложения усилий. Не воевать с сложными схемами загрузки,
                    а найти комп с пустым диском и универсальными биосом, на котором будет шанс что содержимое
                    этой флешки встанет и запустится так как это предполагали её создатели. После этого - изучать
                    что там поставилось и как собственно сам нужный софт,а не grub, перенести на те компы где оно
                    должно в дальнейшем работать. Это может оказаться быстрее,так как будут доступны все привычные
                    инструменты для изучения этой системы,а не одна только малоинформативная командная строка
                    загрузчика как сейчас.
                    • загрузиться в старый linux через UEFI, !*! anonymous, 10:58 , 09-Янв-24 (17)
                      > Я бы предложил изменить вектор приложения усилий. Не воевать с сложными схемами
                      > загрузки, а найти комп с пустым диском и универсальными биосом, на котором будет
                      > шанс что содержимое этой флешки встанет и запустится так как это предполагали её
                      > создатели. После этого - изучать что там поставилось и как собственно сам нужный
                      > софт,а не grub, перенести на те компы где оно должно в дальнейшем работать. Это
                      > может оказаться быстрее,так как будут доступны все привычные инструменты для
                      > изучения этой системы,а не одна только малоинформативная командная строка
                      > загрузчика как сейчас.

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

                      • загрузиться в старый linux через UEFI, !*! Аноним, 23:06 , 23-Янв-24 (21)
                        > что разработчики наворотили в своём аттестованном поделии - тот ещё трэш.
                        > Там и постгрес, и какой-то самописный веб-сервер на qt, преобразующий галочки
                        > установленные клиентом, в параметры командной строки. И ещё ж потом преобразование
                        > полученных результатов в удобочитаемый для хомячков формат...
                        > Всё это на основе того же kali, как выяснилось, только прилизано, переведено
                        > на русский и сертифицировано в органах...

                        Ты бы хоть тем, кто всё это закупил и сказал, чтобы больше поползновений не возникало.

  • загрузиться в старый linux через UEFI, !*! Аноним, 23:25 , 12-Янв-24 (18)
    Поставить на виртуалку. Разобрать что в итоге создаёт инсталлятор.

    Из виртуалки сдампить через dd полезные разделы на реальный комп, изменить размеры разделов.

    Параметры загрузки прописать или взятые из ВМ. Или до dd использовать дистр, который сделает нужное, а потом на bare-metal подменить содержимое разделов на взятые из ВМб может нужно поменять какие-либо пути к файлам и UUID FS. Но если вместо dd делать cp, то UUID не изменятся.

    Если нельзя просто засунуть в виртуалку и забыть.

    • загрузиться в старый linux через UEFI, !*! anonymous, 15:28 , 15-Янв-24 (19)
      > Поставить на виртуалку. Разобрать что в итоге создаёт инсталлятор.
      > Из виртуалки сдампить через dd полезные разделы на реальный комп, изменить размеры
      > разделов.

      Если б таварищи подошли изначально по-человечески - можно было заморачиваться с reverse-engineering-ом, переносом и прочими расчёсками. А так - с наездом: "мы купили, а ты должен..." "продажники не смогли, теперь ты давай..." Ну их в пень! Завёл, чтоб работало и пусть дальше читают инструкцию внимательно!..

      > Если нельзя просто засунуть в виртуалку и забыть.

      Ради них ещё и виртуалку громоздить... Не, если для изощрённо поиздеваться - конечно можно, но я как-то сразу  не додумался до такого садизма... :) Какой-нибудь vmware-player, в него - проксмокс, а туда уже - этого зверя... :)
      Проще оказалось с grub-ом разобраться...

  • загрузиться в старый linux через UEFI, !*! Аноним, 22:24 , 22-Янв-24 (20)
    >[оверквотинг удален]
    > категорически. :( Компы, что есть в наличии, умеют только UEFI.
    > Я эту штуку на раздел sda6 в итоге поставил, она даже что-то
    > попыталась записать в mbr, но грузиться не может - говорит "Missing
    > operating system. ERROR: No boot disk has been detected..." Диск в
    > GPT.
    > Кто помнит, как lilo|grub|etc уговорить с GPT грузиться? Или как убедить это
    > поделие загрузиться через UEFI? Современные ж дистрибутивы того же Кали умеют
    > грузиться через UEFI. Я как-то давно вопросами загрузки не занимался -
    > расслабился и всё, оказывается, забыл... :(
    > Спасибо заранее за пинок в нужную сторону!

    efilinux умеет кушать конфиги от сислинукса и вроде как от lilo. Если грузите через ефи, в МБР ничего писать не надо, если надо с МБР через ГПТ, у сислинукса на это есть вариант бутблока.

  • загрузиться в старый linux через UEFI, !*! Аноним, 01:06 , 24-Янв-24 (22)
    > Спасибо заранее за пинок в нужную сторону!

    Точно же! chroot, user-mode-linux, qemu и podman - всё это отличные решения проблемы "закупили какое-то ПО"




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру