The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Критическая уязвимость в загрузчике GRUB2, позволяющая обойти UEFI Secure Boot, opennews (?), 30-Июл-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


39. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (35), 30-Июл-20, 06:00 
Своей громоздкостью, глючностью и вечными проблемами
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

44. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +5 +/
Сообщение от Адекват (ok), 30-Июл-20, 06:47 
А еще негуманоидным синтаксисом, реально нужно иметь степени по клинописи, криптографии, латыни, изотереке, чтобы понять что там к чему.

Вот в grub 0.97 был гуманоидный синтаксис:

# ((1) Arch Linux
title  Arch Linux Fallback
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/131aa439-f2c0-41e3-b239-c778fcf572a5 rootfstype=xfs ro
initrd /boot/kernel26-fallback.img

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

Нет, реально же просто три строчки, ну 4, 4ая титл, но для загрузки - три блин строчки нужно всего !!

Ответить | Правка | Наверх | Cообщить модератору

80. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +7 +/
Сообщение от пох. (?), 30-Июл-20, 09:36 
> Вот в grub 0.97 был гуманоидный синтаксис:

но к сожалению, альтернативно-одаренным его было никак не понять.

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

СКРИПТОВ, блжад, в initial loader, который когда-то в 440 байт помещался.

Зато, вот, с нескучным insecure boot (поздравляем со скомпроментированным ключом глупой microsoft - а нехрен было подписывать гнутый трешак) и кучей других интересных свойств - например, возможностью после (ненужного!) автообновления попасть в "rescue mode" и обнаружить что прочитать диск нам нечем - модуль не подгрузился, необходимый для загрузки модуля.

Ответить | Правка | Наверх | Cообщить модератору

135. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 30-Июл-20, 14:55 
> СКРИПТОВ, блжад, в initial loader, который когда-то в 440 байт помещался.

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

А вот сам этот 440 байтный бут как максимум умел пинать себе подобного в партиции. И не то чтобы тот был сильно умнее - в конечном итоге он тоже запускал что-то более жирное.

> Зато, вот, с нескучным insecure boot (поздравляем со скомпроментированным ключом глупой
> microsoft - а нехрен было подписывать гнутый трешак)

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

Кроме того операционка являет собой примерно то же самое, ее в конечном итоге тоже запустят, ну и смысла с твоего пиндежа в итоге мало.

Ответить | Правка | Наверх | Cообщить модератору

158. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от пох. (?), 30-Июл-20, 16:23 
> Так он и теперь помещается. Просто он запускает более жирный лоадер

или не запускает, и ты сосешь лапу и бежишь за rescue диском (а потом разгадываешь ребус, что ж этой твари такого было надо)

> А вот сам этот 440 байтный бут как максимум умел пинать себе подобного в партиции.

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

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

Зато вот, мы умеем нескучные скрипты в загрузчике! Ой, нас через них поимели, кто бы мог подумать да и было ли ему чем?!


Ответить | Правка | Наверх | Cообщить модератору

223. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 31-Июл-20, 12:02 
> или не запускает, и ты сосешь лапу и бежишь за rescue диском
> (а потом разгадываешь ребус, что ж этой твари такого было надо)

Я видел много странной фигни, но вот именно такого ни разу не встречал. За десятилетия. Нет, наверное, теоретически и так можно, но практически для этого похом надо быть :P.

> он умел блоклист прочитать, составленный и подсунутый заранее - чему нынешний разучился
> (точнее, использует не по делу и в результате ломается на пустом месте).

У GRUB он так вообще обычно подчитывает оверлей в "track0" (сразу за партишн тэйбл, именно поэтому советуют оставлять там пару мегов до начала партишнов) - а вот тот уже более жирный, умный и подгружает основную тушку более продвинуто.

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

Вот это я особо не изучал, честно говоря. И не знаю какие там были предпосылки. Мне уефанство в целом интересно только в контексте "must die" :D

