Я намагаюся дізнатися речі про initrd. Я дотримувався цього підручника, щоб створити власний initrd з нуля, і я встановив на ньому зайнятий ящик. Тоді я зробив з нього .iso з isolinux, щоб я міг перевірити його у virtualbox. Це чудово працює!
У мене є основні команди із зайнятого ящика, тому я хотів встановити файлову систему. Але каталог / dev майже порожній (без sda), за винятком деяких файлів, які я створив під час навчання. Я дізнався про удев і думаю, що це те, що мені потрібно. Однак я не впевнений, як це зробити.
Чи потрібно просто схопити останній вихідний код із udev, скласти його та додати до свого initrd? А потім зателефонувати / bin / udev чи щось подібне у моєму сценарії init? Або є інший / кращий спосіб заповнити каталог / 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
Хтось має уявлення про те, що я роблю неправильно і що я повинен робити замість цього?