LINUX.ORG.RU

Операция «вброс кукушонка».

 , ,


0

1

Сразу скажу, что взаимонепонимание исключительно на совести тех, кто читает не то, что написано. У Маркса нигде не написано, что подъезд Калабуховского дома на Пречистенке надо заколотить досками, и я тоже нигде не писал, что не дублирую двухстраничный тред потому, что не уважаю специалистов и мне лень пальцем шевельнуть для их удобства, а вовсе не потому, что двухстраничную простыню тащить в тему считаю ещё более похабным поведением. Как и укрывание части фактов от тех, кому они могли бы быть полезны. Если кто-то автоматически в уме подставил к реальным словам то, что написано курсивом — это скорее их портрет рисует, чем мой. Правда, не ожидал, что их будет так много. Если необходимой частью «проявления уважения» считается обилие текста — фигня-война, только намекните. Надеюсь, это прояснило ситуацию, и я хочу покончить с гуманитарными проблемами (желательно перманентно, без рецидивов) и перейти к техническим.

Итак. Первичная задача: в дистрибутив Lubuntu 13.10 Alternate Installer внедрить своё ядро. Точнее, оба (и .deb-пакет, который будет устанавливаться при использовании этого дистрибутива, и само то ядро, которое этот дистрибутив грузит и использует для своей собственной жизнедеятельности). Сначала, конечно, собственное ядро, потому что с .deb-пакетом задача мне кажется несколько тривиальной. Забудем его вообще пока.

Теперь лог экспериментов в стиле «бочку сделал, тунца с гречкой съел, не помогло».

1) С этого самого дистрибутива поставил Любку на первый попавшийся десктоп. Воспользовавшись мануалом «сборка ядра для самых маленьких» (он же http://pingvinus.ru/note/linux-kernel-compile) выполнил следующие простые вещи:

sudo apt-get install build-essential kernel-package libncurses-dev

sudo apt-get install linux-source

cd /usr/src

sudo tar xjf linux-source-3.11.10.tar.bz2

sudo ln -s linux-source-3.11.10 linux

cd /usr/src/linux

sudo make oldconfig

Вот тут у меня возник первый вопрос, с которым нужно обращаться к знающим людям, а не к гуглятине. А дефолтные параметры ядра в установленной системе подходят ли для ядра, на котором установщик будет крутиться? Всё-таки не LiveCD, а Alternate. Поскольку я не знаю, я довёл вивисекторский опыт до конца. Особенно меня смущают нюансы с модулями.

sudo make menuconfig

Нашёл и поменял то, что нужно найти и поменять. Сохраниться не забыл, нет :)

sudo make-kpkg clean

(на всякий пожарный почистил, просто я заодно и себе тюненое ядрышко собрал, но это оффтоп уже)

sudo make-kpkg --initrd --append-to-version=-mykernel kernel_image kernel_headers

Ну, и спокойной ночи :) Утром убедился, что в гнезде появились два кукушачьих яйца .deb-формата (ядро и хедеры, очевидно). Двойным кликом в папке (ну да, да, через гуйный PCManFM, хотя какая к чёрту разница...) вылупил из яйца кукушонка. Ребутнулся, ессно прощёлкал клювом grub menu %) но через

uname -r

убедился, что «майкернел» имеет место быть. Удостоверился, что Любка с моими ковыряниями в ядре вполне жизнеспособна. Не без подсказки добрых умных людей убедился, что в директории нет, опять в папке, я опять через PCManFM смотрел %) по фамилии /boot присутствует каноничное, описанное здесь вот содержимое: config, initrd.img, System.map и — дайбохздоровья Торвальдсу — vmlinuz.