> Зато вот, мы умеем нескучные скрипты в загрузчике! Ой, нас через них
> поимели, кто бы мог подумать да и было ли ему чем?!

Ну вообще скрипты в загрузчике бывают и достаточно прикольно - типа попробовали раз, FAIL, двас, FAIL, трис, FAIL - о, а давайте-ка recovery?!

Но да, и тот же uboot этим малость анноит, особенно учитывая что дефолтные скрипты бывают долбанутые донельзя. Я вот например на sunxi оборвал к хренам probing usb и (где есть) sata. При этом с командлайна при сильной нужде оно таки доступно, но скрипт больше это не трогает вообще каждый раз - и сцуко экономит секунд 15 времени загрузки. При том что демьян там секунд за 5-6 взлетает, это было полным ололо. И, блин, загрузка не отваливается, если воткнуть сдуру что-то не то в usb-порт девайса, что совсем уж якорь для автоматики, киосков и прочей лабуды где такое поведение форменный булшит.

Ответить | Правка | Наверх | Cообщить модератору

300. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от пох. (?), 05-Авг-20, 00:59 
> Я видел много странной фигни, но вот именно такого ни разу не
> встречал. За десятилетия. Нет, наверное, теоретически и так можно, но практически

зато https://bugzilla.redhat.com/show_bug.cgi?id=1861977 встретили.

