Booting kernel failed invalid argument ubuntu что делать

Обновлено: 06.07.2024

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

akaRev

Свой человек

нет, посмотри в какой сата порт воткнут ссд. воткни в сата 0 или сата 1. если будет подключен к сата порту, который через отдельный чип - хрен стартанет.
сам с такой херней столкнулся, с чем связано - я хз.

Майнишь только ETH? Добавь ZIL. Регистрируйся по ссылке Пул Ezil.me зарабатывай с нами больше. ETH+ZIL. и зарабатывай больше. Или введи промокод 4eac

Wita54

Бывалый

У меня таже байда была, так я кокда новый образ делал, то совершил крестное знаемение-правда не заню, что помогло.

stepero2

Свой человек

Я просто вернулся на Винду) А так хотел все фермы перекинуть на Рейв.

NOdyy

Свой человек

Я просто вернулся на Винду) А так хотел все фермы перекинуть на Рейв.

Borman

Друг форума

НиколайД

Пляшущий с бубном

короч весь день сегодня на это потратил! райв вообще не встал, а хайв включился. Есть подозрение, что, когда я ставил райв, то не форматировал винт. А при установке хайва форматнул. Это реально тупая ошибка. С хайвом ковырялся тоже долго. карты не все видел, и, почему то, не подцеплялся полетный лист. перезагрузка помогла всё решить. Пока времени нет разбираться досконально что к чему, оставлю 5700 nitro+ на 50 мегахеш. потом поразгоняю и настрою ватчдоги.
жесть. уже заговорил так же непонятно, как все на форуме.
HDD raw я и использовал. Но это скорее всего из-за форматирования не вставала система.

konondoyl

Легенда форума

короч весь день сегодня на это потратил! райв вообще не встал, а хайв включился. Есть подозрение, что, когда я ставил райв, то не форматировал винт. А при установке хайва форматнул. Это реально тупая ошибка. С хайвом ковырялся тоже долго. карты не все видел, и, почему то, не подцеплялся полетный лист. перезагрузка помогла всё решить. Пока времени нет разбираться досконально что к чему, оставлю 5700 nitro+ на 50 мегахеш. потом поразгоняю и настрою ватчдоги.
жесть. уже заговорил так же непонятно, как все на форуме.
HDD raw я и использовал. Но это скорее всего из-за форматирования не вставала система.

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

Стоит у наc миниАТС NeoPBX. Один раз из-за сбоя по питанию она не загрузилась. Вылечил чеком. Все норм загружалось и работало. Решил сделать посекторную копию на ХДД Акронисом 2013 из под Windows. Сделал. Поставил диск обратно в АТС, и отказ в загрузке. Появляется меню выбора ОС (выбор только один title NeoPBX) и все повисает. Сейчас пытаюсь загрузить и разобраться с копией, т.к. ведет себя абсолютно идентично оригиналу.
Помогите пожалуйста восстановить систему.
Если есть кто из Екатеринбурга, могу подъехать.

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

Шифровал производитель миниАТС. вспомнить не представляется возможным. Сам производитель говорит покупайте новую АТС.

Хотелось бы понять что произошло с загрузкой. Вотстановимо это или нет?! Что мог сделать Акронис?

Это не акроникс, это виндовс скорее всего

С оригинального диска система тоже не грузится?

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

Исходного диска и нового. Вывод выкладывай в тегах [code][/code]

Скорее всего шифрованный раздел: Disk /dev/mapper/vg00-encroot: 7 GiB, 7516192768 bytes, 14680064 sectors При посекторном копировании разве могло нарушиться шифрование?!

fdisk -l в самом первом посте.

Я вижу там только один диск, я вас прошу показать оба диска, и в нормальном виде, т.е. тегах [code][/code].

С оригинального так же не грузится

это копия оригинал отъехал временно. Поведение идентично.

Ну раз отъехал что же я вам ещё скажу, делай фото, выкладывай на сервис размещения картинок и сюда ссылки, за одно посмотри конфиг загрузчика и тоже выложи.

