Ubuntu 22.04 Live USB не работает, сообщает “Недостаточно памяти” без подробностей, даже после работы на других машинах.

Вопрос или проблема

Машина: Dell XPS 13 9380

После загрузки с USB, созданного с помощью Rufus:
Появляется стандартный текст:

Try or install Ubuntu
Ubuntu (safe graphics)
OEM install (for manufacturers)
Boot from next volume
UEFI Firmware Settings

Я выбираю Try or install Ubuntu. Затем экран становится черным с следующим текстом:

error: out of memory.

Press any key to continue...

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

Я не смог найти других с этой ошибкой без множества других, более подробных, сообщений об ошибках, но ошибка “out of memory” достаточно общая, так что я мог что-то пропустить.

У меня была эта проблема при запуске HP Elitebook 840 G8, и Ubuntu не запускалась с USB-накопителя. Затем я проверил настройки BIOS на другом ноутбуке той же модели и заметил, что размер “видеопамяти” на ноутбуке с ошибкой был установлен на 512 МБ, в то время как на другом ноутбуке размер “видеопамяти” был 64 МБ.

Я изменил размер “видеопамяти” на 64 МБ, и ошибка больше не появлялась, и Ubuntu запускалась правильно. Я протестировал разные значения размера “видеопамяти” и заметил, что максимальное значение, допустимое на новых ноутбуках HP, составляет 256 МБ. На ноутбуках Lenovo размер “видеопамяти” может быть установлен на 512 МБ без проблем.

У меня была такая же проблема с ноутбуком ASUS.

error: out of memory.

Press any key to continue...

Затем (видимо, когда отключен сплэш-экран)

. . .
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option: here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 3 PID: 1 Comm: swapper/0 Not tainted 5.15.0-25-generic #25-Ubuntu
Hardware name: ASUSTeK COMPUTER INC. UX550VD/UX5S0VD, BIOS UX550VD.307 04/19/2019
Call Trace:
. . .
Kernel Offset: Ox7a00000 from Oxffffffff81000000 (relocation range: Oxffffffff80000000-Oxffffffffbfffffff)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

Это проблема GRUB (ошибка Ubuntu 1842320).

Rufus в ISO режиме должен сработать. Он установит рабочий GRUB.

Если нет, и у вас уже установлен GRUB на машине — загрузитесь в существующий GRUB (на HDD, не USB), нажмите c, чтобы войти в командную строку, и загрузитесь с USB “вручную”:

  1. Найдите раздел UBUNTU

    grub> ls
    (proc) (hd0) (hd0,gpt1) (hd1) . . .
    grub> ls (hd0,gpt1)
            Partition hd0,gpt1: Filesystem type ... - Label 'UBUNTU 22_0' ...
    grub> ls (hd0,gpt1)/
    boot/ boot.catalog casper/ dists/ efi/ install/ md5sum.txt pool/ ubuntu ...
    
  2. Установите rootfs, ядро, initrd и загрузите ядро

    grub> set root=(hd0,gpt1)
    grub> linux /casper/vmlinuz
    grub> initrd /casper/initrd
    grub> boot
    

У меня есть Alienware Area 51 (DELL) с конца 2019 года. У меня была такая же проблема. Для меня это была проблема с настройками BIOS. Вкладка Advanced содержит настройку “Intel Software Guard Extensions”, известную как “SGX”, она была установлена на “Enabled”. Когда я изменил ее на “Software Controlled”, все заработало как следует.

Скриншот BIOS

У меня была такая же проблема с серией Lenovo Ideapad и использованием live USB, созданного с помощью “Startup disk creator”.

Настройка live USB с помощью Rufus решила проблему.

Я столкнулся с такой же проблемой на Dell Precision 5510. В моем случае initrd был слишком большим для обработки grub. Порог составлял около 100M.

Чтобы уменьшить размер, вы можете сделать следующее:

  1. Скопируйте /casper/initrd с USB-носителя на работающую машину с Ubuntu и назовите его initrd.1
  2. Разархивируйте первый слой: mkdir unpack.1 && cpio -D unpack.1 -idv < initrd.1
  3. Запишите количество блоков. В моем случае это было 62.
  4. Удалите первый слой: dd if=initrd.1 of=initrd.2 skip=62
  5. Разархивируйте второй слой initrd: mkdir unpack.2 && cpio -D unpack.2 -idv < initrd.2
  6. Запишите количество блоков. В моем случае это было 9004.
  7. Удалите второй слой: dd if=initrd.2 of=initrd.3 skip=9004.
  8. Разархивируйте финальный слой: mkdir unpack.3 && zstdcat initrd.3 | cpio -D unpack.3 -idv
  9. Удалите ненужные модули и прошивки из unpack.3, чтобы уменьшить размер. Я удалил unpack.3/usr/lib/firmware/amdgpu.
  10. Перезапакуйте слой 3: cd unpack.3 && find -print0 | cpio --create --null --format=newc --verbose | zstd > ../initrd.3.new && cd ..
  11. Скопируйте исходный initramfs и сохраните initrd.3.new в оригинальное смещение (в моем случае 62 + 9004 = 9066): cp initrd.1{,.new} && dd if=initrd.3.new of=initrd.1.new seek=9066
  12. Создайте четвертый раздел на вашем USB-накопителе с помощью fdisk и форматируйте его как ext4.
  13. Поместите initrd.1.new на этот раздел.
  14. Загрузитесь с USB-накопителя
  15. В Grub выберите первый вариант и нажмите ‘e’, чтобы изменить запись меню
  16. Измените строку initrd /casper/initrd на initrd (hd0,gpt4)/initrd.1.new (идентификатор раздела может отличаться на вашей системе. Проверьте сначала, используя ls (hd0,gpt4)/ в консоли Grub)
  17. Нажмите F10, чтобы загрузить.