> У GRUB он так вообще обычно подчитывает оверлей в "track0" (сразу за

это у lilo (он почему-то никак не помещался в один сектор), у grub с самого рождения это не было острой необходимостью - можно было его и туда класть, с некоторым риском потерять, а можно и не - blocklist stage2 (лежащей прямо в файловой системе как обычный файл) помещался прямо в mbr. stage1.5 была в общем-то феерическим ненужно.
Сейчас все то же самое тоже работает, но уже через задницу.

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

efi дает апи, вполне достаточный для чтения файлов. Любых. Можно и для записи (если так хотелось любимый grubenv, то еще порождение бреда). И предоставляет раздел, куда их можно просто положить. Как файлы, никакой мистики, блоклистов прибитых гвоздем, писания в файловую систему в обход файловой системы, необходимости таскать за собой драйвер линуксной fs угадай какой на этой системе и не потеряй.

> там были предпосылки. Мне уефанство в целом интересно только в контексте
> "must die" :D

Ну и напрасно. must die вот все что там выше - потому что и уродливо, и не нужно, все, кончилось время legacy boot.

>> Зато вот, мы умеем нескучные скрипты в загрузчике! Ой, нас через них
>> поимели, кто бы мог подумать да и было ли ему чем?!
> Ну вообще скрипты в загрузчике бывают и достаточно прикольно - типа попробовали
> раз, FAIL, двас, FAIL, трис, FAIL - о, а давайте-ка recovery?!

а зачем для этого скрипты? Для этого нужна малоприятная, на самом деле (без uefi, с ней - простая и логичная) возможность записать что-то на диск (что не очень хорошо,учитывая что полноценного драйвера fs в грубе нет, и есть риск что-то все же попортить) или в efivar, потому что после fail будет reset без возможности иным способом сохранить состояние.
И fallback был в grub 0.93 без всяких скриптов.

Скрипт запускался штатно, из init, уже по факту загрузки - фиксируя с каким по счету ведром на самом деле загрузились.

> Но да, и тот же uboot этим малость анноит, особенно учитывая что

у него другого выхода нет - там вообще никакого интерфейса может не быть, даже serial, а загрузка быть с чего-то весьма нетривиального (да и до загрузки иногда десять приседаний).

А у grub на uefi задача ровно одна - выбрать нужные файлы с подставленного диска. Но и это умудрились сделать в виде невменяемой блоатвари.

Ответить | Правка | Наверх | Cообщить модератору

152. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от kmeaw (?), 30-Июл-20, 15:45 
grub2:

menuentry 'Arch Linux Fallback' {
    set root='hd1,msdos1'
    linux /boot/vmlinuz26 root=/dev/disk/by-uuid/131aa439-f2c0-41e3-b239-c778fcf572a5 rootfstype=xfs ro
    initrd /boot/kernel26-fallback.img
}

Разве сложно? Строк почти столько же.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

163. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +2 +/
Сообщение от пох. (?), 30-Июл-20, 16:45 
> grub2:
> Разве сложно? Строк почти столько же.

если бы еще и работал - то цены бы ему не было. Только он у тебя не сработает - не сможет прочитать /boot, угадай почему.


и в результате дистрибутивный код ляпает вот такую у6людину:
                recordfail (ок, ладно, хоть что-то полезное)
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  ec470a0a-67de-11e8-8cb8-005056bd6c27
                else
                  search --no-floppy --fs-uuid --set=root ec470a0a-67de-11e8-8cb8-005056bd6c27
                fi
что это, блжад, нахера оно, кто придумал весь этот п-ц и почему его не сдали в дурку а код в утиль, вместо того чтобы этот весь "супермодульный" перескриптованный мусор растаскивать по дистрибутивам?

Я отлично помню что без всего этого дерьма мы вполне обходились.

Заметим, это _в_довесок_ к uefi grub. С которым вся эта ненужная механика становится не нужна соврешенно - но ее не только не выпиливают, но тщательно "улучшают" - потому что uefi grub не умеет ровно ничего (кроме как опять же запутаться в уже отдельных, своих собственных searchмусорных скриптах, наступить себе на шнурки и йапнуться вместо загрузки).

Ответить | Правка | Наверх | Cообщить модератору

168. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 17:25 
Ровно так у меня и работает. Только сверху есть ещё кусок:

if loadfont /EFI/boot/unicode.pf2 ; then
        set gfxmode=1024x768,800x600,640x480,auto
        set gfxpayload=keep
        insmod efi_gop
        insmod efi_uga
        insmod video_bochs
        insmod video_cirrus
        insmod all_video
        insmod gfxterm
        insmod gfxterm_background
        terminal_output gfxterm
        background_image --mode stretch /splash.png
fi

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

set timeout=10
set default=0

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

Бинарник grub взят из http://mirror.centos.org/centos/7/os/x86_64/EFI/BOOT/bootx64...
Аналогично работает, если собрать бинарник самому с помощью:

grub-mkimage -O x86_64-efi -o /boot/EFI/BOOT/bootx64.efi -p '' part_gpt part_msdos fat ext2 normal chain boot configfile linux multiboot

Ответить | Правка | Наверх | Cообщить модератору

185. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от пох. (?), 30-Июл-20, 21:04 
> Ровно так у меня и работает. Только сверху есть ещё кусок:
> if loadfont /EFI/boot/unicode.pf2 ; then

ох, да, как это - да чтоб в загрузчик (сцуко - в ЗАГРУЗЧИК, Карл!) да не подгрузить нескучных шрифтецов!

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

я бы его весь выкинул, с большим удовольствием.

> Аналогично работает, если собрать бинарник самому с помощью:

знаешь, даже lilo как-то попроще был.

И главное - в эпоху uefi это все нужно прямо как телеге гусеница от трактора.

Ответить | Правка | Наверх | Cообщить модератору

190. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 21:56 
> ох, да, как это - да чтоб в загрузчик (сцуко - в ЗАГРУЗЧИК, Карл!) да не подгрузить нескучных шрифтецов!

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

> знаешь, даже lilo как-то попроще был.

LILO использовал хак с запоминанием расположения ядра в физических блоках. Случайно подвинул или испортил ядро — всё, грузись с другого носителя и переустанавливай загрузчик. Самая ценная фича grub — возможность более-менее интерактивно ходить по файловой системе и загружать оттуда ядра и initrd, которых нет в конфиге.

А во времена популярности LILO ядро прекрасно умело загружать самого себя с диска, да и initrd заодно ("insert root disk and press enter" или как-то так).

> И главное - в эпоху uefi это все нужно прямо как телеге гусеница от трактора.

В целом да, согласен. Пакеты с ядром вполне могут прописывать новые версии ядра в nvram. Тогда и откатиться на предыдущую версию можно будет прямо из boot menu. Разве что параметры ядра нельзя будет интерактивно изменить, но это не так часто требуется — обычно хватает возможности загрузить последнее удачное ядро, а дальше починить загрузку уже из хоть как-то работающей ОС.

grub2-efi нужен для унификации процесса загрузки с legacy BIOS-системами и для реализации экзотических сценариев (какая-нибудь хитрая магия с lvm snapshots, raid, шифрованием и проверкой целостности, вытаскивания ядер из iso-образов). А ещё пользователи привыкли к нему.

Странно, что на x86 не приживаются kexec-based загрузчики, типа petitboot. Так можно повторить всю функциональность grub2, только правильно и с гораздо более проверенной кодовой базой.

Ответить | Правка | Наверх | Cообщить модератору

208. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от пох. (?), 31-Июл-20, 08:52 
> Так не подгружай. Он всё равно будет работать. Разве это плохо, когда фича есть

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

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

> Тогда и откатиться на предыдущую версию можно будет прямо из boot menu.

Но в спецификации efi нет никакого boot menu.
Это тебе подарок от твоего асуся. У какого-нибудь hp его просто не будет. И даже efi shell доступен только если не нашлось ни одного загрузчика. Ну или если его включить из уже загрузившейся системы.

> Разве что параметры ядра нельзя будет интерактивно изменить, но это не так часто требуется —

угу, система не грузится из-за проблем в бестолковом systemd и его миллиарде запчастей - переустанавливай, ведь даже в single-user теперь не загрузишься.

ВСЕ эти проблемы решал elilo (и попутно он же - единственный, кто, иногда и кое-как, умел 32битный uefi) - но альтернативно-одаренным понадобилось его похерить. Ведь он не умеет нескучных шрифтиков.

Ответить | Правка | Наверх | Cообщить модератору

201. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от Адекват (ok), 31-Июл-20, 07:08 
>> Ровно так у меня и работает. Только сверху есть ещё кусок:
>> if loadfont /EFI/boot/unicode.pf2 ; then
> ох, да, как это - да чтоб в загрузчик (сцуко - в
> ЗАГРУЗЧИК, Карл!) да не подгрузить нескучных шрифтецов!

Кстати, там что, ссылка на файл шрифта ? а если вместо шрифта будет какой-то свой файлик, специальный, может в этом плане тоже есть дырочка ? ну выход там за пределы ? никто не исследовал этот вопрос ?

Ответить | Правка | К родителю #185 | Наверх | Cообщить модератору

260. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 01-Авг-20, 08:46 
> ЗАГРУЗЧИК, Карл!) да не подгрузить нескучных шрифтецов!

