Grub команды загрузки системы. Root и Boot. MBR.

Способы, как загрузить Linux. LiveCD. С HDD и из VHD.

[ x ] запретить сбор данных ...

В начало :: Карта сайта :: Быстрый поиск

Авторский сайт ТехСтоп Екб Ру :: Инфоблог

Погода :: Трасса :: Авто :: Радио
Компьютер :: Программы :: Спутники
Электрика :: Диагностика :: Сервис и ТО


Для чего важно профессиональное изучение GRUB2 ? ... Пара слов о значимости ситуации для непосвящённых ... Важную роль знаний загрузчика ОС обуславливает несколько причин : ... Управление загрузкой - установить порядок при наличии двойной установки операционных систем, тем более - таких разных, как Windows и Linux ... Устранение проблем с загрузкой - как решать проблемы, понять файлы и конфигурации ... Безопасность - современные функции Secure Boot, управление ... Настройка и расширение функциональности - новые опции и индивидуальная оптимизация ... Изучение GRUB2 позволяет глубже понять процесс загрузки компьютера и дает больше контроля над этим процессом ... Это может быть особенно полезно всем продвинутым операторам ПК - от профессиональных системных администраторов и технических специалистов установки ОС с настройкой - до уверенных пользователей домашних компьютеров ... Раз GRUB 2 пришёл в этот мир, значит это кому-нибудь нужно, и бессмысленно оттягивать неизбежное знакомство с ним, если рано или поздно, так или иначе, это всё равно - произойдет ...

Live CD на HDD / SSD.

Волшебное путешествие в страну Linux началось с того, что меня - понесло ))) ... Не в ту сторону ))) ...

Подробнее - Установка Linux в VHD ... А, именно - я почему-то вдруг решил : зачем нужно запускать Linux из-под VHD, если LiveCD образы - и так уже упакованы в имиджи, и их стоит - просто скопировать на диск, чтобы запустить и поиграться ... Реально, ведь так оно и - есть ...

Подробнее - загрузка LiveCD SDRLive Ubuntu ... Благодаря изученному способу загрузки Linux через Grub4dos текстовые команды Menu.lst - я не стал особо заморачиваться и тупо скопировал все файлы дистрибутива LiveCD в папку D:\linux ... В тот момент, я даже - не осознавал, как заблуждался, находясь лишь в начале труднейшего пути ))) ... Исследование, получилось - столь объёмным и громоздким, что отдельные главы пришлось вынести за кавычки - в новые страницы, чтобы отделить и оставить - самое важное и нужное ...

GRLDR команды загрузки Linux LiveCD с HDD вместо USB.

GRLDR команды загрузки Linux LiveCD с HDD вместо USB. boot linux livecd from hdd fig 10 sdrlive ubuntu grldr command.

После этого прописал команды загрузки в Menu.lst ...
title Linux SDRLive Ubuntu ...
set root=(hd0,0) ...
kernel (hd0,0)/linux/boot/vmlinuz ...
initrd (hd0,0)/linux/boot/initrfs.img ...
boot ...
и получил строку меню запуска ОС ... И, действительно, система запустилась - без проблем ...

Строка меню загрузчика, согласно коду команд.

Строка меню загрузчика, согласно коду команд. boot linux livecd from hdd fig 20 grldr menu load string.

Подробнее - сборник спутниковых декодеров ... Однако - не всё так просто, и я немного слукавил ... На самом деле я хотел установить сборник спутниковых декодеров gr-satellites, но инсталлирование, почему-то - не пошло ... Тогда то, я и выдумал - установку другой LiveCD Linux системы, например Ubuntu 2022, как - самый лёгкий путь добавления repository ppa : daniestevez / gr-satellites ... Однако, сразу же, начались - непонятки ... Структура файлов и папок - отличалась, а системы - ни в какую не хотели грузиться ... Я просто офигел от такой компьютерной наглости ... Раз за разом GRLDR посылал меня куда подальше, и я перепробовал кучу способов и вариантов строк кода, но не продвинулся даже на миллиметр ))) ... И то, что этот способ - однажды сработал, просто - везение, заслуги кодировщика образа установки (включившего возможность запуска с жесткого диска), совместимость ПО или случайное стечение обстоятельств ))) ...

Проблемы бут лайфа с дискового накопителя.

Вопрос по grldr ... Если есть команда set root=(hd0,0) почему нельзя использовать имя переменной root в команде kernel root / linux / boot / vmlinuz, а нужно - явно указать (hd0,0) / linux / boot / vmlinuz или есть другой способ использовать переменную root ? ... Лишь значительно позже я более детально исследовал команду SET и не вкурил её назначения ...
Например, если текущий root (hd0,0) , то ...
set root=(hd1,2) не изменяет root текущий (hd0,0) ...
Однако, команда root (hd1,2) немедленно изменяет назначение root на (hd1,2) ...
Что делает команда set - не совсем понятно ... Ещё позже - появилась недостаточная, для полноценного восприятия - информация об использовании переменных $kernel $root ... Возможно set root=(hd1,2) изменяет $root в скриптах, но это не точно ...

... Содержимое образов filesystem.squashfs смотреть программой Bitberry File Opener ... Заинтересовала утилита qemu-utils VHD создания образов, к уже известным простым программам disk2vhd и DiskGenius Standard ... Конечно же я не забываю и про известный платный и бесплатный софт : Acronis True Image, EaseUS Todo Backup, Clonezilla, Paragon Hard Disk Manager, Symantec Ghost Solution Suite, Macrium Reflect Paramount Software, AOMEI Backupper ...

Некоторые полезные команды ... Hostnamectl - узнать версию операционки ... mount -l (L маленькая) - узнать, кто куда примонтирован ... CTRL+L - очистить экран ... tree - полезно доустановить эту утилиту, чтобы отображать содержимое папок диска в виде трея / дерева ... Полезными могут оказаться и команды uuid, blkid ... Интересные команды : df - отчёт об использовании свободного места и lsblk - список блочных устройств в системе ... ls -l /dev | grep sd - отсортирует вывод списка дисков в системе ...

Я уже понимаю, что здесь - что то не так ... Всё - перепутано, и инструкции для grub4dos - перестают действовать ... Но вот, что именно происходит, пока - не отдупляюсь ))) ... Напрягают новые незнакомые команды и различие наборов файлов с поддержкой UEFI ...

Точка остановки initramfs.

Используя вручную вызовы ядра kernel сложных конструкций vmlinuz, но при этом отбрасывая параметры строки инициализации - в большинстве случаев можно дойти до командной строки с приглашением initramfs> и полной остановке в этой точке загрузки ... Я имею ввиду конструкции, типа : ...
kernel /boot/vmlinuz ...
initrd /boot/initrd.img ...
... Иногда, в момент выполнения, строка может заканчиваться - с упоминанием значения = 1000 ... Это какая-то не случайная точка перехода / или передача управления новому главному процессу PID 1 в загружаемой системе ... Остановка выполнения кода объясняется потерей передачи инструкций, которых - не произошло : из-за ошибок согласования, отсутствия настроек назначения в параметрах строки инициализации vmlinuz или недозагруженных модулей (неизвестно) ...
ps -p 1000 ... эта Linux команда может прояснить, какой процесс с идентификатором 1000 выполняется в этот момент времени ...
Но, дойти до строки с приглашением : initramfs> можно в большинстве случаев загрузки vmlinuz - без уточняющих параметров ))) ...

... init ram fs - инициализация файловой системы в памяти ... В этой точке происходит остановка, так как загрузчик не получает параметров путей для продолжения и теряется в пространстве ... Так я понял эту неисправность ... Советы : исправить меню загрузки BIOS - убрать из первых пунктов CD-ROM привод, а также попробовать режим AHCI ... При включении AHCI у меня появился AHCI-HDD, который лез в самую первую строчку списка устройств загрузки в BIOS, и этим самым - сдвигал все остальные буквы ... Вообще-то, это - не помогло и я отказался от его включения ... И, кроме того, режим AHCI при загрузке USB LiveCD даёт сбой : GET E820 memory и - зависает ... А вот, CD-ROM - действительно убрал из топа ))) ... Продолжая - важно понимать различие названий (initramfs, vmlinuz, busybox, initrd.img) компонентов, встречающихся в строках инициализации загрузчиков ядра, и их функциональность ...

# ... initramfs - это небольшая файловая система, которая загружается в оперативную память перед загрузкой основного ядра Linux ... Она содержит минимальное количество файлов и утилит, необходимых для инициализации системы и подготовки к запуску основной операционной системы ... Она может содержать модули ядра, драйверы устройств, скрипты и другие необходимые файлы для успешной загрузки.