Тут возникает второй вопрос к узким кругам знающих больше, чем можно нагуглить за вечер. Куда, собственно, на этом чёртовом загрузочно-установочном CD вбрасывать кукушонка? Родные vmlinuz и initrd.gz лежат в /install. Там они и были торжественно мной заменены (при помощи iso-редактора, который очень деликатно относится к тем областям, которые менять не надо) на позаимствованные из /boot, предварительно убедившись, что они так же и тем же сжаты, просто чтобы посмотреть, на какой стадии это грохнется. Грохнулось всё на правильной стадии, то есть я поменял то, что нужно было поменять :) Это было тривиально и очевидно. А за остальным я, собственно, к вам и постучался.

Видимо, карта вызовов функций ядра куда-то жёстко вшита. Внемлю.

Я не понял, что мешает притащить на ту машину флешку со скомпиленным ядром и поставить его через LiveCD?

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

На какую «ту машину»? Та, на которой ядро было собрано — ну оно уже там, оно родилось там. Другие пока за кадром, и предполагаются «пустыми», с чистым диском и без возможности грузить там LiveCD и даже Alternate CD из-за того, что дефолтное ядро как LiveCD, так и Alternate CD на этих машинах просто не работает. И нужно в Alternate CD заменить его собственное, использующееся для нужд инсталлятора, ядро на чуть подправленное просто для того, чтобы «в первый раз в первый класс» их загрузить.

Или, ещё проще: инсталлятор Lubuntu крутится на ядре, которое не работает на целевых машинах, на которые-то и надо её ставить. Т. е. их даже не забутить.

Nick_what_is_again
() автор топика
Ответ на: комментарий от ephecaff

Блаженны флейм не заставшие, ибо их есть нервное спокойствие :) ЗЫ: нет, ничего интересного там не было. Фтопка ему судья %)

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

что дефолтное ядро как LiveCD, так и Alternate CD на этих машинах просто не работает

Дык не убунтовый LiveCD!

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

...и оттуда запустить установщик lubuntu, стоящий просто на каком-то «левом» носителе вместе с дистрибутивом, содержащим правильное ядро? Хм. Запустить установщик «руками», грузясь с постороннего диска. Это не то решение, которое можно раздавать в виде .iso неподготовленным людям, но если установщик такое сглотнёт — это тоже неплохой выход. Неожиданно :)

Nick_what_is_again
() автор топика
1 марта 2014 г.

Шоу продолжается.

Сделал ход конём. Вооружившись исомастером, взял дистрибутив 12.04 alternate и 13.10 alternate. Выдрал из корня 12-й /install и /isolinux (в последнем заодно и загрузочная запись была в виде обычного файла isolinux.bin, на что мне и указал сразу исомастер), и вбросил этого кукушонка вместо аналогичных в 13.10 (там несколько более расширенный netinstall был, но я этот момент игнорировал как незначимый на сегодня). Теперь /isolinux соответствовал /install, ядро тоже было не самосборное, а, очевидно, фирменное (из /install же), поэтому установщик стартовал и через пару менюшек выдал мне следующий «Verboten»:

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

Ещё бы, ага.

Если вы производите установку с зеркала, то можете обойти эту проблему, выбрав для установки другую версию Ubuntu. Без модулей ядра продолжение установки может оказаться невозможным.

Не «может», а «окажется», хе.

Я правильно понял, что речь идёт об уже устанавливаемых модулях, которые в .deb запакованы? И что я должен просто их тоже подменить на старые, чтобы он мне тупо установил 13.10 с ядром от 12.04 имени доктора Франкенштейна? Это было бы неплохо, т. к. до консоли-то оно в любом случае запустится даже с допотопным ядром, а потом я уже новое-без-PAE вкорячу.

Nick_what_is_again
() автор топика
Ответ на: комментарий от ephecaff

Весь первый абзац вообще жалкая бесполезная попытка защититься от дебилов. Но зачем тогда писать на лоре?

sudo make-kpkg --initrd --append-to-version=-mykernel kernel_image kernel_headers

автор, модулес имейдж забыл и ещёчото, не помню что.

darkenshvein ★★★★★
()

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