Собственно, а почему бы загрузчику и не уметь нормально рисовать в гуевый режим, в том числе и текст? Благо про 80x25 все предпочли забыть как страшный сон.

К тому же "unicode" намекает что он может матюкнуться и по русски, или чего вы там хотели. В принципе логично для пользователей отличных от US.

> я бы его весь выкинул, с большим удовольствием.

А что мешает?

> И главное - в эпоху uefi это все нужно прямо как телеге
> гусеница от трактора.

Кроме уефи GRUB и на bios работает. А ты можешь юзать ядро как uefi stub :D :D

Ответить | Правка | К родителю #185 | Наверх | Cообщить модератору

259. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (259), 01-Авг-20, 08:42 
> что это, блжад, нахера оно, кто придумал весь этот п-ц

Это для интеграции с пакетниками, апдейтами ядер и всем таким. Теперь пакетник поставив ядро запускает генератор конфигов и тот .. быренько делает зашибись. Перегенерив конфиг и добавив туда все ядра которые есть. Ну а заодно он систему в run time видит и знает какие там uuid всего этого и проч.

В демьяне допустим на эту тему есть /etc/default/grub описывающий как его такой генерить. А в этом твоем grub 0.97 - ахто будет новый кернель в меню добавлять? И как в меню поиметь все кернелы имеющиеся в системе, допустим? Ну, дабы в случае невзлета нового кернела, допустим, был фалбак на более старые из менюхи бута? Не, можно как тот арчевод при этом - "ухтыб%#?!", но есть мнение что это малость непрактично :)

