Если вы спрашиваете, можете ли вы просто установить или обновить ядро «поверх» существующей системы, не устанавливая кучу других программ?
Ядро Linux - это двоичный файл, обычно именуемый vmlinuz-x.x.x-x-name
в boot
каталоге (который обычно представляет собой отдельный небольшой раздел в начале жесткого диска), где x - это номер версии. «name» - это просто выбранное имя для ядра, которое может быть установлено во время компиляции, вы можете использовать его для определения типа машины или архитектуры, для которой ядро, или по любой другой причине.
Он загружается во время загрузки с помощью загрузчика, GRUB
который обычно вызывается загрузочным кодом в MBR, который вызывается ПЗУ BIOS. После загрузки он не «держится открытым» и не защищен специально. Таким образом, вы можете заменить этот файл другим рабочим ядром. Но, GRUB
есть классная функция, которая позволяет вам выбрать несколько ядер для загрузки. Поэтому довольно разумно добавить ваше дополнительное ядро в этот список, но сохранить оригинальное известное рабочее ядро на случай, если что-то пойдет не так.
Я полагаю, что почти все дистрибутивы составляют «модульное» ядро, в котором драйверы устройств находятся в отдельных файлах. Поэтому большинству ядер нужна файловая система, содержащая драйверы, доступные для нее во время загрузки, и именно для этого нужны «initrd» (исходный RAM-диск) или «initramfs». GRUB
загрузит ядро в определенном месте в памяти, а initrd - в другом месте и перейдет к ядру, сообщив ему, где находится initrd, начиная Linux.
Драйверы также могут быть «встроены» в ядро и поэтому автоматически загружаются и становятся доступными, когда загрузчик загружает vmlinuz
образ. Ядра, которые предназначены для работы в различных системах (например, в большинстве дистрибутивов), обычно сводят к минимуму то, что встроено в ядро, потому что доступное оборудование будет сканироваться позже в процессе загрузки, и будут загружены только модули, представляющие существующее оборудование.
Есть инструменты для изменения и создания initrds. У Debian есть хорошие инструменты, и я думаю, что и другие дистрибутивы тоже.
Таким образом, если вы загружаете более новое ядро с сайта kernel.org и компилируете его для создания нового двоичного образа ядра, вам необходимо создать или обновить initrd с драйверами, которые работают с этим ядром. Старый initrd не будет работать, потому что драйверы должны совпадать с версией ядра, которое работает.
Файл initrd назван так initrd.img-x.x.x.x-name
же, как и ядро, и может быть заменен после загрузки точно так же, как и ядро, и лучшая практика будет указывать, что вы не удаляете известный рабочий initrd, пока не узнаете, что можете успешно загрузиться в новое ядро + initrd.
Я надеюсь, что это обеспечивает некоторый контекст.
Если вы ищете «чистую» установку Linux, в которой практически не установлено никаких дополнительных программ, моим любимым выбором всегда была установка netinst
образа Debian . Практически у вас есть только самые основные инструменты, необходимые для запуска текстовой консоли из командной строки и nano
в качестве текстового редактора.