Попробовать swapon -s
для списка текущих устройств свопинга и другой релевантной информации.
Можно технически установить просто загрузчик и одно только ядро, но как только ядро загружается, это будет жаловаться на неспособность запустить "init", затем это будет просто находиться там, и Вы ничего не можете сделать с ним.
BTW, это - часть загрузчика, который находится в MBR. Ядро находится где-нибудь на регулярной области диска. Загрузчик настроен для знания, где то есть, таким образом, он может загрузить ядро и выполнить его.
Я не думаю, что Вы понимаете точно, что Вы спрашиваете, но Вы могли бы хотеть смотреть на Linux, С нуля проекта.
aptitude search '?essential'
) на Debian или Ubuntu и понимают то, что каждый делает (существуют немного больше, чем абсолютный минимум).
– Gilles 'SO- stop being evil'
21.07.2011, 18:47
Если Вы спрашиваете, можно ли просто установить или обновить ядро "по" существующей системе, не устанавливая набор других программ?
Ядро Linux является двоичным файлом, обычно называемым vmlinuz-x.x.x-x-name
в boot
каталог (который является обычно отдельным небольшим разделом в начале жесткого диска), где x's номер версии. "имя" является просто выбранным названием ядра, которое может быть установлено во время компиляции, можно использовать его для идентификации, какая машина или архитектура ядро для или любая другая причина.
Это загружается во время начальной загрузки загрузчиком, обычно GRUB
который вызывается загрузочным кодом в MBR, который вызывается ROM BIOS. После того как это загрузилось, это "не содержало открытый" или защитило особенно. Таким образом, можно заменить тот файл другим рабочим ядром. Но, GRUB
имеет замечательную функцию, которая позволяет Вам выбрать несколько ядер для начальной загрузки от. Таким образом, довольно умно добавить Ваше дополнительное ядро к тому списку, но сохранять исходное известное рабочее ядро на всякий случай вещи идут не так, как надо.
Почти все дистрибутивы, которым я верю, делают "модульное" ядро, где драйверы устройств находятся в отдельных файлах. Таким образом, большинству ядер нужна файловая система, содержащая драйверы, доступные ему во время начальной загрузки и для именно это "initrd" (начальный псевдодиск) или "initramfs". GRUB
загрузит ядро в местоположении в памяти и initrd в другом местоположении, и перейдет к ядру, говоря это, где initrd, запуская Linux.
Драйверы могут также быть "встроены в" ядро и поэтому автоматически загружаются и доступны, когда загрузчик загружается vmlinuz
изображение. Ядра, которые предназначены для работы над разнообразными системами (такими как те из большинства дистрибутивов) обычно, минимизируют то, что встроено в ядро, потому что доступные аппаратные средства будут просканированы позже в процессе начальной загрузки, и только модули, представляющие существующие аппаратные средства, будут загружены.
Существуют инструменты, чтобы изменить и создать initrds. Debian имеет хорошие инструменты, и я предполагаю, что другие дистрибутивы делают также.
Так, если Вы загружаете более свежее ядро с kernel.org и компилируете его для создания нового двухуровневого изображения ядра, необходимо сделать или обновить initrd с драйверами, которые работают с тем ядром. Старый initrd не будет работать, потому что драйверы должны совпасть с версией ядра, которое работает.
initrd файл называют initrd.img-x.x.x.x-name
так же к ядру, и может быть заменен после начальной загрузки точно так же, как ядро и лучшая практика указали бы, что Вы не удаляете известную работу initrd, пока Вы не знаете, что можно загрузиться в новый kernel+initrd успешно.
Я надеюсь, что это обеспечивает некоторый контекст.
При поиске "базовой" установки Linux, которая имеет мало ни к каким дополнительным программам, установленным с ним, мой любимый выбор всегда устанавливал Debian netinst
изображение. В значительной степени у Вас есть только самые основные инструменты, должен был выполнить текстовую консоль командной строки и nano
как текстовый редактор.
Я хотел бы к предложению второго Shadur, необходимо сделать руки грязными Linux С нуля путь.
Кроме того, что-то подобное, попробуйте Карман Linux.
Руководство Linux Кармана демонстрирует, как создать маленькую основанную на консоли систему GNU/Linux с помощью только исходный код и несколько дискет. Это предназначается для пользователей Linux, которые хотели бы получить более глубокое понимание о том, как их система работает под оболочкой распределения определенные функции и инструменты.
Возможно установить ядро Linux без использования обычных инструментов пользовательского пространства. Это обычно делается во встраиваемых системах, таких как маршрутизаторы. Обычно ядро загружается из ПЗУ или флэш-памяти и настраивается под конкретное устройство (обычно с необходимыми драйверами, скомпилированными в ядро, а не загружаемыми в виде модулей).
Для того, чтобы стать "init" процессом (не обязательно называемым init
, но запускаемым ядром как процесс 1, и автоматическим родителем любых процессов) - если только ядро не было модифицировано (а не просто настроено), чтобы этого не требовалось.
Конечно, не обязательно иметь оболочку командной строки, чтобы иметь работающее устройство на базе Linux, хотя это может значительно облегчить разработку!
Один исполняемый файл rootfs
Абсолютный минимум система запускает одну программу / init
, как я объяснил в Одно приложение Linux | Суперпользователь
Minimal Linux Live
https://github.com/ivandavidov/minimal
Для более интересной интерактивной системы это (в основном образовательный) небольшой скрипт, который:
ISO затем оставляет вас в минимальной оболочке с busybox.
С QEMU вы можете легко загрузиться в систему.
Я изменил его, чтобы разрешить запуск из исходного каталога ядра: https://github.com/cirosantilli/runlinux
Использование:
git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh
и вы останетесь внутри окна QEMU вместе с вами новая минимальная система. Потрясающие.
Поскольку он небольшой, это хороший вариант, чтобы прочитать источник и понять, что происходит.
Проверено на Ubuntu 16.04.
Buildroot
Большой набор скриптов Makefile, которые управляют:
Минимальный пример:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.
У него даже есть рецепты для сборки X11 с нуля: Как установить X11 в моей собственной системе Linux Buildroot?
Профессиональные вещи.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Встроенный дистрибутив с менеджером пакетов, который предлагает предварительно скомпилированные двоичные файлы с веб-сайта.
См. Также