Создать initramfs "временная файловая система, используемая ядром Linux при начальной загрузке"
Загрузчик syslinux
Подготовка:
Создадим директории для будущей файловой системы
Все команды выполняются по root
mkdir ~/work
mkdir ~/work/initramfs
cd ~/work/initramfs
mkdir bin dev etc etc/init.d lib proc mnt tmp usr root sbin sys usr/bin usr/sbin var
chmod 755 . bin dev etc etc/init.d lib proc mnt tmp usr root sbin usr/bin usr/sbin sys var
Компиляция ядра:
mkdir ~/work/kernel
cd ~/work/kernel
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.7.tar.bz2
tar jxf linux-3.2.7.tar.bz2
cd linux-3.2.7/
make defconfig && make –j4
make [ -j <число потоков> ] Для ускорения длительных задач используют распараллеливание вычислений внутри make-программы. Рекомендуется задавать число потоков, равное числу физических ядер CPU плюс один.
Ви можете конфигурировать ядро как вам надо одной из следующих команд:
make config (диалоговая конфигурация)
make menuconfig (псевдографическая конфигурация через ncurses)
make xconfig (графическая конфигурация)
после настройки выполните
make –j4 bzImage
Компиляция BusyBox:
BusyBox — набор UNIX-утилит командной строки,замещающий большинство UNIX приложений, хранящихся в папках /bin, /sbin, /usr/bin, /usr/sbin, вместо этого, создается единый файл (это позволяет сэкономить дисковое пространство) /bin/busyboxи на него создаются ссылки sh,ls,cpи т.д. в указанных выше папках.
Используется в качестве основного интерфейса во встраиваемых операционных системах. Преимуществами этого приложения являются малый размер и низкие требования к аппаратуре.
mkdir ~/work/busybox
cd ~/work/busybox
wget http://www.busybox.net/downloads/busybox-1.22.0.tar.bz2
tar jxf busybox-1.22.0.tar.bz2
cd busybox-1.22.0
make defconfig && make –j4
Ви можете конфигурировать BusyBox как вам надо одной из следующих команд:
make config (диалоговая конфигурация)
make menuconfig (псевдографическая конфигурация через ncurses)
# This is a comment.
/lib/modules/2.5.53/kernel/a.ko: /lib/modules/2.5.53/kernel/c.ko /lib/modules/2.5.53/kernel/b.ko
/lib/modules/2.5.53/kernel/b.ko:
/lib/modules/2.5.53/kernel/c.ko: /lib/modules/2.5.53/kernel/b.ko
Все нужные модули можно копировать в директорию ~/work/initramfs/lib/modules/, модули должны быть собраны именно под то ядро которое будете использовать.
Теперь можно создать InitRamFs:
cd ~/work/initramfs
find . | cpio -H newc -o > ~/work/initramfs.cpio
cd ~/work
cat initramfs.cpio | gzip > initramfs.gz
Для отладки и проверки работоспособности можно использовать Qemu (программа для эмуляции аппаратного обеспечения различных платформ)