LINUX.ORG.RU

загрузчик из source

 


0

1

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

нашел source GRUB. буду компилить. допустим что скомпилил что дальше?


grub install ? 
или make install ? 

Если речь по-прежнему про Slackware 14.2, то начать стоило с документации по slackpkg (страница руководства man slackpkg, текстовые файлы в /usr/doc/slackpkg-*, наличие другой документации можно посмотреть в перечне установленных пакетом файлов в /var/log/packages/slackpkg-*).
Тогда стало бы ясно, что если запрошенный пакет уже установлен, то slackpkg install скажет «нечего устанавливать».
Проверить, установлены ли пакеты, можно по
slackpkg search grub os-prober
или поиском в /var/log/packages:
( cd /var/log/packages; ls grub-* os-prober-* )

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)

Если зачем-то захотелось пересобрать бинарный пакет из исходников, забираем содержимое каталога source/a/grub, меняем то, ради чего хотели пресобрать, выполняем сценарий слакбилд и, если все прошло успешно, ставим собранный пакет

# bash *Build
# upgradepkg --install-new --reinstall /tmp/grub-*t?z


Примерно о том же:
http://www.slackware.ru/wiki/Пересборка_пакета

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

подскажите пожалуйста,что значат эти ошибки? что надо доустановить?

In file included from ../../../grub-core/gnulib/argp.h:22:0,
                 from ../../../grub-core/gnulib/argp-eexst.c:25:
./stdio.h:456:1: error: 'gets' undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^
make[4]: *** [argp-eexst.o] Error 1
make[3]: *** [install-recursive] Error 1
make[2]: *** [install] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

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

что значат эти ошибки?

error: 'gets' undeclared here (not in a function)
ошибка: 'gets' не объявлена здесь (не в функции)

_GL_WARN_ON_USE (gets, «gets is a security hole - use fgets instead»);
имя макроса — сокращение от «предупреждать при использовании»
gets — дыра в безопасности, вместо неё используйте fgets

что надо доустановить?

Доустановкой это не решается. Исправить исходники, заменив все вызовы gets на fgets, либо (сильно хуже и опаснее) 1) избавиться от макроса _GL_WARN_ON_USE(gets, ...), 2) добавить объявление gets(), видное там, где есть вызов, 3) обеспечить видимость gets() при линковке.

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

почему так случилось?

Случилось что?

Случилось использование gets() в коде? Она является частью библиотеки времени выполнения языка Си (и совместимого в этой части Си-плюс-плюс), потому и могла быть была использована.

Случилось отнесение gets() к нежелательным к использованию? Ну ее дизайн изначально был огромной потенциальной дырой, доступной для эксплуатации извне.

Случилось отнесение использования gets() к ошибкам компиляции? В какой-то момент достали бесконечные CVE с ее участием и в библиотеке сделали настройку, бьющую по рукам за ее использование.

Случилась ошибка при компиляции? Возможно код был написан до введения умолчания о недопустимости использования gets(). Возможно сборка была написана в тот период, без учета необходимости подавить ошибку при использовании gets().

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

Если желание «пособирать» больше, чем «понастраивать» или «попользоваться», стоило вместо Slackware взять LFS: там и книжка под копипасту, и все про сборку и слейку.

Правда на P-III это будет душераздира-а-а-а-ающее зрелище.

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

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

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

Так я тогда не пойму весьма простых вещей:
1) зачем grub потребовалось собирать? Чтобы что? Готовый в наличии имеется.
2) ладно, допустим потребовалось, почему не готовым слакбилдом?
3) ладно не слакбилдом, почему ставить собранное не пакетом?

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

А пока это похоже на бородатый анекдот

Получил чукча зимой трехкомнатную квартиру. Приходят к нему гости на новоселье. Показывает чукча им квартиру. Заводит в 1-ю комнату: там окна раскрыты, ветер ледяной дует,снег на полу лежит.
-Здесь у меня тундра!!!- говорит чукча.
Заводит во 2-ю комнату: та же картина.
-И здесь у меня тундра!!!
Заводит в 3-ю комнату: окна настежь, метель, сугробы по пояс.
-Здесь у меня тоже тундра!!!
- А где же ты живешь? - спрашивают гости.
Заводит чукча их в туалет: там оленьи и тюленьи шкуры на стенах висят, тепло, уютно.
-А здесь у меня яранга!
-А куда же ты в туалет ходишь?
-Как куда? В тундру!!!

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

ну Вы же помните что пытаюсь собрать ядро. а это вряд ли получится с первого раза учитывая то что я дров нужных для моей железяки fujitsu в скаченном мною ядре не нашел. я включил другие дрова, как мне показалось способные заменить нужные и получил панику ядра. попытался загрузится со старого ядра и не получилось. LILO не хочет сохранять изменения командой #lilo. это мы обсуждали почему. Вы давали ответ на это. решил тогда установить Grub. мне нравится собирать из source, а тут еще проблемы с установкой его из репозитория... то ли он уже есть, но на grub install не реагирует, то ли его нет, но slackpkg install grub выдает только то что пакетов для установки нет. ну думаю фиг с ним, скомпилирую. оно и приятней для меня. я не жалею, что взялся компилить его из source. ошибки при компиляции ожидал. ну конечно же не в таком количестве. ну как бы так. сейчас если установлю Grub, чтобы было легче грузить старое ядро, когда будут ошибки с собранным, то вернусь к сборке ядра. я не просто так прыгаю от одного к другому. сборка ядра продиктовала, что в моем случае удобней будет использовать Grub чем Lilo. ну что ж, Grub так Grub

linuxpc ()
Ответ на: комментарий от bormant