Смотря от того, куда хочешь ставить ведь, смотри сам что там стоит галочками-точками. Или ты про параметры передаваемоым грабом ядру?

Куда, собственно, на этом чёртовом загрузочно-установочном CD вбрасывать кукушонка?

dpkg -i, очевидно. И собирай дистр с UCK тогда уж, если хочешь минимального удобства.

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

А кто сказал, что я сдался? Это тактическое отступление. Я понял, что сначала надо научиться пользоваться готовым ядром от 12-й, довести процесс до конца (если 13-я с ядром от 12-й встанет и запустится) или до тупика (если ядро от 12-й для 13-й уже недостаточное), а потом переходить к более сложной задаче, то есть вживлению ядра не готового от 12-й, а самосборного. Тут-то мне в этих мануалах придётся рыться уже по-серьёзному, но и база знаний уже лучше будет.

А UCK вообще пригоден для тюнинга alternate cd, в смысле которые не live? Я просто думал Ubuntu Builder'ом заменить .debы ядра на спёртые из 12.04, только вот для темпов гигов 10 подрасчищу, на это часа полтора уйдёт. Потому что то ядро, которое чисто для загрузки и первичных менюшек, как я выше писал, от 12-й очень просто вбросилось в 13-ю.

Nick_what_is_again
() автор топика
Ответ на: комментарий от darkenshvein

Думаю, что ничего невозможного :) Сомнения только в UCK:

Description

Ubuntu Customization Kit is a tool that helps you customizing official Ubuntu Live CDs (including Kubuntu/Xubuntu and Edubuntu) to your needs. You can add any package to the live system, for example language packs, or applications.

И Lubuntu, и при этом не Live? Вот я и думаю, а мне сначала пробовать ли вообще UCK или начать с другого, с UB, например. Пока старые образы пишутся, есть время потеоретизировать.

Nick_what_is_again
() автор топика
Ответ на: комментарий от darkenshvein

До этого поста не пробовал, чисто теоретически предполагал «ахинею», т. к. насмерть машина занята была. Ну вроде как запустился... он, а равно и убунту билдер, жалуются на то, что образы почему-то read-only (видимо, зачмодить образы надо, хотя вообще странно, нафига они тогда пароль рута просили).

Nick_what_is_again
() автор топика
Ответ на: комментарий от darkenshvein

Дак это-то само собой... а если пока вообще оставить кастомизаторы в покое и задаться вопросом: вот тут Операция «вброс кукушонка». (комментарий) что всё-таки произошло? Так просто, для предварительного развития мозга хотелось бы понять. Зачем установщику вдруг понадобилось ещё одно ядро загружать? Сколько вообще в этой гирлянде ядер друг друга сменяет?

Nick_what_is_again
() автор топика
Ответ на: комментарий от ziemin

Всё-таки, подумав, я понял, что я ни хрена не понял :( На целевой машине системы нет, ну или какая-нибудь древняя. Туда не ядро, а 13.10 надо ставить, причём с нуля.

Допустим, я загрузился с какого-то «левого» LiveCD, а дистрибутив 13.10 у меня доступен при этом просто как диск. Неужели установщик можно дёрнуть оттуда руками просто вот так вот, как простой скрипт, и он сработает? Ядро своё в установленную систему можно доставить хоть боком, хоть раком, а систему-то как развернуть, хотя бы даже сначала и с ядром, которое на этой машине и работать-то не может?

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

Неужели установщик можно дёрнуть оттуда руками просто вот так вот, как простой скрипт, и он сработает?

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

Во-вторых. Я не специалист, но можно установить ядро с liveCD. В смысле не прям то же, которое на диске, а любое с доступных носителей.

Кастану гентушников/бсдшников (я на дебиане), они знают толк: tazhate, beastie

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

Чего? Кстати старая тема. Кастани сразу всех, кого я перечислил, тегами. Только не сейчас. Ужик проснулся. Когда утихнет.

upd: я имел в виду новую тему сделай.

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.