После установки вы должны смонтировать установленную систему, войти в chroot и установить MODULES=dep в /etc/initramfs-tools/initramfs.conf. Затем выполните update-initramfs -u, чтобы убедиться, что установленный initrd остается маленьким, и Grub сможет загрузиться.

Я решил свою проблему, установив reFInd Boot Manager (Графический менеджер загрузки для компьютеров на основе EFI и UEFI). У вас должен быть компьютер, который может загружаться в режиме UEFI. Чтобы установить:

sudo apt install refind

Он настраивает себя и будет запускаться первым вместо GRUB, просто скажите “да”, когда он предложит установить себя на esp раздел.

Примечание: я использовал Ventoy для загрузки с USB и установки системы.

Ventoy — это инструмент с открытым исходным кодом для создания загрузочного USB-накопителя для файлов ISO/WIM/IMG/VHD(x)/EFI.
С ventoy вам не нужно форматировать диск снова и снова, нужно просто скопировать образы файлов на USB-накопитель и загрузить его. Вы можете скопировать много образов файлов сразу, и ventoy предложит вам меню загрузки для их выбора.
Также можно просматривать файлы ISO/WIM/IMG/VHD(x)/EFI на локальном диске и загружать их.
x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI и MIPS64EL UEFI поддерживаются одинаково.
Обе стили разметки, MBR и GPT, поддерживаются одинаково.

Я столкнулся с этой проблемой на старом-старом hp zbook g3 С 64 ГБ памяти. Во время загрузки Ubuntu с USB я выбрал grub2 загрузку и безопасную графику. И после этих изменений все заработало.

.

Ответ или решение

Проблема с ошибкой "Out of Memory" при загрузке Ubuntu 22.04 Live USB, возникающая на Dell XPS 13 9380, может иметь несколько причин, часто связанных с настройками BIOS или конфигурацией загрузки. Разберёмся подробнее в природе этой ошибки и способах её решения, учитывая предоставленный контекст и опыт других пользователей.

Теория

Ошибка "Out of Memory" часто возникает при загрузке в режим Live USB, когда загрузчик GRUB не может выделить достаточно памяти для инициализации системы. Это может быть связано как с физическим ограничением ресурсов системы, так и с BIOS-параметрами, которые неправильно применяются во время загрузки.

Причинами могут быть:

  1. Проблемы с конфигурацией BIOS: Настройки BIOS, такие как размер выделенной видео-памяти или параметры безопасности, могут повлиять на загрузку системы. Например, слишком большой размер видео-памяти может исчерпать доступные ресурсы, вызывая ошибку памяти.

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

  3. Совместимость с UEFI: Системы с UEFI могут иметь особенности конфигурации, которые препятствуют корректной загрузке со старых Live USB.

Примеры

В нескольких случаях, описанных пользователями на различных форумах, эта проблема проявлялась в разном виде, и решения касались настроек BIOS, техники подготовки USB-носителя и особенностей использования загрузчиков.

  1. Настройка видео-памяти: В одном из случаев на HP Elitebook 840 G8 проблема была решена снижением размера видео-памяти в BIOS с 512 МБ до 64 МБ.

  2. Использование безопасного режима графики: На старом HP ZBook G3 и других системах выбор режима Safe Graphics помогал обойти ограничения памяти при инициализации драйверов, связанных с видеокартой.

  3. Изменение конфигураций безопасности: На Dell Alienware, изменение параметра "Intel Software Guard Extensions" в BIOS с "Enabled" на "Software Controlled" разрешало проблему, предполагая, что некоторые настройки безопасности блокировали правильную загрузку.

  4. Модификация initrd файла: На Dell Precision 5510 проблема заключалась в слишком большом initrd, который требовал уменьшения размера через удаление ненужных модулей.

  5. Альтернативные методы загрузки: Использование альтернативных загрузчиков, таких как reFInd или Ventoy, помогало обойти ограничение, накладываемое GRUB.

  6. Использование различных инструментов для создания Live USB: Некоторые пользователи столкнулись с проблемами при использовании стандартных инструментов для создания загрузочного USB и решили их, перейдя на Rufus или Ventoy, которые предоставляют более гибкие настройки для установки образов.

Применение

Для решения проблемы с "Out of Memory" на вашем Dell XPS 13 9380, вы можете попробовать следующие шаги:

  1. Проверьте и измените настройки BIOS:

    • Зайдите в BIOS и проверьте настройки, связанные с видео-памятью. Попробуйте уменьшить объём выделенной памяти, если он установлен на высокое значение.
    • Убедитесь, что параметры SGX (Software Guard Extensions) установлены в "Software Controlled" или отключены, если иное создаёт препятствия.
  2. Попробуйте загрузиться в безопасном графическом режиме: При старте системы выберите "Ubuntu (safe graphics)", чтобы обойти потенциальные конфликты с драйверами видео.

  3. Используйте альтернативные инструменты для создания загрузочного носителя: Создайте новый Live USB-носитель с использованием Rufus в режиме ISO или Ventoy, чтобы обойти возможные проблемы создания образа.

  4. Используйте командную строку GRUB для ручной загрузки: Если у вас уже установлен GRUB на жёстком диске, вы можете попытаться загрузиться вручную, задавая пути к initrd и другим критическим файлам через консоль GRUB.

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

Оцените материал
Добавить комментарий

Капча загружается...