# ... busybox - это утилита, которая предоставляет набор основных команд и функций, обычно используемых в Linux-системах, компактный набор базовых директив ... Включение busybox в initramfs позволяет расширить функциональность initramfs, добавив такие команды, как монтирование файловых систем, настройку сети и выполнение других базовых операций ... initramfs и busybox работают вместе для обеспечения необходимых инструментов и команд во время инициализации системы ... Initramfs предоставляет минимальную файловую систему, а busybox предоставляет набор команд и утилит для выполнения базовых операций во время этой инициализации ...

# ... vmlinuz - это сжатое ядро Linux, которое содержит основной код операционной системы ... Буква Z в конце имени означает - сжатие ... vmlinuz отвечает за управление аппаратными ресурсами и обеспечивает основные функции ядра, загружаясь и выполняясь во время загрузки - после подготовки, проведённой initramfs ... В бут записях вы часто могли видеть, что vmlinuz часто загружают с initrd.img ...

# ... initrd.img - представляет собой небольшую файловую систему, которая загружается в оперативную память перед запуском основного ядра Linux ... Она содержит минимальное количество файлов, утилит и модулей, необходимых для инициализации системы и подготовки ее к запуску ; драйверы устройств, скрипты и другие необходимые файлы для успешной загрузки ... Уже вижу вопрос в ваших глазах : как же - так ? ... initramfs и initrd.img (initramfs image) - это одно и то же ... Оба компонента - выполняют схожие функции ... Так, оно и есть, за исключением одного - но ... initrd.img (Initial RAM Disk Image) - это устаревшая форма initramfs, которая представляет собой сжатый образ диска файловой системы ... В то же время, initramfs (Initial RAM File System) - это сжатый архив файлов, также разворачиваемый в файловую систему в оперативной памяти - для инициализации загрузки ... Используя иной метод сжатия, initramfs - может быть более эффективным и быстрым в использовании ... В настоящее время большинство дистрибутивов Linux используют initramfs вместо initrd.img - из-за его преимуществ в эффективности и скорости ...

Boot Linux VHD.

... Прежде чем играть с VHD - сначала нужно научится обычной ISO загрузке и я пошёл более известным путём, юзая виртуальные машины для ПК ... Естественно - пришлось хапануть дополнительных проблем ... Microsoft VC++ 2019 ... Сбои при запуске ... VHD на x64 ... Но, окончательно меня доконало - отсутствие Intel VT-x процессорной поддержки виртуальной технологии, без которой невозможен гостевой вход в виртуальную машину на системах с ОС x64 ...

... Буквально благодаря этому исследованию - появилась информация запуска VHD с Linux, как - с USB флешки, так и - непосредственно с HDD / SSD диска ... Ventoy - не сможет создать альтернативную конкуренцию для компонент инициализации операционной системы Linux (перечисленных выше), но - предлагает интересные решения на тему : как можно просто грузить виртуальные дисководы ...

Почему стоит обратить внимание на VHD и держать этот способ запуска ОС в уме ? ... Да - потому-что тренировочные LiveCD, хотя и позволяют настраивать сеть и устанавливать новые программы, но никакие изменения или настройки - не сохраняются, и при следующей перезагрузке системы - снова оказываешься у разбитого корыта ))) ... Установка Linux в VHD, по крайней мере - позволяет модифицировать систему, с сохранением и спрячет лишние 1,5 тысячи файлов - от других систем ...

Установка USB LiveCD на SSD. Real mode ))) ...

Вволю набодавшись - я решил пойти другим путём, а именно : установить LiveCD на HDD, и уже с диска - сделать VHD ... После установки XUbuntu Gorizont с USB флешки на реальный SSD из-под GRLDR - обнаружилось, что установщик - не прописал пути загрузки Linux ... Файлы загрузчика GRUB 2 должны были быть вмонтированы в систему - автоматически ... Но, вот - как передать им управление - совершенно непонятно ... Штудируем релевантную техническую литературу ... Постепенно, полное погружение в состояние дзена - открывает чакры, и наступает - просветление ...

... Руководство и инструкции по плавному переходу с GRUB Legacy на GRUB 2 ... Что такое GRUB ? - это один из самых часто используемых загрузчиков, который используется на всех компьютерах с Linux, кроме встраиваемых ... Роль GRUB состоит в загрузке ядра Linux с диска в память, а также передаче ему управления ... Зачем переходить на Grub 2 ? - прежде всего, потому, что Legacy - больше не поддерживается и не обновляется ... GRUB Legacy - стал ошибочным предположением разработчиков, что никакие новые файловые системы не заменят /boot размером более 2 Гб ... GRUB2 - стремится быть более ясным / портируемым / мощным, с чистым кодом ; поддерживает большее число конфигураций оборудования / файловых систем / и разметок диска ... Переход на GRUB2 - достаточно прост : он будет установлен в процессе обычного обновления системы пакетным менеджером ... Если он не будет загружен автоматически, его всегда можно установить командой - вручную ...
* Первая важная часть состоит в том, чтобы понять, какой диск загрузочный ... Простой способ это проверить - посмотреть настройки установленного GRUB Legacy ... root (hd x,y) заменяется на /dev/sd(xy) ... Где x - диск , y - раздел ...
* Следующий шаг - установка и конфигурация GRUB2 в раздел /boot - без удаления GRUB Legacy из Master Boot Record / MBR ... GRUB2 использует файл конфигурации /boot/grub/grub.cfg, в то время как GRUB Legacy использует /boot/grub/grub.conf ... Так как из-за неправильной конфигурации GRUB можно получить не загружающуюся систему - проверить конфигурацию GRUB2 - прежде, чем сделать её - постоянной ...
* Если все хорошо работает, можно заменить GRUB Legacy, и удалить его из системы ...

... Подсказка от знатоков ... Управление передаётся по цепочке из GRLDR в GRUB 2 ...
title Chainload into GRUB 2 ...
root (hd x,y) ...
kernel /boot/grub/core.img ...
* Если при установке Ubuntu - grub установлен в /dev/sdb, то - всё будет хорошо ... Теперь виндовый загрузчик без труда сможет загрузить grub2 через grub4dos ... А grub2 - загрузит Ubuntu ... При обновлении ядер, загрузчик grub2 сам обновляет информацию о ядрах ... А раз мы загружаем grub2 через grub4dos, то делать руками - ничего не нужно ...
* До этого момента я никогда не пользовался grldr.mbr ... Он нужен, чтобы прописать в boot.ini - C:\grldr.mbr="Ubuntu" ... Но у меня уже лет 10 или более - нет boot.ini ... Все загрузки ОС - строго через grub4dos и VHD файлы ...

Сейчас найду диск через find /boot/grub/core.img и попробую подключится к загрузке ... Заодно - опробую утилиту Disk2vhd, способную прямо из рабочей системы закатать все разделы реального SSD диска - в vhd файл, с ограничением до 127 Гб по размеру ... Ямщик, не гони лошадей ... Похоже, что из-за проблем загрузки Линукс, пока - не до Disk2vhd ))) ... Извините, но этот способ - что-то совсем не работает, как и многие другие ))) ... Не извиняю, потому-что приводимые в интернете примеры - часто носят конструкционный, но не рабочий характер, лишь образно показывая варианты различий, да и то - с ошибками в синтаксисе команд ))) ...

Нерабочий пример grub4dos (устаревший и MBR совместимый Grub Legacy) ... Нумерация дисков и разделов - начиная с 0 ... Конфигурация = MENU.LST ...
timeout 5
title SystemName ...
root (hd0,0)
kernel /boot/SystemKernel root=/dev/sda3 ... Возможно - ошибка ... Не уверен, что здесь допустимо или необходимо так указывать root ... Передача правильных параметров в командной строке - допускается и поддерживается grldr, о чем станет известно - ниже по тексту ...

Нерабочий пример Grub 2 (современный и UEFI совместимый GPT лоадер) ... Нумерация : диски - начиная с 0 и разделы - начиная с 1 ... Конфигурация /boot/grub/grub.cfg ...
timeout=5
menuentry SystemName {
set root=(hd0,1) ... нет команды root, но можно неявно установить root - как переменную окружения...
linux /boot/SystemKernel root=/dev/sda3 ... В Grub 2 строки инициализации включают множество настроек параметров ... Явно показано лишь, что kernel - заменяется на команду - linux ; а title - на menuentry ... Всё, остальное - бред, так как в реалии - содержат гораздо больше параметров инициализации ))) ...
}