grub.config выложен в самом первом посте.

Ну как видишь у тебя есть /dev/mapper/vg00-encroot, а согласно grub будет монтироваться Скорее всего, в файле образа ядра содержится и initrd, ибо его я отдельно не вижу, ну либо показывай содержимое /boot, и в этом initrd стоит код для открытия шифрованного контейнейра mapper/vg00-encroot в mapper/neoroot.

Давай снимки процесса загрузки, без этого можно дискутировать дальше, но беспердметно.

Не вся строчка скопировалась. Исправил.

Ну значит можно пробовать распаковывать initrd и смотреть что он делает, в нём должна быть вся необходимая информация для расшифровки контейнера.

Посмотри утилитой file какой алгоритм сжатия в файле:

Ну и где снимки экрана с процессом загрузки, до вызова ядра и его работы вообще доходит?

Может проблема в другом, где снимки?

kostik87 ★★★★★ ( 03.03.17 11:00:35 )
Последнее исправление: kostik87 03.03.17 11:01:09 (всего исправлений: 1)

Не пойму как сюда картинки вставлять

Я не понимаю доходит ли до вызова ядра. По моему ощущению не доходит.

скорее всего вызов ядра не получается, что-то мешает. Как раз на этом моменте повисает по истечении 9сек. экран мигнет и все.

После нажатия клавиши ввод на выбранном пункте меню экран должен очиститься и на экране появиться строки

после нажати второе фото. Так и висит, больше ничего не происходит.

Т.е. вот эти команды:

kostik87 ★★★★★ ( 03.03.17 11:20:29 )
Последнее исправление: kostik87 03.03.17 11:23:45 (всего исправлений: 1)

На нажатие С такая же реакция как на нажатие Enter, зависает.

Значит проблема с загрузчиком, поставь на флешку любой загрузчик, например syslinux, скопируй на неё файл vmlinuz и initrd.img, напиши конфиг syslinux.cfg

В командной строке windows запущенной от администратора введи:

на флешке должна быть FAT32, флешка с разметкой MBR. Далее в корень флешки помести указанные файлы и файл syslinux.cfg с приведённым конфигом, пробуй.

Утилита находится здесь: bios/win32/syslinux.exe

kostik87 ★★★★★ ( 03.03.17 11:30:05 )
Последнее исправление: kostik87 03.03.17 11:32:56 (всего исправлений: 1)

попал пацанчик на бабло ибо руки кривые

Найди форум с этими атс и попроси поделиться образом, слитым с помощью dd через livecd.

люблю такое, надо ж было лезть когда работает да еще и каким-то говнософтом из-под оффтопика, госпаде, администраторы!

Загрузился. Высветилось приглашение.

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

Скачай другую версию syslinux, например версию 4.xx, это ошибка загрузчика.

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

Хотя что-то я запутался, может и с отдельным параметром INITRD заработает, пробуй и так и так, если не загрузится.

kostik87 ★★★★★ ( 03.03.17 12:45:16 )
Последнее исправление: kostik87 03.03.17 12:52:54 (всего исправлений: 2)

Если с версией 6.03 довольно долго шел процесс загрузки ядра перед ошибкой, то с версией 4.07 доли секунды и ошибка.


Может торрентом раздашь снятый образ? Так было бы проще.
Или хотя бы initrd от своей АТС выложи куда-нибудь.

gasinvein ★★★ ( 03.03.17 12:58:29 )
Последнее исправление: gasinvein 03.03.17 12:59:42 (всего исправлений: 1)

Ну значит битый образ ядра, попробуй сам поставить другой загрузчик на флешку, например grub4dos, grub-0.97 или grub2, найди сам как ставить эти загрузчики и какой у них конфиг.

Но, скорее всего, действительно повреждён образ ядра. Если знаешь какой там конкретно дистрибутив то можно попробовать найти ядро.

