Хотел собрать минимальную систему Linux, но при запуске он выдает ошибку
Захотел я значит собрать минимальную систему линукс. Собрал, в итоге получил два файла. initrd.img и vmlinuz. Запускаю я всё это дело в qemu следующей командой: qemu-system-x86_64 -kernel vmlinuz -initrd initrd.img -nographic -append 'console=ttyS0'
И после запуска выдает ошибку:
[ 4.844559] Please append a correct "root=" boot option; here are the available partitions:
[ 4.845955] 0b00 1048575 sr0
[ 4.846232] driver: sr
[ 4.847642] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 4.848312] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.336 #1
[ 4.848312] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014
[ 4.848312] Call Trace:
[ 4.848312] dump_stack+0x50/0x63
[ 4.848312] panic+0xde/0x22a
[ 4.848312] mount_block_root+0x174/0x1fe
[ 4.848312] prepare_namespace+0x136/0x16c
[ 4.848312] kernel_init_freeable+0x1b6/0x1c4
[ 4.848312] ? rest_init+0x9a/0x9a
[ 4.848312] kernel_init+0x5/0xf7
[ 4.848312] ret_from_fork+0x35/0x40
[ 4.848312] Kernel Offset: 0x35000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 4.848312] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Знающие люди, скажите мне пожалуйста что с этим делать?
Показываю что положил в файл initrd !Спойлер, я новичок в деле сборки linux поэтому не убивайте меня с первой же ошибки))
Я туда положил следующие папки:
etc
lib
dev
mnt
proc
tmp
root
Создал эти файлы:
/etc/inittab
/etc/fstab
/etc/mtab
/etc/rc.d/rc.S
/etc/profile
/etc/shell
Судя по ответам мне надо какой-то init писать да?
Ответы (1 шт):
Нужно закинуть программу init.
Линукс не нашел её в initrd и полез искать её в root.
Для больших линуксов это systemd.
Для минимальных систем это или скрипт на баше (как в опенврт) или самостоятельный init который исполнит inittab.
Желательно закинуть хоть какой-то шелл чтоб взаимодействовать с системой.
init и sh можно сделать на базе busybox.
посмотрите аналогичный проект https://github.com/t00sh/vm-make