Страницы

Поиск по вопросам

понедельник, 14 января 2019 г.

Загрузка ядра linux

Здраствуйте, решил себе ради интереса создать linux дистрибутив.
Собрал ядро, создал загрузочный ramdisk, сделал все что мне нужно в ramdisk
В итоге у меня вышла такая структура каталогов:
Папка boot в ней две папки, первая initrd, вторая kernel, в первой лежит main.gz во второй kernel.lk
Как теперь из этого всего сделать img образ чтоб запустить в эмуляторе? Гугл сказал что мне нужен загрузчик
Много чего в гугле читал но нормального мануала по установке загрузчика для новичка не нашел.
Мог бы кто расказать подробнее, ибо я новичок: первый раз собрал ядро.


Ответ

Смотря какой эмулятор используете, например Qemu поддерживает прямую загрузку ядра и рамдиска. Используй параметры
-kernel bzImage use 'bzImage' as kernel image -append cmdline use 'cmdline' as kernel command line -initrd file use 'file' as initial ram disk
или Воспользуйся virt-manager или virt-install - хорошие менеджеры для qemu.
На других виртуалках можно воспользоваться GRUB или Syslinux. Для этого создайте образ диска dd if=/dev/zero of=newos.img bs=10M count=10. Потом создадим там раздел и файловую систему
$ fdisk ./newos.img
Welcome to fdisk (util-linux 2.26.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.
На диске не удалось найти таблицу разделов. Created a new DOS disklabel with disk identifier 0xa17f7b6a.
Команда (m для справки): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Номер раздела (1-4, default 1): 1 Первый сектор (2048-20479, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-20479, default 20479):
Created a new partition 1 of type 'Linux' and of size 9 MiB.
Команда (m для справки): w The partition table has been altered. Syncing disks. $ sudo partx -a ./newos.img $ sudo mkfs.ext4 /dev/loop0p1
Смонтируй луп и скопируй туда папочку /boot/ и установим туда grub: grub-install --boot-directory=КАТАЛОГ /dev/loop0
И можно отключить образ $ partx -d ./newos.img
В некоторых деталях алгоритм установки скорее всего прийдется подкоректировать. И всеже рекомендую использовать qemu для игр с рамдиском ;)

Комментариев нет:

Отправить комментарий