Ну либо обращайся в тех. поддержку с просьбой выслать образ ядра, это если учесть, что Initrd целый.

Можешь попробовать распаковать Initrd, что бы посмотреть что в нём и, возможно, определить что там за дистрибутив по версии ядра.

Вместо initrd.img указывай полный путь до него, ну либо скопируй initrd в /tmp, тогда так:

Так же, возможно, это образ файловой системы, например ext2, тогда можешь просто его монтировать:

Help Ситуация такая, что пытаясь поставить ubuntu 2й операционкой что-то поломал Ноутбук acer
Изначально в bios в boot menu было 7 boot priority order
В данный момент всего 1н под названием Windows . boot . дословно не помню (раньше его не было)
Изначально Ubuntu запускалась, но к сожалению в первый раз (при первом включении ubuntu без установки и попытке её установить) пространство выделилось не так как ожидалось (из 500гб хотел отделить 60 на убунту, ну то есть освободить в итоге диск Д на ноутбуке стал 60 xD вернувшись в Виндовс и подумав, что 3 диска не так уж и плохо вернулся к ubuntu загрузив её опять без установки попытался установить
выделил память в '/' , раздел подкачки и '/home' попытался установить ubuntu, но словил ошибку, попытался проделать те же операции ещё раз (яж чайник ток по интернетовским инструкциям могу) получил ту же ошибку, про что-то невыделенное, но попытался идти дальше и получил ещё 1 ошибку вернулся назад и ubuntu зависла
пришлось выключить её и попробовать снова
так я и пришёл к тому, что имею сейчас
при попытке запуска флешки через boot menu
выскакивает
Failed to open \EFI\BOOT\mmx64.efi - Not Found
Failed to load image \EFI\BOOT\mmx64.efi - Not Found
Failed to start MokManager: Not Found
Something has gone seriously wrong: import_mok_state() failed
: Not Found

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Проблема с установкой Ubuntu 18.04
Устанавливаю Ubuntu 18.04 с флэшки на ноутбук hp (intel i5, nvidia). Проблема в том, что на этапах.

Проблема с установкой ubuntu
Здравствуйте, возникла такая вот проблемка: устанавливаю ubuntu ubuntu-11.10-desktop-i386 на.

ПРОБЛЕМА с установкой Ubuntu Помогите пожалуйста!
Здравствуйте. Опишу коротко свою ситуацию. У меня стоит Windows Xp, решил поставить ubuntu 11-10.

Проблема с установкой mysql-server на linux ubuntu server 11.04
Не могу установить mysql-server на ubuntu server пишет 0% потом соединение разорвано Пробовал.

UEFI Tux Logo

Прочитав недавнюю статью Загрузка ОС Linux без загрузчика, понял две вещи: многим интересна «новинка», датируемая аж 2011 годом; автор не описал самого основного, без чего, собственно, и работать ничего не будет в некоторых случаях. Также была ещё одна статья, но либо она уже устарела, либо там опять таки много лишнего и недосказанного одновременно.

Итак, что же такое Linux Kernel EFI Boot Stub?

Общая информация

А ни что иное, как… «exe-файл»! Да-да, «виндовый» PE/COFF. Ну, а точнее, только закос под него с небольшими модификациями, чтобы угодить загрузчику UEFI. Можно убедиться в этом, прочитав первые 2 байта ядра:

Знакомо, не правда ли? Как минимум тем, кто хоть раз «для интереса» открывал исполняемый файл MS-DOS или Windows в блокноте, хекс-редакторе или чём-то покруче. Это инициалы Марка Збиковски, который, собственно, и разработал данный формат файлов в MS-DOS. Сигнатура этой заглушки до сих пор висит рудиментом в современных исполнимых файлах Windows, сжирая со своим заголовком целых 64 байта на каждый файл!

DOS-заголовок попадает на legacy-код, который выполняется в случае загрузки ядра как бут-сектора, и ругается на манеру MS-DOS при запуске PE-файлов: «Direct floppy boot is not supported. Use a boot loader program instead. Remove disk and press any key to reboot . ». Поэтому информация из этого заголовка здесь является мусором, кроме, собственно, сигнатуры 'MZ' и адреса смещения следующего заголовка.

Идём дальше.
Спецификация PE/COFF говорит нам, что по смещению 0x3c находится 32-битное смещение второго заголовка с сигнатурой «PE\0\0»:

итак, смещение равно 0xb8, что справедливо для текущего stable-ядра x86_64 архитектуры, на x86 будет 0xa8. Читаем:

А вот и сигнатура второго заголовка! Как можно было догадаться, это аббревиатура от словосочетания Portable Executable, с которой и начинается полезная нагрузка в исполнимых файлах.

Даже загрузчик Windows плевал на половину полей этого заголовка, а уж UEFI они и вовсе не нужны, поэтому некоторые из них прописаны статически, важные же — заполняются во время сборки ядра. Множество «ненужных» полей, всяких таймстемпов, котрольных сумм и пр. просто остаются нулями. Заполняются в основном размеры, смещения, точка входа и т. д. Поэтому, можно с натяжкой назвать данный PE-файл полностью валидным. Однако, классические утилиты LordPE или PETools вполне себе довольствуются сигнатурами и рассказывают о файле всё, что им известно:

PE optional header

image

Основное отличие от «реальных» исполняемых файлов в Windows — это флаг Subsystem опционального заголовка, который выставляется в IMAGE_SUBSYSTEM_EFI_APPLICATION, а не в IMAGE_SUBSYSTEM_WINDOWS_GUI для графических или IMAGE_SUBSYSTEM_WINDOWS_CUI для символьных (консольных) приложений Windows соответственно.

Структура

В общем же, всё как в обычном PE-файле. На текущий момент стабильной версии 3.11.4 ядра Arch Linux из репозиториев, в нём содержатся 3 секции: '.setup', '.reloc' и '.text'.

  • Секция .setup, содержит в основном legacy-код для инициализации в случае загрузки в режиме совместимости. При загрузке же в UEFI mode, все переключения режимов процессора, начальные инициализации производит прошивка.
  • .reloc секция обязательно требуется загрузчиком, поэтому при сборке ядра создаётся пустая заглушка «чтоб было».
  • Самая интересная секция .code, собственно, содержит EntryPoint и основной код всего остального ядра. После того, как EFI-application найдено, загрузчик выполняет загрузочный сервис LoadImage, тем самым загружая весь образ в память. Тип резидентности зависит от поля Subsystem: EFI_APPLICATION будет выгружаться, когда отработает. EFI_DRIVER же может быть Unloadable и выгрузится только в случае критической ошибки. Далее передаётся управление на точку входа, обычно это функция efi_main() — аналог main() в C.

Основные требования

image

Прежде всего, необходимо активировать режим загрузки EFI-mode. Пункт может называться как вдумается вендору, обычно находится во вкладке Boot Options. Если увидели там что-то вроде Legacy Mode или CSM (Compatibility Support Mode), либо просто BOIS Mode, меняйте на что-то похожее: (U)EFI Mode, Enhanced Mode или Advanced Mode.

Если материнская плата имеет логотип «Windows 8 Ready!», то, скорее всего, режим EFI Boot Mode уже активирован по умолчанию.

В большинстве случаев, для загрузки ядра Linux в EFI-mode необходимо выключить опцию Secure Boot.

Разметка диска

Многие источники указывают, что обязательно нужна разметка диска GPT, а не MBR, но это не так. UEFI вполне себе умеет MBR. Другое дело, например, Windows насильно заставляет разбивать диск новым методом, чтобы грузиться в EFI mode и ругается на древность Master Boot Record'а. И правильно делает! Разметив диск «современно» ничего не потеряем, а только выиграем.
Во-первых, не будет проблем со всякими там Primary/Logical разделами, «туда не ходи — сюда ходи» и прочими рудиментами.
Во-вторых, хоть сейчас и продвигаются массово SolidState-диски, у которых объёмы пока не сильно удивляют, размером же обычной «вертушки» в несколько терабайт сейчас уже никого не удивишь. А ведь под MBR можно разметить раздел максимум около 2ТБ. GPT же, видит ну очень много, можно даже цифру не называть — относительно не скоро появятся диски таких размеров.
Ну и плюс всякие бонусы, типа дублирования GPT-записи в начале и конце диска, контрольные суммы целостности и т. п., добавляют желания не раздумывая размечать диск под GPT.

Статей, как разбить диск с помощью различных утилит в GNU/Linux можно найти огромное количество.

Отдельный раздел
Тип раздела

Здесь существует некоторая неявность. Все утилиты для разметки, например, parted, имеют свойство установки и отображения флага «boot», который применяется к разделу. Так вот, в случае с MBR, такая возможность действительно имеется, т. е. существует реальный байт, который указывает БИОСу на «загрузочность» раздела. Этот флаг можно поставить на любой раздел, MBR которого, мы хотим скормить БИОСу для загрузки. Но, когда мы имеем дело с GPT, никакого флага в действительности нет! Под этим флагом parted понимает как раз GUID равный вышеуказанному. Т. е. по факту GPT boot flag = GPT EFI Partition!

Вывод: если наш EFI-раздел на MBR — ставим тип раздела EFI Partition и boot flag. Если GPT — либо тип EFI Partition, либо boot flag, так как они представляют собой одно и то же.

Есть ещё всякие вещи, типа GPT legacy boot flag, который устанавливается в Protective MBR, и прочее, но всё это костыли, которые используются только в режиме совместимости. В режиме GPT UEFI Boot должны игнорироваться.

Файловая система

В разных источниках пишут по-разному. Кто-то говорит, что FAT16 можно использовать, кто-то даже FAT12 рекомендует. Но, не лучше ли последовать совету официальной спецификации? А она говорит, что системный раздел должен быть в FAT32. Для removable-media (USB HDD, USB Flash) — ещё и FAT12/FAT16 в придачу к FAT32.
Про размер раздела ничего не говорится. Однако, по причине начальных костыльных и баганых реализаций загрузчиков и прошивок, опытным путём народ выяснил, что во избежание различных «внезапностей», рекомендуется размер не менее 520МиБ (546МБ). Здесь как повезёт, проблем может не быть и с 32-мегабайтным разделом.

Структура директорий

После того, как загрузчик нашёл свой «меченый» раздел и убедился, что поддерживает файловую систему, он начинает выполнять все действия с путями, относительно корня раздела. Кроме того, все файлы в данном разделе должны находиться в директории \EFI\, которая, в свою очередь, является единственной в корне раздела. По соглашению, каждому вендору рекомендуется выделить себе папку с уникальным названием и поместить её в \EFI\, например: \EFI\redhat\, \EFI\microsoft\, \EFI\archlinux\. В директории вендора находятся непосредственно исполнимые efi-приложения. Рекомендуется один файл на одну архитектуру. Файлы должны иметь расширение .efi.

Для съёмных устройств предназначена директория \EFI\BOOT\. В ней так же рекомендуется не более одного файла для каждой архитектуры. В дополнение к этому, файл должен называться boot.efi. Например, \EFI\BOOT\bootx64.efi. Доступные архитектуры: ia32, x64, ia64, arm, aa64.

Доступ к NVRAM

По умолчанию, если ничего не записано в энергонезависимой памяти UEFI, будет загружаться \EFI\BOOT\bootx64.efi. Чтобы записать в NVRAM путь к необходимому приложению, можно воспользоваться утилитой efibootmgr. Попробуем вывести текущие записи:

В некоторых дистрибутивах для работы этой утилиты требуется включенная опция ядра CONFIG_EFI_VARS.

Приступаем

image


Итак, мы разметили FAT32 EFI System Partition (ESP) размером 550МиБ . Либо, у нас стоит винда второй системой и уже сама создала его. Правда, создаёт она его обычно размером около 100МБ, но лично у меня проблем никогда не возникало.
В /boot уже имеется ядро с поддержкой EFI boot STUB.

Чтобы проверить, была ли включена опция при сборке ядра, выполним:
либо

CONFIG_EFI_STUB=y означает, что опция активна.

    Можно смонтировать ESP\\ на /boot через mount --bind, предварительно скопировав содержимое.
Данный пункт подходит только для дистрибутивов, которые не содержат символические ссылки в каталоге /boot. Например, на openSUSE монтировать не удастся, т. к. он содержит там несколько ссылок, в том числе и на само ядро.

  • Используем efibootmgr, который умеет передавать параметры ядра.
  • Если efibootmgr брыкается, можно воспользоваться UEFI Shell, который, как и наше ядро, является EFI-приложением. Через его команду bcfg возможно редактировать пункты загрузки.
  • Может быть такой вариант: efibootmgr ругается на добавление параметров, значит прошивка не поддерживает их запись (либо просто кривая, что вероятнее). В прошлой статье в комментах упомянули параметр ядра efi_no_storage_paranoia , который может помочь. Но пользоваться им можно только если вы уверены в том, что ваша прошивка реализована полностью в соответствии со спецификацией! Разработчики предупреждают, что если вендор добавил костылей и отсебятины при реализации, есть неиллюзорная вероятность материализовать кирпич на месте материнской платы.
  • Можно также грузиться через UEFI Shell. Для него создаётся скриптstartup.nsh, в котором указывается команда загрузки ядра с нужным command line. А Shell, в свою очередь, добавляется как пункт загрузки.
  • Существует ещё одна проблема: добавление пункта возможно только для одного пути ядра, при этом ram-disk не видится. В большинстве статей рекомендуют при этом пересобирать ядро со встроенным initrd. Точно не знаю — проблема ли ядра это, или загрузчика. Но на текущий момент в 90% случаев всё поддерживается и пересобирать ядро не нужно.

Рекомендации по встраиванию рам-диска в ядро пошли, скорее всего, из-за массового неверного указания пути к нему. В ранних реализациях EFI Boot Stub, ядро не плевалось ошибкой о неверном пути к ram-disk, а молча отказывалось грузиться. Видимо поэтому все начали массово внедрять его в ядро, решив, что он не поддерживается. Хотя поддержка параметра initrd существует с самого появления в ядре фичи Boot Stub.
ВАЖНО: Путь к ram-диску передаётся абсолютный через обратные слеши " \ ", а не прямые! Например, initrd=\EFI\archlinux\initramfs-linux.img.
На самом деле, ядра, версий выше 3.8.0-rc5 не видят разницы между прямым и обратным слешем — будет работать любой. Но вот с момента появления фичи Boot Stub в версии 3.2.0-rc5, путь, записанный через прямые слеши, ядро просто не видело и молча без ошибок отказывалось грузиться. Ругаться ошибками по этому поводу, оно научилось в версии 3.4.0.

Dualboot без загрузчика

Если у вас установлены 2 системы одновременно, и всё равно не хочется ставить сторонний загрузчик, можно добавить обе в пункты загрузки UEFI и подкорректировать предпочитаемый boot order. Загрузчик Windows обычно располагается в \EFI\Microsoft\BOOT\bootmgfw.efi.

Итого

Если всё сделано правильно, перегружаемся, вызываем Boot Menu, выбираем добавленный нами пункт и смотрим на почти мгновенную загрузку. В случае с SSD, FastBoot, Readahead и Arch Linux — около 3-4 секунд. Домашний сервер уже год загружается без всяких сторонних загрузчиков, используя EFI Boot STUB.
Конечно, выигрыш в скорости тут минимальный, но, как пишут знающие люди типа Roderick Smith, иногда в режиме EFI Boot происходит «более адекватная» инициализация оборудования, чем в режимах совместимости.

Заключение

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

Читайте также: