Загрузка прошла успешно после очистки корневого раздела

Я пытался установить новое ядро ​​(для удовольствия). Я скачал ядро ​​linux-5.2.9 (в моем корневом разделе в / usr / src) и затем собрал его с помощью make и make modules install.

Но во время загрузки из grub я не смог загрузить его изначально с зависанием процесса загрузки на [OK] Listening on .... или чем-то подобным. Затем я перешел в режим восстановления и удалил исходные файлы linux-5.2.9, чтобы освободить место в корневом разделе и грохнуть, все ядра загрузились успешно (с некоторыми ошибками и сбоями).

Итак, мой вопрос: почему освобождение места в корневом разделе позволило ему загрузиться и почему пространство в корневом разделе имеет значение при загрузке?

2
задан 25 August 2019 в 09:03

1 ответ

Попытка новых ядер всегда является хорошей идеей... однако установка их без системы пакета не так хороша: BuildYourOwnKernel Wiki описывает, как необходимо сделать это в будущем.

Выполнение make и make module_install в ядре источник является только вторым шагом. Как Вы настраивали ядро? Обычно Вы выполняли бы эти шаги:

  1. Настройте ядро: хороший выбор состоит в том, чтобы использовать конфигурацию рабочей формы ядра /boot/config-<kernel version>

    $ cp /boot/config-5.0.0-25-generic /usr/src/ linux-5.2.9/.config
    $ cd /usr/src/linux-5.2.9/ && make menuconfig
    

    Обновление, Настраивающее ядро с make defconfig создаст рабочее ядро, однако оно имеет только минимальный набор настроенных драйверов. Например, это не могло бы работать с текущими видеокартами или микросхемами SATA.

  2. Сборка и модули установки (как Вы сделали),

    $ make && make module_install
    
  3. Скопируйте ядро в /boot. Доступные изображения зависят от Вашей конфигурации ядра

    $ cp arch/x86/boot/bzimage /boot/vmlinuz
    
  4. Создать initrd. Это - часть, которую Вы правильно пропустили, ядро по умолчанию не загрузится без a initrd изображение. Можно сделать это вручную также, но существует полезный сценарий для того обновления-initramfs:

    $ update-initramfs -c -k 5.2.9
    
  5. Добавьте новую запись в grup. Личинка обновления может сделать это, однако она требует, что у Вас ядро и модули есть то же соглашение о присвоении имен.

    $ update-grub
    

И отвечать на Ваш вопрос: пространство в / или /boot раздел не имеет никакого эффекта на ядро Linux. На самом деле ядру не нужны оба раздела вообще. Режиму восстановления Ubuntu, например, только нужно initrd и запустите busybox оболочка.

Так удаляя источник ядра под /usr/src не решил Вашу проблему. Это должно быть что-то еще, что Вы сделали.

2
ответ дан 2 December 2019 в 03:27

Другие вопросы по тегам:

Похожие вопросы: