Я думаю Хром, ОС, на данный момент, предназначена для очень ограниченного выбора нетбуков/ноутбуков. Вы могли попытаться копировать по модулям ядра с другой системы и видеть то, что происходит, не причинит боль, но я dubt, если это будет работать. Выполняет Хром ОС в VirtualBox (или другой VM) альтернатива?
В то время как ответ жабр корректен, это - старая школа :-). Другой знаменитый объект (больше придирание к мелочам на терминологии, чем что-нибудь) - то, которые ведут Вас связанный с, инструкции относительно того, как создать initramfs, не initrd. Эти два подобны, и служат той же цели, но отличаются в том, как изображение хранится и загружается.
Так или иначе ответ на Ваш вопрос на самом деле действительно действительно прост.
devtmpfs
в ядре (CONFIG_DEVTMPFS=y
)mount -t devtmpfs none /dev
как самая первая вещь в Вашем init
сценарий.Именно. devtmpfs заполнит /dev
точно так же, как udev. Вы не должны даже предварительно заполнять /dev
(в изображении initramfs) с основами как null
, zero
, или console
.
Udev заполняет /dev
автоматически на основе драйверов, которые загружаются в ядро и устройства, которые обнаруживают эти драйверы. Названия устройств и их полномочий основаны на ряде правил, который могут подстроить администраторы. Большинство систем Linux должно использовать udev; исключением являются системы (обычно встраиваемый), где аппаратная конфигурация известна в то время, когда система настраивается и не изменится впоследствии.
Вы обычно звонили бы udev
довольно рано в Вашей последовательности запуска. Одна из нескольких вещей, Вы должны (должен?) делают, прежде чем это - монтирование /proc
и /sys
. После запуска демона звонить udevadm trigger --action=add; udevadm settle
заставить udev обработать все незаконченные события от ядра (trigger
) и ожидайте, пока события не обрабатываются прежде, чем продолжиться (settle
). Можно затем продолжить определять местоположение устройства, содержащего корневую файловую систему.
Кроме того, udevd
двоичный файл, Вам будут нужны другие части udev
на Вашем initrd. Это включает конфигурационные файлы в /etc/udev
, основная конфигурация в /lib/udev
а также двоичные файлы помощника такой как scsi_id
также в /lib/udev
. Вам нужны все программы, которые называют от правил udev, что Вы включаете в initrd.
В конце initrd, прежде, чем передать управление реальному корневому разделу, необходимо будет остановиться udevd
как любая программа от initrd. Это не удаляет устройства из /dev
. Использовать mount --move /dev /root/dev
перемещать смонтированный /dev
к реальному корню.
У хинду есть руководство initramfs и initramfs страница Wiki, которые упоминают udev среди прочего. Initramfs является современным преемником initrd, с помощью архива cpio, а не изображения файловой системы, и с другим интерфейсом процесса (на initrd, /linuxrc
должен выйти, тогда как на initramfs, /init
должен exec
init от реального корня); большинство систем переключилось в эти дни (даже если файл можно было бы все еще назвать initrd).
lsmod
в рабочей системе. Поэтому запустите со всех них, затем сократите разумно, если необходимо оставить свободное место.
– Gilles 'SO- stop being evil'
24.10.2012, 14:28
CONFIG_DEVTMPFS=y
, но я все еще не получаю sda устройств. Я думаю, что это вызвано тем, что я не загрузился, любые модули (lsmod ничего не возвращает). Какие модули я должен загрузить для получения устройств файловой системы? Или есть ли что-то еще, что я забыл? – Carlito 24.10.2012, 13:46/dev
, просто не диски, затем devtmpfs работает, и Вы, вероятно, пропускаете модуль дискового контроллера (как Вы предположили). К сожалению, единственный способ знать, в каком драйвере/модуле Вы нуждаетесь, состоит в том, чтобы или считать информацию для каждого в конфигурации ядра или работатьlspci -k
в рабочей системе Linux (который покажет Вам, что драйвер ядра различные компоненты Вашей системы использует). – Patrick 24.10.2012, 14:44CONFIG_DEVTMPFS_MOUNT=y
не имеет никакого эффекта на initramfs. Из текста справки ядра: "Эта опция не влияет на базирующуюся начальную загрузку initramfs, здесь devtmpfs файловая система всегда должна монтироваться вручную после того, как rootfs смонтирован" – Patrick 01.06.2017, 15:35