Паника End kernel не синхронизирует память и не убивает процессы

У меня в VMWARE виртуальный machince, Lubuntu17-32bit, он может работать на 500 Мб ОЗУ легко (даже 300 Мб достаточно). Я скомпилировал ядро ​​«linux-4.12.3.tar» и установил его внутри VM i.e Lubuntu. Когда я перезапущен с новым ядром, я получаю:

End kernel panic not syncing out of memory and no killable processes

Мне пришлось увеличить ОЗУ для виртуальной машины до VMWARE , чтобы избежать этой ошибки, и когда система хватается и достигает

Примечание: жестким диском, назначенным этой виртуальной машине, является 300mb .

Так зачем нужна вся эта RAM!

Обновление:

Обратите внимание, что ребята: я Обновление: сказал, что я столкнулся с проблемами при компиляции, проблемами при установке , ни проблемы в работе над новым ядром. Единственная проблема заключается в загрузке из нового ядра, для которого требуется 1500 МБ только для загрузки, и когда загрузка завершена и доходит до экрана входа в систему и рабочего стола, ОС (Lubuntu) вместе требует меньше 300 МБ. Итак, почему этот 1500mb и как его уменьшить?

Ответ:

В файле /boot/initrd.img возникла проблема, он имеет огромный размер. Чтобы уменьшить его размер:

cd /lib/modules/<version> sudo find . -name *.ko -exec strip --strip-unneeded {} + sudo update-initramfs -c -k <version>

Reboot

Спасибо за ребята, которые это указали.

1
задан 17 September 2017 в 20:59

2 ответа

Я думаю, что паника ядра произошла по одной из следующих причин или может быть больше

1. Компиляция ядра в основном устанавливает ядро, поэтому вместо замены старого ядра он вместо этого застрял в тупике, где ни один из ядер не смог использовать память, таким образом, панику.

Новое ядро ​​входило в какой-то вид цикла, думаю, что так «он пытался называть себя», или просто он стал вилкой с бомбой, таким образом, из-за ошибки памяти и паники. Раздел, выделенный для нового ядра, не был достаточным. Попробуйте сделать другой раздел, смонтируйте его, sys свяжите его так, чтобы другие программы могли его выполнить. Теперь перекомпилируйте его с помощью gcc и цепей (компоновщик) Вместо того, чтобы заменить ядро, он убил себя. Если вы извлекаете tar-архив ядра, размер которого первоначально составляет 300 мб, после извлечения i.e «tar -xvf kernel.zip» он становится гигантским размером в 900 мб. После установки таких пакетов, как gcc, g ++, gnu-make и т. Д. И компиляции, скомпилированное ядро ​​может стать мамотом в 2 ГБ пространства. Так что если в этом разделе не так много места из памяти. Вы не предоставляли область подкачки. Поскольку построение ядра требует ресурсов, оно требует как достаточного объема пространства, так и подкачки. Во время установки он создает дополнительную папку, например / mount, / proc, / boot, / dev и т. Д. Таким образом, каждая часть получает соответствующее местоположение, а некоторые из них потерпели неудачу из-за нехватки памяти. Обычно ядро ​​скомпилировано в chroot как среда, но если chroot не настроен должным образом, он может не получить такой ресурс, как proc, mnt, dev, таким образом, панику. Если вам по-прежнему нужна помощь, проверьте эти две группы # 1 для команды ubuntu, # 2 для отладки ядра для ubuntu

Новое обновление:

Поскольку ваше обновление, похоже, подразумевает компиляцию Ядро работало.

Это могло означать только то, что вы скомпилировали все ядро.

Обычно ядро ​​имеет все, что может быть важно для одного, но пустая трата пространства и времени для других.

Итак, либо вы можете использовать новые ядра из ядра ubuntu. В моем случае его v4.14-rc1.Загрузить ядро, которое соответствует вашей арке. У меня x86_64, поэтому я бы выбрал 64 бита. Я бы загрузил эти

linux-headers-4.14.0-041400rc1_4.14.0-041400rc1.201709162031_all.deb linux-headers-4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb linux-image -4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb

и затем выдает «sudo dpkg -i * .deb» для компиляции всех.

Теперь кажется что ядро, которое вы скомпилировали, имеет более 1 ГБ, таким образом, оно использует больше ресурсов.

Ядро ubuntu имеет много частей, изъятых из-за его низкого размера i и использует тяжелое сжатие.

Ваше ядро может иметь все в нем и может использоваться IOT, серверами, рабочим столом и может быть совместим с arm 64, amd64 и т. д., так как у него могут быть все имеющиеся модули для их запуска.

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