Ответить | Правка | К родителю #163 | Наверх | Cообщить модератору

270. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от пох. (?), 01-Авг-20, 13:15 
> Это для интеграции с пакетниками, апдейтами ядер и всем таким.

вы забыли добавить - написанными вчерародившимися, ниасиляторами sed.

> А в этом твоем grub 0.97 - ахто будет новый кернель в меню добавлять?
> И как в меню поиметь все кернелы имеющиеся в системе, допустим?

Вот вам суперпроблемы ниасиляторов-зуммерков.

А так-то у меня все нормально было и с lilo, и с one-true grub - написанные прямыми руками скрипты не запускали маразматические "генераторы конфигов", просто добавляли пару строчек туда, куда им было разрешено лазить, и не трогали то, куда лазить было не положено.

> В демьяне допустим на эту тему есть /etc/default/grub описывающий как его такой генерить.

а нормальной документации еще и на ЭТОТ отдельный нескучный мусор - нет. Поэтому загадочные заклинания копипастятся с серверфолта.

Это ведь куда проще чем нормальный человекочитаемый конфиг, исправляемый при необходимости человеком.

Ответить | Правка | Наверх | Cообщить модератору

200. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Адекват (ok), 31-Июл-20, 06:39 
Нет, то что я показал - это реальный пример тех веремен, когда grub 0.97 был, а вот реальный пример из линукс минта:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
else
  search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
fi
if loadfont /boot/grub/fonts/UbuntuMono16.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ru_RU
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
else
  search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