c анекдотом согласен.... может Вы и правы, зачем ковырять почти идеальную ось Slackware.... там все настроено, там все работает... может немного поднаберусь на форуме и действительно возьму созданную для таких дел LFS

но это не с теми нулевыми знаниями что у меня сейчас.

linuxpc ()
Ответ на: комментарий от bormant

тут дело идет к завершению... сореинтируейте с этой ошибкой

../../grub-core/commands/usbtest.c: In function 'usb_print_str':
../../grub-core/commands/usbtest.c:127:7: error: 'name' may be used uninitialized in this function [-Werror=maybe-uninitialized]
       grub_free (name);
       ^
cc1: all warnings being treated as errors
make[3]: *** [commands/usbtest_module-usbtest.o] Error 1
make[2]: *** [install] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

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

LILO не хочет сохранять изменения командой #lilo. это мы обсуждали почему

Не знаю, со мной не обсуждали. И почему же? Из того что писалось здесь и на forum.slackware.ru никаких проблем не увидел, всё исправляется тривиально.

решил тогда установить Grub. мне нравится собирать из source, а тут еще проблемы с установкой его из репозитория...

Проблемы не с установкой, а с нежеланием кое-кого читать ни документацию, ни выхлоп команд... Как определить, установлены ли пакеты grub и os-prober, уже писал, повторять не буду. Но все же любопытно, установлены?

на grub install не реагирует

А должен был реагировать, если команда «grub-install» а не «grub install»? Думаю, должен был написать "-bash: grub: command not found", то есть «команда не найдена».

но slackpkg install grub выдает только то что пакетов для установки нет

Он всегда так делает, когда пакет установлен. Но я об этом уже вам писал.

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

Бред какой-то:
1) хотел использовать Slackware, но разбираться с ее пакетным менеджером (ПМ) не буду.
2) хотел оптимизировать ядро не читая его документации, но «оптимизированный» самосбор «неожиданно» не работает.
3) хотел вернуть дистрибутивное рабочее ядро, но ни команду ПМ, ни ln -fns vmlinuz-huge-* vmlinuz для этого использовать не буду.
4) хотел использовать GRUB, но читать его документацию не буду.
5) вместо чтения документации на GRUB и следования ей, вместо следования ответам на форуме наберу какую-нибудь белиберду и сделаю вывод, что не работает.
6) соберу свой GRUB как нибудь, решать задачи, имеющие решения (готовый SlackBuild) не интересно, возьму гамак и лыжи, хоть комсомолка и не пришла.

Предупреждаю, с самосборным grub «grub install» тоже не сработает.

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

из пакетов ставить не умею.... качал их не раз со Slackware builds делаю

это пример из головы
installpkg grub.tar.gz
выдает
что может быть установлен пакет с разрешениями grub.tgz
я пытался сначала переархивировать 
tar xvf grub.tax.gz
получал grub/
tar czf grub grub.tgz
получал grub.tgz
дальше 
slackpkg install grub.tgz
или 
installpkg grub.tgz 
как бы уже ошибок не было но и устанавливаться также не устанавливалось .

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

grub-install /dev/sda выдает:

Это выдает ваш свеженедособранный GRUB, его
/usr/local/bin/grub-install
в чем легко убедиться командой which grub-install. Ни один make install не останется без последствий ^)

Позвать дистрибутивный несложно, достаточно воспользоваться полным путем к бинарнику:
# /usr/sbin/grub-install /dev/sda
Но нет гарантии, что он ничего не зацепит из /usr/local/bin.

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

это пример из головы

Не надо из головы, надо из слакбука, он на установочном носителе есть в разных вариантах. И переводы в сети есть.

А то, что тут написано, горячечный бред.

Да и в остальном — новичкам рекомендуют полную установку (в составе тех или иных наборов). При следовании рекомендациям вам installpkg не потребуется, все уже установлено.

Тем не менее {install,upgrade}pkg применяются к файлам пакетов Slackware, а не к произвольным тарболам. removepkg применяется к краткому или полному имени пакета, пути/расширения игнорируются.

slackpkg {install,reinstall,upgrade,remove,search,info} применяется к имени пакета, краткому или полному.

И все это описано в документации дистрибутива.

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

ошибки нет, но и ничего не утстановленно... уже минут 10 курсор просто мигает...

Не знаю, что у вас там, но здесь у меня никаких проблем с нет:

# grub-install /dev/sda
Installation finished. No error reported.
hexdump -n512 -С /dev/sda подтверждает наличие в бут-секторе кода от GRUB.

а можно было так делать на запущенной системе?

Да.

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

У grub-install ключика для повышения разговорчивости нет, но можно попробовать по strace посмотреть, чем он там занимается:

# strace -o /tmp/grub.log grub-install /dev/sda
Переключиться в другую консольку и
# tail -f /tmp/grub.log
и смотреть, что зовет и откуда не возвращается.

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

Очистить /usr/local (в оригинале там только каталоги, файлов нет).
Переустановить пакет grub:

# slackpkg reinstall grub

Переустановить загрузчик grub, создать конфиг:
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

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

Проблемы не с установкой, а с нежеланием кое-кого читать ни документацию, ни выхлоп команд

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

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

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

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

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

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

зачем что-то собирать

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

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

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

что есть Линукс? в чем его отличие от винды и прочей дряни? то что он бесплатен? да нет. вам дали законно изменять систему под себя. как вы хотите, и это без каких --либо запретов. как художник: возьми source и твори. винда тебя этого лишает. вы же плюете на суть Линукса: на возможность самому создавать и выбираете уже готовое.

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

linuxpc ()