Отличная работа в качестве компиляции ядра - это головная боль, поскольку она использует интенсивный ресурс, время и терпение

Обновление № 2:

Как вы уже упоминали, ваш файл initrd.img был огромным. Не могли бы вы опубликовать снимок экрана с вашей / boot / или в терминале, используя «ls -l», чтобы указать размер всего.

Ядро - это сердце любого дистрибутива Linux.

Я бы все же предложил вам вырезать ненужные модули из вашего ядра и затем скомпилировать его.

1
ответ дан 18 July 2018 в 06:41

Я думаю, что паника ядра произошла по одной из следующих причин или может быть больше

1. Компиляция ядра в основном устанавливает ядро, поэтому вместо замены старого ядра он вместо этого застрял в тупике, где ни один из ядер не смог использовать память, таким образом, панику.

Новое ядро ​​входило в какой-то вид цикла, думаю, что так «он пытался называть себя», или просто он стал вилкой с бомбой, таким образом, из-за ошибки памяти и паники. Раздел, выделенный для нового ядра, не был достаточным. Попробуйте сделать другой раздел, смонтируйте его, sys свяжите его так, чтобы другие программы могли его выполнить. Теперь перекомпилируйте его с помощью gcc и цепей (компоновщик) Вместо того, чтобы заменить ядро, он убил себя. Если вы извлекаете tar-архив ядра, размер которого первоначально составляет 300 мб, после извлечения i.e «tar -xvf kernel.zip» он становится гигантским размером в 900 мб. После установки таких пакетов, как gcc, g ++, gnu-make и т. Д. И компиляции, скомпилированное ядро ​​может стать мамотом в 2 ГБ пространства. Так что если в этом разделе не так много места из памяти. Вы не предоставляли область подкачки. Поскольку построение ядра требует ресурсов, оно требует как достаточного объема пространства, так и подкачки. Во время установки он создает дополнительную папку, например / mount, / proc, / boot, / dev и т. Д. Таким образом, каждая часть получает соответствующее местоположение, а некоторые из них потерпели неудачу из-за нехватки памяти. Обычно ядро ​​скомпилировано в chroot как среда, но если chroot не настроен должным образом, он может не получить такой ресурс, как proc, mnt, dev, таким образом, панику. Если вам по-прежнему нужна помощь, проверьте эти две группы # 1 для команды ubuntu, # 2 для отладки ядра для ubuntu

Новое обновление:

Поскольку ваше обновление, похоже, подразумевает компиляцию Ядро работало.

Это могло означать только то, что вы скомпилировали все ядро.

Обычно ядро ​​имеет все, что может быть важно для одного, но пустая трата пространства и времени для других.

Итак, либо вы можете использовать новые ядра из ядра ubuntu. В моем случае его v4.14-rc1.Загрузить ядро, которое соответствует вашей арке. У меня x86_64, поэтому я бы выбрал 64 бита. Я бы загрузил эти

linux-headers-4.14.0-041400rc1_4.14.0-041400rc1.201709162031_all.deb linux-headers-4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb linux-image -4.14.0-041400rc1-generic_4.14.0-041400rc1.201709162031_amd64.deb

и затем выдает «sudo dpkg -i * .deb» для компиляции всех.

Теперь кажется что ядро, которое вы скомпилировали, имеет более 1 ГБ, таким образом, оно использует больше ресурсов.

Ядро ubuntu имеет много частей, изъятых из-за его низкого размера i и использует тяжелое сжатие.

Ваше ядро может иметь все в нем и может использоваться IOT, серверами, рабочим столом и может быть совместим с arm 64, amd64 и т. д., так как у него могут быть все имеющиеся модули для их запуска.

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

Отличная работа в качестве компиляции ядра - это головная боль, поскольку она использует интенсивный ресурс, время и терпение

Обновление № 2:

Как вы уже упоминали, ваш файл initrd.img был огромным. Не могли бы вы опубликовать снимок экрана с вашей / boot / или в терминале, используя «ls -l», чтобы указать размер всего.

Ядро - это сердце любого дистрибутива Linux.

Я бы все же предложил вам вырезать ненужные модули из вашего ядра и затем скомпилировать его.

1
ответ дан 24 July 2018 в 18:39
  • 1
    Спасибо за ответ. См. Обновление. Проблема заключается в загрузке только других вещей, таких как установка, компиляция, ... все в порядке. Итак, как я могу уменьшить ОЗУ для загрузки? – Mosab Shaheen 17 September 2017 в 19:44
  • 2
    Спасибо, но я заработал, уменьшив размер initrd.img. см. ответ выше. Кстати, почему initrd.img становится огромным после установки нового ядра? – Mosab Shaheen 17 September 2017 в 21:02

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

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