fi
insmod gfxmenu
insmod png
set theme=($root)/boot/grub/themes/linuxmint/theme.txt
export theme
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=hidden
    set timeout=0
  # Fallback hidden-timeout code in case the timeout_style feature is
  # unavailable.
  elif sleep --interruptible 0 ; then
    set timeout=0
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=1
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Linux Mint 19.3 Xfce' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
    else
      search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
    fi
        linux    /boot/vmlinuz-5.3.0-40-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro  quiet splash $vt_handoff
    initrd    /boot/initrd.img-5.3.0-40-generic
}
submenu 'Дополнительные параметры для Linux Mint 19.3 Xfce' $menuentry_id_option 'gnulinux-advanced-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.3.0-40-generic' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-40-generic-advanced-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.3.0-40-generic …'
            linux    /boot/vmlinuz-5.3.0-40-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro  quiet splash $vt_handoff
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.3.0-40-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.3.0-40-generic (recovery mode)' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-40-generic-recovery-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.3.0-40-generic …'
            linux    /boot/vmlinuz-5.3.0-40-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro recovery nomodeset
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.3.0-40-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.3.0-28-generic' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-28-generic-advanced-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.3.0-28-generic …'
            linux    /boot/vmlinuz-5.3.0-28-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro  quiet splash $vt_handoff
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.3.0-28-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.3.0-28-generic (recovery mode)' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.0-28-generic-recovery-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.3.0-28-generic …'
            linux    /boot/vmlinuz-5.3.0-28-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro recovery nomodeset
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.3.0-28-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.0.0-37-generic' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-37-generic-advanced-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.0.0-37-generic …'
            linux    /boot/vmlinuz-5.0.0-37-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro  quiet splash $vt_handoff
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.0.0-37-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.0.0-37-generic (recovery mode)' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-37-generic-recovery-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.0.0-37-generic …'
            linux    /boot/vmlinuz-5.0.0-37-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro recovery nomodeset
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.0.0-37-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.0.0-32-generic' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-32-generic-advanced-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.0.0-32-generic …'
            linux    /boot/vmlinuz-5.0.0-32-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro  quiet splash $vt_handoff
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.0.0-32-generic
    }
    menuentry 'Linux Mint 19.3 Xfce, с Linux 5.0.0-32-generic (recovery mode)' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-32-generic-recovery-2976ef73-6fb5-4c42-b626-48b9b0a49c53' {
        recordfail
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
        else
          search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
        fi
        echo    'Загружается Linux 5.0.0-32-generic …'
            linux    /boot/vmlinuz-5.0.0-32-generic root=UUID=2976ef73-6fb5-4c42-b626-48b9b0a49c53 ro recovery nomodeset
        echo    'Загружается начальный виртуальный диск …'
        initrd    /boot/initrd.img-5.0.0-32-generic
    }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry 'Memory test (memtest86+)' {
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
    else
      search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
    fi
    knetbsd    /boot/memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2976ef73-6fb5-4c42-b626-48b9b0a49c53
    else
      search --no-floppy --fs-uuid --set=root 2976ef73-6fb5-4c42-b626-48b9b0a49c53
    fi
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###


Ну разве все не интуитивно понятно ? и если срочно нужно будет установить систему по этим примерам и новичек же справится с первого раза, да ?


ЗЫ{

Особенно это доставляет {

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

}};

Ответить | Правка | К родителю #152 | Наверх | Cообщить модератору

209. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +3 +/
Сообщение от пох. (?), 31-Июл-20, 09:02 
> Ну разве все не интуитивно понятно ?

ну в первых же строчках все интуитивно-понятно - "мы написали прекрасный конфиг - для РОБОТОВ. А людям тут делать нечего. Вон там лежит косорукий набор из недокументированных толком пяти параметров - а больше ничего редактировать тебе не положено, робот сломается и систему тебе убьет - ведь его даже не научили проверять этот факт и аккуратно отдавать инициативу (что умели в 2000м). Потому что мы и сами ниасиляторы, и линукс изуродовали для таких же".

И да, как переключить эту адскую е...нину на serial port, если видюха вообще сдохла? А-а-а, "это другое", да.
(freebsd можно (было) переключить вслепую, поскольку это _две_буквы_ - но там для людей делали, а не для смухихлебов и туповатых роботов)

Зато смотри, смотри - оно умеет ПА РЮЙСКЕ "Загружается начальный виртуальный диск" (блжад, да на каком это собачьем языке? ) - это ли не прогресс!

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

Ответить | Правка | Наверх | Cообщить модератору

261. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 01-Авг-20, 08:48 
> ну в первых же строчках все интуитивно-понятно - "мы написали прекрасный конфиг
> - для РОБОТОВ. А людям тут делать нечего.

Абсолютно!!! Если что-то надо - айда менять ШАБЛОН. А этот список динамический, он меняется каждый раз когда пакетник кернель ставит/сносит, например.

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

Ответить | Правка | Наверх | Cообщить модератору

271. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от пох. (?), 01-Авг-20, 13:24 
> Абсолютно!!! Если что-то надо - айда менять ШАБЛОН. А этот список динамический,

да, щас, щас, еще один нескучный язычок вызубрю только.

> он меняется каждый раз когда пакетник кернель ставит/сносит, например.

к0к0к0й ужос! Ведь sed-то вы не умеете, да?

> И это по своему логично. Не надо самому прописывать новый кернель и

да, очень логично - кривые скрипты писать умеете, юникс не умеете.

> можно при факапе выбрать более старый кернель в меню бутлоадера, если

а если его в меню нет - быстро-быстро поизучать нескучные язычки.
А то набрать пару строк (с tab completion) и загрузить что угодно, вплоть до /usr/src/linux/arch/гдеонотамвзаднице/bzImage - для зуммерка слишком сложно.

А на практике при реальном факапе - у вас rescue mode> - и никакой возможности ВООБЩЕ восстановить загрузку без внешнего носителя. Вот это достижение, вот это XXI век, а не эти ваши нимодные поделки.

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

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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