Я пытаюсь узнать кое-что о initrd. Я следовал этому руководству, чтобы создать свой собственный initrd с нуля, и я установил на нем busybox. Затем я сделал .iso из него с isolinux, чтобы я мог проверить его в virtualbox. Работает отлично!
У меня есть основные команды от busybox, поэтому я хотел смонтировать файловую систему. Но каталог / dev почти пуст (без sda), за исключением некоторых файлов, которые я создал, следуя руководству. Я узнал об Udev и думаю, что это то, что мне нужно. Однако я не уверен, как пойти на это.
Должен ли я просто взять последний исходный код из udev, скомпилировать его и добавить в мой initrd? А потом вызвать / bin / udev или что-то подобное в моем скрипте инициализации? Или есть другой / лучший способ заполнить каталог / dev?
Изменить: некоторая дополнительная информация и обновления о том, что я уже сделал.
- Я тестирую все в виртуальной коробке. Я просто установил Ubuntu Minimal в виртуальный ящик, сделал .iso из моего initrd, а затем загрузился с ISO в VirtualBox.
- Я использовал vmlinuz,
/lib/modules
который присутствовал в файле debian-businesscard.iso, и скопировал его в свой initrd, который я создал, следуя руководству, которое я связал ранее. - Ядро имеет
CONFIG_DEVTMPFS=y
- Некоторые устройства отображаются
/dev
, например, tty0-tty63 и некоторые другие, но не sda / hda. - Запустил
lspci -k
в моей в настоящее время работающей ОС и в виртуальном окне, чтобы проверить, какие модули используются.SATA Controller
говорит, что использует вahci
качестве модуля. - Когда я выполняю
modprobe -v ahci
его, он много жалуется на «неизвестный символ: ata_some_stuff», но после этого он возвращает что-то вродеSCSI Subsystem initialized
,ATA-6: VBOX HARDDISK
иDirect-Access ATA VBOX HARDDISK
. Тем не менее, все еще не найдено устройств с жестким диском/dev
.
Мой текущий /init/
сценарий выглядит следующим образом:
#!/bin/ash
mount -t devtmpfs none /dev
mount -t proc /proc /proc
mount -t sysfs none /sys
modprobe -v ahci
echo "Hello world"
exec /bin/ash --login
Кто-нибудь знает, что я делаю неправильно и что я должен делать вместо этого?