... Полезные советы и приемы системного администратора ... Устаревший GRUB - имел много достоинств, но он - устарел, и его разработчики - жаждали большей функциональности ... И так, на свет появился - GRUB 2 ... GRUB 2 - это серьезная переработка с несколькими существенными отличиями ...
* Он загружает съемный носитель и может быть настроен с возможностью входа в BIOS системы ...
* Его сложнее настроить с помощью всевозможных сценариев, и вместо того, чтобы иметь хороший, довольно простой /boot/grub/menu.lst файл со всеми конфигурациями в одном месте - по умолчанию используется /boot/grub/grub.cfg ... Который, кстати - не редактируется напрямую ... Потому что, это - не для простых людей, а только - для других скриптов ...
* Мы, простые люди - можем редактировать /etc/default/grub, который в основном управляет внешним видом меню GRUB ... Мы также можем редактировать сценарии в формате /etc/grub.d/ ... Это сценарии, которые загружают ваши операционные системы, управляют внешними приложениями, такими как memtest и os_prober, и темами ... /boot/grub/grub.cfg создается из /etc/default/grub и /etc/grub.d/* когда вы запускаете команду update-grub - которую вы должны запускать каждый раз, когда вносите изменения ...
* Хорошей новостью является то, что этот update-grub сценарий - надежно позволяет найти ядра, загрузочные файлы и добавить все операционные системы в меню загрузки GRUB, поэтому вам не придется делать это - вручную ...

* Мы собираемся узнать, как исправить две наиболее распространенные неисправности ...
1) ... Прерывание в командной строке grub : модуль normal.mod загружен, но / boot / grub / grub.cfg - не найден ...
2) ... Прерывание в командной строке grub rescue : не найден модуль normal.mod, как и / или иные инициализационные файлы ...
# ... Если приведённые примеры и подсказки - не помогают - используйте живой аварийный Super GRUB2 live rescue disk ...

??? ... Краткое ознакомление, просмотр видео от разработчиков, установка CD на USB флешку при помощи balenaEtcher ... Загрузка, запуск и попытка исправления ... Невероятно, но ... Невозможная волшебная магия Rescatux программного помощника Rescapp мастера - за 3 минуты устранила проблему, над которой я бился последние трое бессонных суток ... И, в итоге - я впервые увидел окно загрузчика GRUB 2 ...

Однако, восстановление пошло не по плану, описанному в технической литературе : MBR -> PBR -> grub4dos -> grub2 -> os loader ... А, как раз - наоборот : MBR -> PBR -> grub2 -> ... А, затем : или -> os loader || или -> grub4dos -> os loader ... В этом плане, Grub2 - похож на Bootmgr от Windows ... Этапы восстановление загрузки утилитой Super Grub2 - по шагам и с картинками ...

Все найденные загрузочные записи и варианты загрузки.

Все найденные загрузочные записи и варианты загрузки. boot linux livecd from hdd fig 25 all found load record.

Чтобы увидеть код - нужно стрелками вверх / вниз перейти на строку (подсветить) и нажать клавишу E ...

Найденная загрузочная запись Ubuntu на реальном SDD.

Найденная загрузочная запись Ubuntu на реальном SDD. boot linux livecd from hdd fig 30 load record.

Обратите внимание, как маркируется диск : hd2, msdos2 ... То есть, где-то на диске вставляется grub.mbr ??? ... Или grub.mbr - уже знает про все точки монтирования msdos партиций ??? ... Далее : вместо kernel идет команда Linux ... / boot / vmlinuz-5.4.0-100-generic - это реальный файл, и я пытался прописать к нему пути, но - безрезультатно (из GRLDR grub4dos) ... Далее - идёт переназначение переменных $x : root, uuid, kernel, version ... Кстати, GUID раздела - не соответствует действительному и видимо имеет - временный / загрузочный идентификатор (хотя я могу и ошибаться в интерпретации) ...

Наконец у меня дошли руки изменить язык программы с английского на русский.

Наконец у меня дошли руки изменить язык программы с английского на русский. boot linux livecd from hdd fig 60 change language.

Список устройств, разделов, подразумевается - жёстких дисков.

Список устройств, разделов, подразумевается - жёстких дисков. boot linux livecd from hdd fig 70 device part list.

Вот эта фраза : обнаружена неизвестная файловая система - так вообще убивает ...

То, ради чего нужна программа Rescatux и мастер Rescapp - GRUB 2 загрузочное меню.

То, ради чего нужна программа Rescatux и мастер Rescapp - GRUB 2 загрузочное меню. boot linux livecd from hdd fig 80 grub 2 menu.

Вот то самое окно, ради которого и был затеян весь сыр бор ))) ... Меню выбора загрузки ОС GRUB 2 v 2.04 ... Но самое интересное - на следующей картинке : пункт меню выбора Windows Recovery Environment (on / dev / sda1) ...

Старое Grub4dos меню загрузки OS - по ссылке из GRUB 2.

Старое Grub4dos меню загрузки OS - по ссылке из GRUB 2. boot linux livecd from hdd fig 90 grub old dos menu.

Та-данн ... Круг - замкнулся ... Мы вернулись в старое меню выбора и запуска ОС, которое никуда не делось, и по прежнему - настроено и работоспособно ... Теперь отсюда можно стартовать виртуальные VHD Windows 7 и XP, а также самодельную загрузку LiveCD Ubuntu Linux ... Однако, снова вернуться из grldr в grub2, пока - не получается ... И вот, какие, по этому поводу, у меня возникают вопросы ... Как же это так вышло ? ... Как на одном ПК совместились 2 разных способа загрузки Linux ??? ... Почему Linux системы грузятся различными способами ... И, почему - не могут быть загружены иначе ??? ...

Конфигурационный файл grub.cfg

Несмотря ни на что - теперь на ПК есть конфигурационный файл / boot / grub / grub.cfg нового меню, с которым можно поиграться, хотя это и запрещено в самом начале файла ))) ... Здесь очень интересно реализован оператор if выбора, заканчивающийся зеркально наоборот, как - fi ))) ... Красота, да и только ))) ... Это конструкция условного оператора скриптового языка bash (командная оболочка shell и интерпретатор командной строки) в Linux ... Bash является расширенной версией устаревшей оригинальной оболочки sh и предоставляет множество дополнительных функций и возможностей для гибкого администрирования систем ... Прослеживается преемственность команд sh и bash, также, как и su / sudo, где su - переключение между пользователями (включая root суперпользователя [администратор]), а sudo - это выполнение команд от имени администратора с привилегиями root, но не переключаясь на суперпользователя - полностью ...

Краткий пример содержания конфигурации grub.cfg - ниже ...

# DO NOT EDIT THIS FILE
# It is automatically generated by grub-mkconfig using templates
### BEGIN /etc/grub.d/00_header ### ... Это заголовок для секции пользовательских настроек ...
$ prefix / grubenv ... Обзор пользовательского окружения, подгрузки, обработка ошибок ...
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 ... Поиск систем, точек монтирования и прочие настройки ...
### BEGIN /etc/grub.d/10_linux ### ... Секция формирования пунктов меню выбора загрузчика GRUB 2 ... menuentry ... submenu ...
Ubuntu ...
Advanced options for Ubuntu ...
Memory test (memtest86+) ...
Memory test (memtest86+, serial console 115200) ...
Windows Recovery Environment (on /dev/sda1) ... Эти строки кода - в точности повторяют то меню GRUB2, которое было на картинке - выше ... Интересно, можно ли заменить эту надпись, например на OLD Style GRLDR Windows / Linux / VHD boot menu ??? ... Это же, просто - текст ... Да - нет, не всё тут - так просто ))) ... Нормальное меню - это модуль normal.mod ...

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries ... Simply type the menu entries you want to add after this comment ... Be careful not to change the 'exec tail' line above ...
Этот файл предоставляет простой способ добавления пользовательских пунктов меню ... Просто введите пункты меню, которые хотите добавить после этого комментария ... Будьте осторожны, чтобы не изменить строку exec tail - выше ...
Комментарий ... Нет такой строки ... Или это означает - хвост / конец кода (не повредить его) ??? ... Здрасте ... То есть - всё-таки можно изменять этот файл ? ))) ... Опять жути нагоняют прежде времени ... Надо будет попробовать поиграться с ним ... Скорее всего, редактировать - можно, но - бессмысленно, так как следующая автоматическая генерация - затрёт все исправления ...

Главное, что нужно знать пользователю, это - то, что файл конфигурации автоматически собирается из секций 00 10 20 30 40 командой : sudo upgrade-grub , и допускается модификация только пользовательской секции 40_custom ... Если вы - не конченый садо / мазо, для редактирования я рекомендую светлый текстовый редактор MousePad с правами администратора : sudo mousepad /etc/grub.d/40_custom - вместо широко известных nano, vim, emacs, gedit, kate ... Линукс - тоже меняется, и чаще - в лучшую сторону ))) ... Обязательно обновить сборку после редактирования ...

Жизнь без GRUB 2 ... Как жить дальше ? ...

Теперь - главный вопрос : можно ли использовать файл grub.cfg, чтобы прописать пути загрузки для LiveCD систем, которые - не могут быть загружены старым GRLDR лоадером ??? ... И, ещё один, не менее главный вопрос : где живёт загрузчик GRUB 2 ... Поверхностный обзор системы - не дал ответа на этот вопрос ... Никаких внешних отличий - не обнаружено ... Упс ... Как же так ? ... Он, что - из воздуха материализуется, что-ли ??? ))) ...

... Поэтому - был выполнен тщательный обзор дисков и систем - на наличие следов GRUB2 ... Отсюда - вы узнаете : ...
* Нет явных следов, лишь - неявные симптомы ...
* Теперь, главный SSD - не grub4dos, а - Unknown MBR ... Однако, PBR - так и остался GRLDR ...
* Главное отличие Grub For DOS от GRUB 2 - следует искать в записях MBR / PBR загрузочного жёсткого диска ...
* Информации - мало, но исследование - продолжается ))) ...

Итак, главный признак Grub 2 в том, что его - нет ... Вы - не найдёте, ни - grubnew, ни - grub2 ... Нет - физически, как файла ... Есть код передачи управления MBR на главном системном : active, bootable SSD ... И есть сам загрузчик GRUB2 - на другом SSD диске с Linux ... А, что будет, если я - вытащу этот второй сменный SSD ? ... Что будет делать системный SSD GRLDR с кодом запуска GRUB2, которого - нет ??? ))) ... Обалденный вопрос ))) ... 99% что никакой загрузки - не будет ... А, что - будет ? ... Проверим ...

При отказе GRUB2 появится GRUB RESCUE.

При отказе GRUB2 появится GRUB RESCUE. boot linux livecd from hdd fig 120 no grub2 life rescue.

... Руководство написано для GRUB 2 - текущей версии загрузчика GRUB ... При отказе основного загрузчика - появляется командная строка спасения - приглашение GRUB Rescue ... Если на диске есть полный комплект файлов лоадера - становятся доступны команды : ... boot - грузить ... cat - печать содержимого файла в стандартный вывод ... configfile - загрузка файла конфигурации ... initrd - подгрузить образ initrd.img ... insmod - подгрузить модуль mod ... loopback - подключить файл образа в качестве устройства ... ls - отобразить содержимое каталога / раздела ... lsmod - показать список загруженных модулей ... normal - активировать обычный модуль (меню нормального входа в систему) ... search (--file ; --label ; --fs-uuid) - поиск ... set - печатает или устанавливает переменные среды ...

Если же, на диске есть - только точка входа в GRUB 2, то будет доступно лишь несколько команд ... Поиграемся с ними и посмотрим ответы ...
команда => ответ ...
set => cmdpath=(hd0) ... prefix=(hd0)/boot/grub ... root=hd0 ...
ls => (hd0) (hd0,msdos0) ...
ls (hd0,msdos0) => Filesystem is unknown ...
ls (hd1) => hd1 cannot get C/H/S values ...
ls (hd-1) => disk 'hd-1' not found ))) ...

Итак, в rescue спасительном режиме - действуют лишь команды, способные помочь понять расположение, окружение и основные настройки, то есть, их использование - почти полностью бесполезно ... Отсюда вытекает ещё один важный вывод : GRUB 2 нужно ставить на активный системный bootable диск ... Но - не спешите внимать советам и наглушняк валить бутлоадер системного диска - ради поигрушек ))) ... Здесь, надо действовать - тоньше, хитрее и рассудительнее ...

Как вариант, грузимся в USB диск аварийного восстановления Hirens Boot CD Recovery PC.

Как вариант, грузимся в USB диск аварийного восстановления Hirens Boot CD Recovery PC. boot linux livecd from hdd fig 130 no grub2 life hbcd.

Выбрать PloP Boot Manager, и далее HDB partition 1.

Выбрать PloP Boot Manager, и далее HDB partition 1. boot linux livecd from hdd fig 140 no grub2 life plop.

PloP Boot Manager ... Если выбрать HDA partition 1 - то будет снова загружен диск HBCD и меню восстановления Hiren's Boot CD ... Это происходит потому, что USB диск восстановления занял место - hd0, сдвинув System SSD - на hd1 ... Выбираем HDB partition 1 и попадаем на hd1 системный диск компьютера ... Замкнутый кольцевой цикл ))) ... Обратите внимания, что номера дисков - заменены на буквы : HDA, HDB ...

При выборе HDB - будет загружено меню grub4dos с HDD жёсткого диска.

При выборе HDB - будет загружено меню grub4dos с HDD жёсткого диска. boot linux livecd from hdd fig 150 no grub2 life hdd grldr.

Не смотрите, что вверху написано Hiren's Boot CD - просто я взял GRLDR с этого диска ))) ... А grub4dos меню - грузится, потому-что так установлен PBR / partition boot record, и всё остальное - настроено совместимо ... Если бы PBR был настроен на NTLDR или Bootmgr, то грузился бы - Windows ... Не суть ... Главное, что все системы старой настройки - снова оказались готовы к работе ... Также, вы можете использовать любые известные собственные варианты и решения способа выбора загрузочных записей систем, главное - обойти точку выбора MBR, а дальше всё пойдёт - как по маслу ))) ...

На этом многодневный компьютерный марафон, можно было бы считать - завершённым ... И хотя не все цели и задачи были достигнуты и решены, пройдёт ещё немало времени, прежде чем полученная информация - уляжется в голове и будет готова помочь в будущих компьютерных проблемах ... Предстоят - ещё более опасные эксперименты с бутлоадером, но они уже основаны на прочном фундаменте системного администрирования и под надёжной защитой известных программ восстановления работоспособности ПК ...

P.S. ... Ну почему мне не даёт покоя - способ : ...

... управление передаётся по цепочке из GRLDR в GRUB 2 ... Если, при установке Ubuntu, grub - установлен в /dev/sdb, то - всё будет хорошо ... Мало того, что это - наиболее оптимальный краткий способ, так ещё и - не портит основной загрузочный диск ... Суть в том, что загрузочный сектор MBR - должен быть записан на втором / сменном НЖМД, а не на - первом / основном ... Нужно всё переделать и попробовать ещё раз ...
title Chainload into GRUB 2 ...
root (hd x,y) ...
kernel /boot/grub/core.img ...

... Чё за на ... Нет, вы только - посмотрите, что творит этот BootIce v1.3.3.2 ... Он явно указывает GRUB 2 идентификатор партиции ... Этот модифицированный БутАйс - умеет читать и писать Grub2 ))) ...

BootIce китайской версии покажет на диске загрузочные сектора Wee, Grub4dos, Grub 2, Lvyanan 1JF9, Plop, UltraISO USB HDD ZIP и Windows NT 5 6 MBR.

BootIce китайской версии покажет на диске загрузочные сектора Wee, Grub4dos, Grub 2, Lvyanan 1JF9, Plop, UltraISO USB HDD ZIP и Windows NT 5 6 MBR. boot linux livecd from hdd fig 160 bootice v1.3.3.2.

Узнав о таком ништяке - я тут же восстановил свое старое доброе и многофункциональное текстовое меню загрузки, а во вторых - попытался загрузиться указанным способом ... Метод Chainload загрузки по цепочке - не сработал и на этот раз ... Зато, я открыл / вспомнил - новый вариант : клик клавиши ESC на первой секунде запуска BIOS - во время включения ПК ... Это позволяет выбрать любой из USB флэш / HDD жёстких SSD дисков - в качестве основного, для принудительной загрузки с него ...

Итак, открыв новые варианты, я лишь - умножил проблемы ))) ... Мне потребовалось трижды проанализировать последовательность действий, чтобы отловить неочевидную ошибку ))) ...
... Для Linux SDRLive Ubuntu параметр set root=(hd0,0) - абсолютно верный и правильный, так как папка запуска расположена на системном диске hd0 ...
... Фактически, на ПК установлены : новый SSD 1 Тб (status = boot, active, GRLDR), как hd0,0 / sda1 ... И - старый HDD 750 Гб (status = none), разделённый на hd1,0 / sdb1 и hd1,1 / sdb2 ... И Вот эти буковки / циферьки - играют огромную роль в понимании конфигурации загрузки системы ... Старый hd1 - установлен в адаптер вместо CD-ROM привода ...
... Продолжая эксперименты на LiveCD Gorizont Ubuntu, я установил в адаптер CD-ROM - другой SSD 120 Гб - вместо сдвоенного HDD 750 Гб ... Судя по скриншотам, системный hd0 в это время - оставался подключен и, поэтому - мог получить доступ к своему загрузочному меню ...

... Поскольку, кроме знакомства с Linux и Grub 2, основная цель, это - установка gr-satellites ... И поскольку, два первые рекомендованные способа : Ubuntu PPA и Conda / MiniConda - не завершают установку gr-satellites без ошибок ... Было принято решение - заюзать альтернативный вариант установки дистрибутивов, предоставляющих свои собственные пакеты gnu radio и gr-satellites, а это : Arch Linux и Debian Linux (режим тестирования и нестабильные выпуски) ...

Установка Arch.

... Поскольку я не знаю способа установки Linux в папку на жёсткий диск, то : хоть установка Live CD, хоть Arch / Debian - требуют внешнего дисковода, который уже и стоит в адаптере CD-ROM (это SSD 120 Гб) ... И здесь, дело - даже не в буквах ...
... Если вы грешили последние несколько лет / десятилетий - даже не пытайтесь устанавливать Arch : ибо, буквально всё, от начала до конца - происходит вручную, а по окончании процесса - всё равно увидите черное окно DOS ))) ...
... Заранее подготовить жесткий диск ... точка монтирования / основной раздел , ext4 (25 - 100 Гб) ; раздел SWAP , размер = оперативная память * 8 или от 1024 Мб ... Подготовить в графических программах, чтобы позже - не троить на ручном вводе команд ))) ...

Linux Arch в DOS окне / ручном режиме ...

Установка Debian LiveCD.

Напротив, Debian LiveCD, после графического инсталлера, по окончании процесса - заработал только в черном окне DOS или мигает курсор в верхнем левом углу ... Кстати, как было позже выяснено, мигание курсора - не всегда является неисправностью ... Нужно подождать 300 секунд / 5 минут, если это время требуется инициализатору системы для проверки дисков ... После - наступает точка принятия решения : валить / не валить ...

... почему Дебиан - не графический ? ... Опытные пользователи не рекомендуют установку с LiveCD, считая это глючным вариантом бесполезной траты времени ... Лучше не использовать LiveCD ... Во первых, малополезно, во вторых они неофициальные ... Используй обычный установочный образ с прошивками ...

Установка Debian v12 x64 Xfce 2023.

Вняв рекомендациям - выбрал для установки образ debian-12.1.0-amd64-netinst.iso ... После Арча, никакие сетевые установки, уже - не страшны ))) ... На самом деле, рассказывать об этой процедуре, особо - нечего ... Практически идеальная русско / язычная установка со всеми настройками и загрузками ... 100% успешная, как Xfce (1100 файлов), так и Gnome (1450 файлов) ... Разница по времени - небольшая, по красоте - приличная, а также desktop Gnome - упихан локальными мини играми ... Не понравилось, что игры и приложения Libre Office - разбросаны по меню, а не лежат в своих папках ... Но, это - мелочи жизни ))) ... Главное - действительно есть полная поддержка GRC / GNU Radio и gr-satellites ...

Итак, решил опробовать вариант установки : с единственным жёстким диском на ПК - без вариантов для установщика ... Извлёк системный диск, но оставил в голове ссылку hd0 ... По окончании установки и проверок - решил вернуть диск на место и совершил роковую ошибку, то есть - элементарно - запутался в буквах и расположениях, а ещё и удивлялся : почему размер системного привода 750 Гб вместо 1 Тб ... Естественно, я безосновательно требовал, чтобы none диск - стал системным, да ещё и грешил, что программа Rescatux и мастер Rescapp - не справляются с восстановлением ... На самом деле, на диске - даже не было файла GRLDR : ну и как ему изволите приказать грузиться ? ))) ...

Как это произошло ? ... Да - очень просто : перепутал местами приводы System SSD и Data HDD ... Причем, на загрузке систем - это практически никак не отразилось ... Именно поэтому, мне пришлось - трижды полностью проанализировать все этапы эксперимента, чтобы осознать неисправность, лежащую под самым носом ... Даже сейчас, эти строки - я пишу на перепутанных дисках - не осознавая и не испытывая какого-либо дискомфорта ))) ... Сейчас - остановлю ПК, верну расположение HDD / SSD на место и продолжу ...

Да, вот теперь, всё на своих местах ... hd0 GRLDR Windows VHD, грузится по умолчанию ... hd1 GRUB 2 Linux Debian, грузится по Escape ... Загрузка по цепочке Chainload into GRUB 2 - не работает, kernel не принимает ядро core.img, файловая система не поддерживается ... На текущий момент времени, такой вариант - меня совершенно устраивает ...
Потому-что Chainload не работает - в том виде, в котором его - преподают ...
Команда kernel не грузит ядро GRUB 2 ...
Команда Linux не работает в grub4dos ...
Но, прежде, чем перейти к детальному исследования chainload - разберу сложный случай запуска DragonOS с жёсткого диска и посмотрю, какие из этого можно извлечь выгоды ))) ... Информация должна поступать в мозг - последовательно и дозированно, чтобы - тренировать, а не разорвать его - пополам ))) ...

Сложности успеха DragonOS FocalX R27.1

... Попытка открыть DragonOS FocalX R27.1 iso 3.69 Гб ... Судя по набору файлов и записей эта система - предназначена для Grub 2 UEFI ... Пробую открыть ... Невероятно, но после долгих раздумий и тщательных настроек виртуальный LiveCD - загрузился из под grub4dos с ISO образа ... Я - в шоке ... Это самый реальный пример передачи управления от grldr к grub2 ...

(initramfs) stdin : Not a typewriter ... Устройство - не печатная машинка ... Именно эта ошибка, возникшая в ходе эксперимента - стала окончательной точкой и решающим фактором упорядочивания знаний и правильного взаимодействия с загрузчиками платформы GRUB ... Сама, ошибка - не играет никакой роли ... Но, вот, поиск информации по её устранению - значительно изменил взгляды и сам системный подход к работе с бут лоадером ...

Шлифуем ГРУБые знания ))).

Командная строка и редактор меню.

А, ведь - действительно : почему бы, имея GRUB 2 - не попытаться ввести команды вручную ? ... Чисто гипотетически, для этого нужна - командная строка ... Только вот непонятно, чьё окружение она будет представлять ? ...
... Как вставить меню вызова shell или командной строки в GRUB2 - потребуется внести изменения в файл конфигурации, с помощью текстового редактора (mousepad, nano, vim, emacs, gedit, kate) ...

старой и новой версий ... Прежде, чем модифицировать default config - стоит посмотреть весь список команд и горячих клавиш GRUB ... И, тогда - можно узнать, что лоадер позволяет открыть shell командную строку - простым нажатием клавиши / буквы c ; а буква e - запускает онлайн редактор строк команд меню ... Вернуться в графическое меню можно нажав Esc ...

Но если уж сильно неймётся - вот примерная инструкция, как сделать, чтобы командная строка открывалась сразу при запуске лоадера ... Очень надеюсь, что вам, это - никогда не понадобиться ))) ...
... sudo nano /etc/default/ grub cfg (найти или узнать правильный путь) ...
... Изменить строку к виду GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init=/bin/bash" ...
... Параметр init=/bin/bash указывает GRUB2 запустить оболочку bash при загрузке ...
... Сохранить изменения и закрыть файл ...
... sudo update-grub ... Обновить конфигурацию, чтобы применить изменения ... Перезагрузиться ...
... Выбор пункта меню GRUB2 откроет командную строку bash ... Осторожно использовать эту функцию, выполнять команды и взаимодействовать с системой, так как неправильные действия - могут навредить ОС ...

Как добавить собственный пункт меню в GRUB 2.

sudo nano /etc/grub.d/40_custom ... Открыть и изменить файл конфигурации с помощью текстового редактора (mousepad, nano, vim, emacs, gedit, kate) ...
Вставить код нового пункта меню ...
menuentry "Название пункта меню" { ...
# при необходимости : добавить команды для загрузки ОС или других настроек ...
# команды - будут исполнены при открытии пункта меню ...
} ...
Сохранить изменения и закрыть файл ...
sudo update-grub ... обновить конфигурацию и перезагрузить систему ...

Как в GRUB 2 загрузить образ ISO с локального HDD / SSD.

* Примечание ... Необходимость применения ... Заменяет отсутствующий CD-ROM ... Значительно ускоряет скорость работы с образом ... Отменяет ненужные операции записи образа на USB и экономит время ... Просто хочется посмотреть ISO и поиграться ))) ...

*** Примечание ... Поскольку пользовательская загрузка образа ничем не отличается от добавления нового пункта меню - также модифицируется секция /etc/grub.d/40_custom ... Ниже, по ссылке - можно найти более подробное руководство и расширенные параметры команд ...

Это примерная общая конструкция пункта меню запуска ISO образа через виртуальный дисковод loopback ...
sudo mousepad /etc/grub.d/40_custom ... Открыть и изменить секцию файла конфигурации с помощью текстового редактора (а, также - nano, vim, emacs, gedit, kate) ...
menuentry "Загрузка локального образа" { ...
set root='(hdx,y)' # Где x диск и y раздел пути расположения образа ...
loopback loop /путь/образ.iso # заменить на фактический путь ...
linux (loop)/внутри ISO путь/vmlinuz quiet ... kernel путь к ядру, с подавлением лишних сообщений при загрузке ...
initrd (loop)/внутри ISO путь/initrd ... путь к FS файловой системе ...
} ...
Сохранить изменения и закрыть файл ...
sudo update-grub ... обновить конфигурацию и перезагрузить систему ...

... В этом подробном руководстве будет рассмотрен способ запуска некоторых ISO-дистрибутивов Linux непосредственно с жесткого диска путем редактирования меню GRUB2 ... Здесь, в примере - правильным образом последовательно загружаются модули файловой системы, виртуального привода и поддержки ISO формата ...

Основные моменты последовательности действий ...
папка live для скачанных ISO образов LiveCD ...
sudo blkid - получить UUID раздела папки live ... Другие способы : ... sudo cat /etc/fstab - из файла автоматического монтирования разделов при загрузке ... /boot/grub/grub.cfg - поиском в строке с подстрокой --fs-uuid ...
/etc/grub.d/40_custom - создать строки нового пункта меню ...
menuentry ' *LiveCD ' --class os --class gnu-linux --class gnu --class os --group group_main {
  set isofile=" /live/*LiveCD.iso "
   insmod ext2
   insmod loopback
   insmod iso9660
    loopback loop (*hdpath)$isofile
    search --no-floppy --fs-uuid --set=root *UUID
    linux (loop)/*isopath/vmlinuz boot=live fromiso=/*sdpath/$isofile noconfig=sudo username=*user hostname=*label
    initrd (loop)/*isopath/initrd.img
}

Где, переменные - могут означать : ...
*LiveCD - имя файла ISO дистрибутива ...
*hdpath ... например : hd0,msdos1 - обозначение раздела / partition на жестком диске HDD / SSD, в формате MBR и принятое в GRUB2 ...
*UUID - подставить реальное значение найденного идентификатора диска (не путать с более коротким PARTUUID) ...
*isopath - реальный путь внутри ISO образа (подсмотреть) к ядру vmlinuz и файловой системе initrd.img ...
*sdpath ... например : /dev/sda1/ - обозначение раздела / partition на жестком диске HDD / SSD, в формате принятом в Linux для устройств блочного хранения данных и представленных в виде файлов в директории /dev/ ...
*user / *label - пара значений, зависимых от загружаемой системы ... Автор рекомендует применять - в зависимости от дистрибутива ... root / centos ... root / fedora ... root / kalilinux ... root / gentoo ... Но - могут встретиться и совершенно другие связанные значения, особенно - на неофициальных сборках, так что надо быть, к этому - готовым ...

sudo update-grub - по завершению правки конфига - пересобрать его, чтобы новый пункт меню появился в списке ...

Как, видите - всё достаточно просто ... Однако, если на системном диске недостаточно места - можно разместить ISO файлы и на дополнительном диске данных ... Если добавочный MYDATA диск не подключается к системе автоматически - возможно это может вызвать проблемы с доступом ... Обычно получить доступ к стороннему диску можно через файловый менеджер с паролем root администратора (то есть - вы не сможете сделать это в бут меню лоадера, но диск допустимо примонтировать (каждый раз) - вручную, в режиме вызова командной строки и до старта образа из меню) ... С помощью файла автоматического монтирования разделов при загрузке - можно заранее подключить такой диск ...
в файл /etc/fstab - добавить запись по образцу : /dev/sdb1 /mydata ntfs defaults 0 0 - используя свои обозначения и метки - для постоянного подключения при загрузке системы ... Соответственно - исправить все пути *hdpath и *sdpath в меню загрузки LiveCD ... Обратите внимание, что вставленные в USB флешки - могут менять буквы дисков в MSDOS режиме ...

Что ещё ? Как понять размер дисков C/H/S. Коды раздела.

Некоторые низкоуровневые программы и команды, например geometry grub4dos - показывают размер дисков в формате цилиндры головки сектора C / H / S Sector Count / Sise = 2000397735 / 512 ... что означает 2 миллиарда секторов по 512 байт ... Сколько это байт или бит - я даже говорить не хочу, так как не готов вспоминать следующие названия больших чисел ...
2000397735 * 512 = 1,02420364e12 даже калькулятор отображает это число - в экспоненциальном формате ... На самом деле - это известный всем компьютерщикам размер жёсткого диска 1 Тб или 1024 Гб ...
или, например : 234440880 * 512 = 1,20033731e11 ... Поскольку, e12 - терабайты, e9 - гигабайты, e6 - мегабайты и так далее, то ...
1,20033731e11 / 1e12 = 0,12 Тб ... или 1,20033731e11 / 1e9 = 120 Гб - это обычный широко распространённый объем памяти жестких дисков домашних и офисных компьютеров среднего класса ... Так что, при помощи калькулятора, даже такие страшные, на первый взгляд, числа - легко пересчитываются в цифры, понятные большинству операторов ПК ...

И, напротив, размер в виде большого числа 1000204632Киб - легко перевести в понятное значение, отбрасывая цифры - тройками : 1Тб 000Гб 204Мб 632Кб ...

Примеры кодов обозначений для наиболее распространенных разделов диска ...
0x00 - не используется ...
0x01 - FAT 12 ...
0x04 - FAT 16 ...
0x05 - extended / расширенная ...
0x07 - NTFS ; секция IFS ; exFAT ...
0x0B - FAT 32 ...
0x0C - exFAT ...
0x42 - LDM, диспетчер логических дисков ...
0x7C - APFS, Apple
0x80 - NTFT, таблица файлов ...
0x83 - EXT4 ...

Как правильно использовать chainloader.

Вот мы и добрались до главной цели всего обучения работы с простым и мощным boot лоадером - применение цепной загрузки chainload - для перехода между системами и вызова правильного загрузчика ОС ... И прежде, чем официально добавить новый пункт в меню - работу команд переходов нужно протестировать в командной строке ... Именно для этого собирались все предыдущие знания и умения, чтобы сейчас - начать творить чудеса ))) ...

Как перейти из hd0 grldr в hd1 grub2.

Итак, есть два диска : hd0 ntfs active mbr grldr и hd1 ext4 active mbr grub2 ... Этот пример рассматривает MBR BIOS но не GPT UEFI ...
... По порядку расположения в BIOS и флага bootable active первым грузится hd0 ...
... Но мы хотим узнать ... Кто мы ... Где мы ... В grldr grub4dos есть несколько команд, прояснить ситуацию ...
... root => (hd0,0) первый диск, первый раздел ... Ок ...
... uuid => кратко покажет диск, идентификатор, тип файловой системы, тип раздела - для каждого диска из списка ...
... geometry (hd0,0) => расскажет про диск 0x80(LBA) C / H / S = 124519 / 255 / 63 Sector Count / Size = 2000397735 / 512 , с одним разделом num : 0 active ntfs и тип раздела 0x07 ... Все верно, а также мы уже знаем как посчитать размер HDD ...
... geometry (hd1,0) => также мы может узнать про диск 0x81(LBA) с активным разделом ext2fs ... И мы хотим попасть туда и загрузиться в его систему ... Как это сделать ? ...

Команда chainloader - передает управление на адрес в памяти - другому загрузчику ...
... по имени : chainloader /bootmgr или chainloader (hd,0,0)/grldr ...
... по адресу в памяти chainloader $root 0 0 , где ... переменная $root задана явно, как root (hd0,0) или установлена командой set root=(hd0,0) ... 0 - offset, смещение от начала памяти ... 0 - длина команды, обычно 1 байт ... Поскольку, известный $root и нулевое смещение - опускаются / сокращаются, команда принимает вид chainloader +1 ... или, chainloader (hd0,0) +1 ... или chainloader (hd0,0) 0 +1 ...

Стандартный вариант перехода ...
... root (hd1,0)
... ответ => выбрано Filesystem type is ext2fs, partition type 0x03 ...
... chainloader +1
... ответ => Invalid or unsupported executable format ... Неверный или неподдерживаемый формат исполняемого файла ...
... Дальнейшие действия - бессмысленны ...
... Особенность : попытка примонтировать файловую систему, чтобы определить правильные параметры передачи дескриптора управления ...

Хакерский вариант перехода ... Не проверяй меня - я сам знаю, что делаю ))) ...
... rootnoverify (hd1) => принимает - молча ))) ...
... chainloader +1 => принимает - молча ))) ...
... boot
... нажать Enter и вуаля - словно по взмаху волшебной палочки - перемещаемся в загрузчик grub2 на диск hd1,msdos1 (в его формате отображения, но с учётом нумерации дисков в BIOS, то же самое, как и hd1,0) ...
... Особенность : без проверок, прямая передача дескриптора управления в цель назначения ...

Важные пояснения и примечания.

... Примечание : почему rootnoverify (hd1) используется без указания ,0 раздела ??? ... Большинство ответов можно найти по ссылке - в обсуждении на форуме ...
- Потому-что идет обращение к стандартной MBR диска ...

Стандартная запись MBR DOS / Windows имеет ... Размер 512 байт ... Таблица четырёх PBR основных primary разделов ... Только один раздел - может быть активный загрузочный ... Основной PBR раздел может представлять подразделы - в таком случае он становится extended вторичный / расширенный ...
- Код MBR записан в абсолютно первый физический сектор диска, и никуда иначе ...
- MBR имеет только единственную функцию перенаправления в активный PBR раздел (и - ни в какой другой) и поэтому в rootnoverify (hd1) , номер раздела - можно опустить / не указывать ...
- PBR загружает только системный файл - соответствующий разделу и системе ...
- Стандартный загрузочный сектор PBR - это обычно первый сектор каждого раздела (но лишь один - активный), и он успешно вызывает - только собственный системный загрузчик, так как лоадеры имеют различные механизмы и параметры запуска ...
- Собственно на то, что загрузочный сектор является исполняемым - указывает магическое число 55AAh ... В обратной нотации AA55 ... Являясь последовательностью двух байт 55h и AAh окончания загрузочного сектора ...

Однако, современные загрузчики умеют грузиться с неактивных разделов или образов, и путь к ним надо явно указывать, например как root (hd2,3) ... Однако, из-за желания систем представляться, как диск C:\ hd0,0 - следует ремаппировать связи командами ...
*** Для корня лоадера, найденного и установленного поиском find --set-root /ntldr ... map () (hd0) ... map (hd0) () ... map --rehook (переинициализировать известную карту связей) ... Снова найти лоадер командой find --set-root /ntldr и загрузить его chainloader /ntldr ...
*** Для образа file.vhd ... find --set-root /file.vhd ... предполагается $root фактический ... map /file.vhd (hd0) ... связать file.vhd и представить, как hd0 ... map --hook (сделать созданные связи - активной таблицей) ... root (hd0,0) ... предполагается $root виртуальный, теперь это - file.vhd ... chainloader /ntldr ...
*** предполагается, что загрузка пойдет с первого (и единственного) раздела ... если в образе будет несколько разделов и например второй / загрузочный, то вероятнее всего - ожидается сбой ... это именно тот случай, о котором предупреждают программы создания VHD образа : в настоящее время поддерживается создание имиджей диска только с одним разделом ... Хотя, фактически - пропиши : (hd0,1) ... chainloader /ntldr ... И не должно быть никаких проблем ))) ... Но это нужно знать и учитывать заранее ...

Bootmgr Win7++ - имеет иной механизм : собственное BCD хранилище загрузочных записей, и умеет грузить виртуальные VHD в корне раздела (не из папки) ... Нужно просто найти бут менеджер - фактически на диске, и передать ему управление ... Дальше, он - всё сделает сам ))) ... Однако, рекомендуется bootmgr не ниже v8.1 ...
find --set-root /bootmgr ... chainloader /bootmgr ...

Следующий момент : неправильные форматы загрузчика или файловой системы ... Следует учесть, то - что может , и то - что покажет загрузчик - немного разные вещи ... В частности, установка GRUB2 - и сама : Unknown MBR ... И - сделает системный hd0 : Unknown MBR, правда - оставив PBR hd0,0 = GRLDR ... Но это действие - не сделает hd0 незагружаемым, лишь - назначит невалидную сигнатуру в одном из участков кода сектора ...
- Развитие GRUB шло в двух направлениях : grub4dos grldr и grub2 ... Отсюда - и явные различия поведения ...

grub4dos - удачная эволюция для MBR с дополнительными улучшениями ... полная несовместимость с UEFI ... grldr анализирует цель передачи управления и распознаёт ряд системных файлов, способный при вызове загрузчика - передавать ему те же параметры, что и загрузочный сектор (эмулировать различия !!!) ... Целью передачи управления grub4dos / grldr может быть не только MBR или загрузочный сектор PBR, но и любой из множества системных файлов, которые он распознаёт ... Складывается впечатление, что он может загружать : что угодно, но это - не так (читай - EFI, UEFI, ZFS, Btrfs) ...

GRUB2 - бессмысленно / сложная эволюция (полная переработка) для нового UEFI совместимого оборудования, без дополнительных улучшений для MBR ... Цель перенаправления : загрузить MBR код - без проверки и передачи параметров, и ничего более ... Цель - только загрузочный сектор MBR ... Обеспечивает доступ и поддержку ... CMOS ... PAE ... BIOS ... EFI ... ISOLinux ... PXELinux ... SYSLinux ... FreeBSD ... GDB ... GPT ... NetBSD ... OpenBSD ... ELF ... HFS / HFS+ Mac ... Bootstrap IP ... NTLDR ... BootMGR ... UUID ... SMBIOS ... ISO ... XNU ... ZFS ...

... burg - это совершенно новый загрузчик, основанный на GRUB ... Он использует новый объектный формат, который позволяет встраивать его в более широкий спектр ОС, включая Linux / Windows / OSX / Solaris / FreeBSD и т.д. ... Он также имеет легко настраиваемую систему меню, которая работает как в текстовом, так и в графическом режиме ... Планировался, как - мост, между двумя мирами grub ... Проект завял в 2014 году и лишь изредка проявляет вялую активность - новыми вопросами ярых приверженцев ...

... Слово, то - какое : хитрозадых ОС ))) ... На самом деле, некоторые Оси - заслуживают гораздо более горячих эпитетов ))) ... Ну, да - ладно, не суть ... Автор поста сообщает, что он никогда не использует update-grub, и пишет grub.cfg - только вручную ... Для хитрозадых систем, которые хотят видеть другой диск : только первым - используется трюк с командой свопа таблицы связей drivemap -s hd0 hdx , после чего chainloader +1 лупит по первому MBR сектору новоявленного псевдо-диска ))) ...

Как перейти из hd1 grub2 обратно в hd0 grldr.

Итак, вооружившись специальными знаниями - нам известно, что GRUB2 не будет делать - ничего, кроме передачи управления на MBR hd0 ... Даже - не требуется указать раздел ... Вообще - неважно : есть там загрузчик / или - нет ; примет кто-либо команду, или она повиснет в пустоте - по барабану ))) ... Нет и не требуется никакой команды rootnoverify ...

Важно понимать, что в загрузчике - нет ожидаемых команд : root, uuid, sudo, blkid (эта команда, похоже - вообще из UEFI) - как понять где мы, что, да - как ? ))) ...
... ls - универсальная команда покажет диски - кратко, или с ключом -l подробнее, например для (hd0,msdos1) ... Возможно, посильную помощь, сможет оказать и команда probe ...
... set root=(hd0,msdos1) ... chainloader /grldr ... ответит ошибкой : invalid signature ...
... При этом, команда ls (hd0,msdos1)/ со слэшем - выводит содержимое диска, где на первом месте находится файл grldr ... На самом деле, как мне кажется, grub2 - всё видит, но даже и не пытается что-либо выяснять ... Тем более, что он сам испортил сигнатуру MBR hd0 = GRLDR - при своей установке ... Или, это сделал - установщик Linux ??? ...
... и тут же, в ответ на запрос ls (hd0) - рапортует : обнаружена неизвестная файловая система ...

Поэтому - нужно просто, не особо заморачиваясь и даже не применяя команду rootnoverify - просто выполнить код : ...
... set root=(hd0) ...
... chainloader +1 ...
... boot ...
Вот и всё ))) ... Мы снова оказались на старом системном диске hd0 в grub4dos ... И так, можно прыгать, туда сюда - до бесконечности или пока не надоест ... Всё будет работать - без проблем ...

Если же, лоадер - находится на hd0, а загружаемая система (требующая для запуска hd0) - на hd1 , то нужно обменять связи дисков с номерами в таблице связей ... Естественно, всё это можно обернуть в menuentry { ... } пункт постоянного меню загрузчика ...
... set root=(hd1) ...
... drivemap -s hd0 hd1 ...
... chainloader +1 ...
... boot ...
Вот и всё ))) ...

MBR ntfs Windows и СуперБлок ext2fs Linux.

Поскольку, вопросы : устройство MBR диска и PBR разделов, тип файловой системы и магическая запись 55AAh - уже были рассмотрены с разных сторон ... Остаётся добавить, что аналогом MBR на диске ext2fs - является суперблок ... Суперблок в файловой системе ext2fs располагается в начале файловой системы и используется для инициализации и восстановления файловой системы при монтировании ... Аналогично MBR, суперблок содержит важную информацию о структуре и параметрах файловой системы ext2fs, помогая ОС понять, как организованы данные на диске и как обращаться с ними ...

Значение 0xAA55 или 0x55AA - обычно используется для проверки целостности загрузочного сектора и его правильной идентификации, как - загрузочного ... В суперблоке, значение 0x55AA в конце ext2fs - обычно отсутствует, так как суперблок содержит информацию о файловой системе и не связан с загрузкой операционной системы ... Отсутствие значения 0x55AA может привести к различным ошибкам ... Невозможно загрузить ОС ... Ошибка файловой системы ... Данные повреждены ... Неправильная точка монтирования ...

Стало интересным посмотреть содержание первого сектора 512 байт командой hexdump GRUB2, но из-за ограничения экрана - поместились только первые 3 и последняя строка каждого диска ...

Hex дамп первого сектора ntfs grldr Windows и ext2fs grub2 Linux жестких дисков.

Hex дамп первого сектора ntfs grldr Windows и ext2fs grub2 Linux жестких дисков. boot linux livecd from hdd fig 200 hexdump hd0 hd1.

Различное содержание байтов позволяет судить, что это действительно разные диски ... И, хотя - было слабое предположение, что сигнатура 55AA конца загрузочного сектора была затерта, это - не подтвердилось, а дамп содержимого - лишь укрепил уверенность в том, что были изменены некоторые другие байты, поиск которых - не входит в область данного исследования ...

Заключительное мнение.

Вот, только сейчас, под всем сказанным - можно подвести первую пробную черту, так как я не окончательно уверен, что были рассмотрены и затронуты все вопросы, касаемо работы с GRUB лоадерами разных версий ...
... Поскольку grub loader может / подменяет (???) первый сектор диска - следует ли внимательнее изучить образы grldr.mbr и /boot/grub/core.img ...
... В частности, ничего не было сказано про разметку MBR в GPT и отличиях доступа к нему - извне ... GPT использует защищённый Protective MBR - для обеспечения обратной совместимости с системами, которые не поддерживают GPT ... Protective MBR предотвращает случайное изменение или перезапись GPT-разделов ... Управление разделами на GPT-диске осуществляется с помощью GUID / глобально уникальных идентификаторов и защищенный MBR - не содержит информации о реальных разделах GPT ... Ну а, поскольку, GRUB2 - уже манипулирует подобными UUID, переход на GUID - не должен стать значительной проблемой для пользователей ПК ...

Это исследование похоже на сматывание перепутавшихся на полу клубков ниток, когда начинаешь сматывать - один, а распутывается - другой связанный клубок ... Начинаешь сматывать другой - распускается третий ... Несмотря на многочисленную информацию в интернете, касаемо этих проблем, из всего многообразия веб документов, лишь три источника, реально и внятным языком - сумели прояснить всю картину, в целом ... Всего несколько строк правильного кода - требуют знаний целого пласта работы инструкций и взаимодействия данных в компьютерной среде ... Я не буду возражать, если данный материал станет простым руководством к изучению GRUB - N4 из первой пятёрки, так как считаю, что 3 документа на весь интернет - слишком мало для альтернативного разнообразия ))) ...

Список всех страниц, раздел linux : смотреть онлайн бесплатно, интересное - надо посмотреть ...


Диагностика автомобиля.

Автодиагност визитка, компьютерная диагностика двигателя автомобиля, грузовика. Отечественные и импортные ... Быстрое чтение кодов ошибок DTC ... K-Line. ELM 327. ОБД. EOBD. MOBD. USA OBD. JOBD ... Рекомендации ... Подробнее ...

linux, boot-linux-livecd-from-hdd. QR Code ссылка, куар код кюар.


Уголок автолюбителя ... Авто транспорт ... Информация ... Autosan [CDP trucks] ... Eurolider ... Gemini ... Lider ... Ramzes ... Sancity ... Solina ... Tramp ... Wetlina ... автодиагност электрик ... Тата, Tata ... компьютерная диагностика двигателя ... Другие машины и услуги ...


Популярные ссылки.

Р255 в г. Новосибирск, Кемерово, ... Новосибирск, Томск, Кемерово, Красноярск, Канск, Тайшет, Иркутск. Прогноз п ...

Подсчет количества уникальных сло ... Скрипт обработки текстовых строк в файле. Счетчик уникальных слов. BAT, CMD ...

М1 в г. Москва, Вязьма, Смоленск. ... Москва, Вязьма, Смоленск, Минск. Прогноз погоды на трассе М 1, в дороге по ...

Car Scanner простой аналог ECU Tw ... Car Scanner ELM OBD2 на Андроид и iOs сделает скрытые настройки ЭБУ авто мн ...

Для средних и тяжелых грузовиков, ... PF-Diagnose. Универсальный для техников низкой и высокой квалификации. Для ...

М7 в г. Москва, Владимир, Н. Новг ... Москва, Владимир, Ниж. Новгород, Чебоксары, Казань, Наб. Челны, Уфа. Прогно ...

OBDAutoDoctor для диагностики авт ... OBDAutoDoctor, диагностируйте и устраняйте проблемы с двигателем, трансмисс ...


Новости РУ СМИ, сводки.

2024-01-26 ...

... Ранее, удавалось успешно прилуниться - только с разбросом в десятки километров от целевой точки ... Однако, дальше, что-то пошло - не так, и модуль прилунился в непосадочной конфигурации, сломав антенну связи, не смог раскрыть солнечные батареи и оставшись без электропитания замолк навсегда - через несколько часов после посадки ... Два лунных ровера LEV 1 и LEV 2 катапультировались успешно, и работают - как запланировано ... SLIM позволяет Японии принять участие новой лунной гонке и может усилить конкуренцию между космическими державами в Азии ...

2023-12-26 ...

... Вирус Хамелеон умеет отключить сканер отпечатка пальца на смартфоне, вынуждая владельца вводить код, и - ворует личные данные ... Вирусная программа распространяется через сервис Zombinder - набор приложений, выдающих себя за популярный браузер Google Chrome ... Зловредный хакерский софт умеет выдавать фейковую HTML-страницу за раздел с настройками, позволяя похищать пароли и прочие конфиденциальные данные на смартфонах под управлением Android 13 и более ранних версий ОС ... В качестве защиты специалисты рекомендуют включить функцию Play Protect и избегать установку программ через APK-файлы ...

2024-01-23 ...

... Авто навигатор развернулся в сторону Белоруси и Китая ... Импортозамещение - стимулирует внутренние грузоперевозки по России ... Маркетплейсы и электронная коммерция - удвоили объем авто перевозок в распределительные центры ... В приоритете грузооборота, также : фрукты, овощи, минеральная вода, продукты питания, доставка бытовой техники и электроники, ювелирные изделия, телекоммуникация и IT ... Однако, некоторые эксперты называют повышение спроса - искусственным, так как он образуется из-за дробления логистических цепочек и необходимости нескольких грузовых рейсов - вместо одного трака доставки, что повышает занятость, но снижает эффективность грузоперевозок в целом ...

Смотреть все самые интересные новости последних дней, недели, месяца ...

Новые страницы сайта.

22:27 29.02.2024 Послание В. В. Путина - ФС. Главное. Кратко. Суть. ... IndexNow : Y222729022024 , B222729022024 ...

17:34 28.02.2024 Announce torrent tracker list 2024. Crazy load speed.

22:13 23.02.2024 Как SVG файл открыть в браузере. Плагины. Программы.


Кратко полезное.

ai glasp.co ...

... социальные веб-маркеры ... собирайте и делитесь ... ваши любимые слова ... выделяйте и сохраняйте заметки на любой веб-странице ... плагин для браузера Chrome и Safari ...

Подробнее : Каталог ИИ инструментов, ассистентов и помощников ...

sat 57202 ...

Россия, Специальный Технологический Центр ...

... СпецТехноЦентр получил лицензию на производство спутников и запустил тестовые аппараты.

... Специальный Технологический Центр активно сотрудничает с разработчиками КА, а также ведёт собственный проект CSTP-1.1 и CSTP-1.2 ...

Подробнее : каталог спутников ...

ai get.mem.ai ...

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

Подробнее : Каталог ИИ инструментов, ассистентов и помощников ...


СоцСети, вход моя страница.

Cоциальная сеть, моя страница, поиск, вход без регистрации, знакомство без пароля, войти бесплатно ...

Разрешенные соцсети в РФ : ... VK, вконтакте, общение и поиск друзей ... ОК, одноклассники, найти старых друзей по школе, учёбе, службе и работе ... t.me, telegram, система мгновенного обмена сообщениями, текст, голос и видео ... Youtube, популярный видеохостинг ...

Запрещенные соцсети в РФ : ... Твиттер X, сервис микроблогов и социальная сеть ... Фейсбук, общение с друзьями, родственниками и сослуживцами по работе ... Инстаграм, сеть обмена фото видео для мощных и уверенных, в себе, людей ... [инстасамцов и инстасамок] - шутка ))) ... ЛинкедИн , сеть профессиональных контактов по работе, деловой имидж в бизнесе ...


techstop-ekb.ru © ТехСтоп, Екатеринбург, Россия. 2024.