https://forum.ixbt.com/topic.cgi?id=76:390416 лет назад / 01 июня 2005 06:42
MC GLAZ
старый не обязательно я делал на FC3
вот небольшой рассказ:
создаем образ будущего ram диска:
dd if=/dev/zero of=ramdisk.img bs=1М count=4
форматируем
mkfs.ext2 ramdisk.img
монтируем
mkdir rootfs
mount -text2 -oloop ramdisk.img rootfs
скачиваем http://busybox.net/downloads/busybox-1.00.tar.bz2 (1.2Mb)
распаковываем, и командуем make menuconfig
в секции Build Options выбираем:
[*] Build BusyBox as static binary
в секции Init Utilities выбираем:
[ ] init
в секции System Logging Utilities выбираем:
[ ] syslogd
[ ] loggerd
остальное можно оставить по умолчанию, чем меньше утилит выбереш тем меньше будет размер.
make
make PREFIX=../rootfs install
идем в наш будущий rootfs и создаем каталоги
proc
dev
и устройства:
dev/console (c 5 1)
dev/fd0 (b 2 0)
dev/initrd (b 1 250)
dev/null (c 1 3)
dev/ram0 (b 1 0)
dev/tty (c 5 0)
dev/tty0 (c 4 0)
dev/tty1 (c 4 1)
dev/tty2 (c 4 2)
dev/tty3 (c 4 3)
dev/zero (c 1 5)
если незнаком с командой mknod то можно просто скопировать в mc.
создаем файл rootfs/sbin/init с содержанием:
---
#!/bin/ash
echo Mounting /proc filesystem
mount -t proc /proc /proc
/bin/ash
---
с правами на выполнение chmod +x init
размонтируем и сжимаем
umount rootfs
gzip -9 ramdisk.img
смотрим размер
ls -la ramdisk.img
У меня получилось порядка 420Кб, на дискете 1440 т.е. остается собрать ядро чем меньше тем лучше.
Загружаем ветку 2.4 http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.31.tar... (30Mb)
распаковываем, командуем
make menuconfig
УБИРАЕМ ВСЕ ЧТО ЕСТЬ ПО УМОЛЧАНИЮ ;)
оставляем:
Processor type and features -->
(386) Processor family
General setup --->
[*] Networking support
[*] PCI support
[*] ISA bus support
[*] System V IPC
[*] Kernel support for ELF binaries
Block devices --->
[*] Normal floppy disk support
[*] RAM disk support
(4096) Default RAM disk size
[*] Initial RAM disk (initrd) support
Networking options --->
[*] Packet socket
[*] Unix domain sockets
[*] TCP/IP networking
Character devices --->
[*] Virtual terminal
[*] Support for console on virtual terminal
File systems --->
[*] /proc file system support
[*] second extended fs support
Console drivers -->
[*] VGA text console
командуем:
make dep
make bzImage
Собралось ядро bzImage размером 560Кб, это просто фантастика... места еще куча!!
э... осталось поместить эти два файла bzImage и ramdisk.img.gz на одну дискету.
вставляем дискету в дисковод, командуем
dd if=bzImage of=/dev/fd0 bs=1k
выдало и это важно:
553+1 входных записей
553+1 выходных записей
далее:
dd if=ramdisk.img.gz of=/dev/fd0 bs=1k seek=554
вычисляем число:
echo "2^14 + 554" | bc -l
получаю 16938
осталось скомандовать:
rdev /dev/fd0 /dev/fd0
rdev -r /dev/fd0 16938
все, загрузочная дискета готова.
Имеем новое ядро с утилитами (ash chown dmesg grep ln more ps sh true zcat cp
echo gunzip ls mount pwd sleep umount cat date egrep gzip mkdir mv rm sync uname
chgrp dd false hostname mknod pidof rmdir tar usleep chmod df fgrep kill mktemp ping
sed touch vi halt ifconfig pivot_root poweroff reboot route swapoff swapon clear du
head openvt tail tty wget basename cmp env hexdump readlink tee uniq which bunzip2
cut expr id reset test unzip whoami bzcat deallocvt find install sort time uptime xargs
chvt dirname free killall strings tr wc yes chroot).
В итоге еще свободно порядка 500Кб, сжатого пространства, которое можно добавить на поддержку
утилит busybox или расширить поддержку устройств, сетевых карт в ядре или файловых систем.
Чтобы добавить необходимое устройство для работы, необходимо добавить его в /dev (к примеру hda hda1 hda2 hda3 hda4 разделы HDD)
и поддержку в ядро, и далее все по пунктам.
Надеюсь твой препод forum.ixbt.com не читает
Кому нужен готовый образ могу по почте выслать
[Исправлено: старший брат, 01.06.2005 08:44]