Вопрос или проблема
Машина: 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 “вручную”:
-
Найдите раздел 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 ...
-
Установите 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”, все заработало как следует.
У меня была такая же проблема с серией Lenovo Ideapad и использованием live USB, созданного с помощью “Startup disk creator”.
Настройка live USB с помощью Rufus решила проблему.
Я столкнулся с такой же проблемой на Dell Precision 5510. В моем случае initrd был слишком большим для обработки grub. Порог составлял около 100M.
Чтобы уменьшить размер, вы можете сделать следующее:
- Скопируйте
/casper/initrd
с USB-носителя на работающую машину с Ubuntu и назовите егоinitrd.1
- Разархивируйте первый слой:
mkdir unpack.1 && cpio -D unpack.1 -idv < initrd.1
- Запишите количество блоков. В моем случае это было 62.
- Удалите первый слой:
dd if=initrd.1 of=initrd.2 skip=62
- Разархивируйте второй слой initrd:
mkdir unpack.2 && cpio -D unpack.2 -idv < initrd.2
- Запишите количество блоков. В моем случае это было 9004.
- Удалите второй слой:
dd if=initrd.2 of=initrd.3 skip=9004
. - Разархивируйте финальный слой:
mkdir unpack.3 && zstdcat initrd.3 | cpio -D unpack.3 -idv
- Удалите ненужные модули и прошивки из
unpack.3
, чтобы уменьшить размер. Я удалилunpack.3/usr/lib/firmware/amdgpu
. - Перезапакуйте слой 3:
cd unpack.3 && find -print0 | cpio --create --null --format=newc --verbose | zstd > ../initrd.3.new && cd ..
- Скопируйте исходный initramfs и сохраните initrd.3.new в оригинальное смещение (в моем случае 62 + 9004 = 9066):
cp initrd.1{,.new} && dd if=initrd.3.new of=initrd.1.new seek=9066
- Создайте четвертый раздел на вашем USB-накопителе с помощью fdisk и форматируйте его как ext4.
- Поместите
initrd.1.new
на этот раздел. - Загрузитесь с USB-накопителя
- В Grub выберите первый вариант и нажмите ‘e’, чтобы изменить запись меню
- Измените строку
initrd /casper/initrd
наinitrd (hd0,gpt4)/initrd.1.new
(идентификатор раздела может отличаться на вашей системе. Проверьте сначала, используяls (hd0,gpt4)/
в консоли Grub) - Нажмите 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-параметрами, которые неправильно применяются во время загрузки.
Причинами могут быть:
-
Проблемы с конфигурацией BIOS: Настройки BIOS, такие как размер выделенной видео-памяти или параметры безопасности, могут повлиять на загрузку системы. Например, слишком большой размер видео-памяти может исчерпать доступные ресурсы, вызывая ошибку памяти.
-
Инициализационные проблемы GRUB: GRUB может испытывать трудности с правильным разбором файловой структуры образа или недостаточной памятью для загрузки initrd, если он слишком большой.
-
Совместимость с UEFI: Системы с UEFI могут иметь особенности конфигурации, которые препятствуют корректной загрузке со старых Live USB.
Примеры
В нескольких случаях, описанных пользователями на различных форумах, эта проблема проявлялась в разном виде, и решения касались настроек BIOS, техники подготовки USB-носителя и особенностей использования загрузчиков.
-
Настройка видео-памяти: В одном из случаев на HP Elitebook 840 G8 проблема была решена снижением размера видео-памяти в BIOS с 512 МБ до 64 МБ.
-
Использование безопасного режима графики: На старом HP ZBook G3 и других системах выбор режима Safe Graphics помогал обойти ограничения памяти при инициализации драйверов, связанных с видеокартой.
-
Изменение конфигураций безопасности: На Dell Alienware, изменение параметра "Intel Software Guard Extensions" в BIOS с "Enabled" на "Software Controlled" разрешало проблему, предполагая, что некоторые настройки безопасности блокировали правильную загрузку.
-
Модификация initrd файла: На Dell Precision 5510 проблема заключалась в слишком большом initrd, который требовал уменьшения размера через удаление ненужных модулей.
-
Альтернативные методы загрузки: Использование альтернативных загрузчиков, таких как reFInd или Ventoy, помогало обойти ограничение, накладываемое GRUB.
-
Использование различных инструментов для создания Live USB: Некоторые пользователи столкнулись с проблемами при использовании стандартных инструментов для создания загрузочного USB и решили их, перейдя на Rufus или Ventoy, которые предоставляют более гибкие настройки для установки образов.
Применение
Для решения проблемы с "Out of Memory" на вашем Dell XPS 13 9380, вы можете попробовать следующие шаги:
-
Проверьте и измените настройки BIOS:
- Зайдите в BIOS и проверьте настройки, связанные с видео-памятью. Попробуйте уменьшить объём выделенной памяти, если он установлен на высокое значение.
- Убедитесь, что параметры SGX (Software Guard Extensions) установлены в "Software Controlled" или отключены, если иное создаёт препятствия.
-
Попробуйте загрузиться в безопасном графическом режиме: При старте системы выберите "Ubuntu (safe graphics)", чтобы обойти потенциальные конфликты с драйверами видео.
-
Используйте альтернативные инструменты для создания загрузочного носителя: Создайте новый Live USB-носитель с использованием Rufus в режиме ISO или Ventoy, чтобы обойти возможные проблемы создания образа.
-
Используйте командную строку GRUB для ручной загрузки: Если у вас уже установлен GRUB на жёстком диске, вы можете попытаться загрузиться вручную, задавая пути к initrd и другим критическим файлам через консоль GRUB.
Эти шаги должны помочь в разрешении конфликта и успешной загрузке Ubuntu Live USB на вашем устройстве. Возможно, потребуется несколько попыток с различными настройками для достижения наилучшего результата.