Jednodyskietkowy linux
sposób tworzenie jednodyskietkowej dystrybucji linuksaUWAGA: Strona jest już mocno nieaktualna. Idź do LiveCD lub Remastering LiveCD
Co jest niezbędne:
- jądro linuxa. Praktycznie dowolne, można użyć 2.2.17.
- busybox. Zawiera zestaw podstawowych poleceń unixa, idealny do zastosowania dla naszych potrzeb.
- syslinux. Umożliwia ładowanie linuxa z systemu plików MS DOS.
- dyskietka :), formatowana w systemie plików MS DOS.
Archiwum zawierające syslinux'a (w naszym przypadku jest to syslinux-1.48.tar.gz) należy rozpakować do dowolnego katalogu, a następnie go skompilować:
# tar zxvf syslinux-1.48.tar.gz
# cd syslinux-1.48
# make
# ./syslinux /dev/fd0
# cd ..
# cp /usr/src/linux/arch/i386/boot/bzImage /mnt/floppy/bzImage
# rdev /mnt/floppy/bzImage /dev/ram0
# rdev -r /mnt/floppy/bzImage 16384
Tworzymy plik konfiguracyjny dla syslinux'a:
# echo "DEFALUT bzImage initrd=initrd.gz" > /mnt/floppy/syslinux.cfg
# mkdir rootfs
# tar zxvf busybox-0.47.tar.gz
# cd busybox-0.47
# make
# make PREFIX=../rootfs install
# cd ..
# cd rootfs
# mkdir /dev /dev/pts /etc /proc /lib
# cp /lib/ld-linux.so.2 lib/ld-linux.so.2
# cp /lib/libc.so.6 lib/libc.so.6
# ldd bin/busybox
# strip lib/libc.so.6 lib/ld-linux.so.2
# mknod dev/ram0 b 1 0
# mknod dev/mem c 1 1
# mknod dev/kmem c 1 2
# mknod dev/null c 1 3
# mknod dev/port c 1 4
# mknod dev/zero c 1 5
# mknod dev/full c 1 7
# mknod dev/tty1 c 4 1
# mknod dev/tty2 c 4 2
# mknod dev/tty3 c 4 3
# mknod dev/tty4 c 4 4
# mknod dev/tty c 5 0
# mknod dev/console c 5 1
# cd ..
fstab
/dev/ram0 / minix defaults 1 1
none /proc proc defaults 0 0
none /dev/pts devpts defaults 0 0
rcS
- !/bin/sh
mount -t proc,devpts
# chmod 755 etc/init.d/rcS
# dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
# mkfs.minix /dev/ram0
# mount -t minix /dev/ram0 /mnt/disk
# cp -aR rootfs/* /mnt/disk
# umount /mnt/disk
# dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > initrd.gz
# cp initrd.gz /mnt/floppy/initrd.gz
# umount /mnt/floppy
(28.09.2k) Podsumowanie
Nasz jednodyskietkowy linux jest bardzo ubogi - brak mu obsługi sieci, brak innych narzędzi - np. do zakładania innych systemów plików (ReiserFS, ext2). Należy dodać pliki passwd i group, dodać odpowiedni plik inittab. Czeka nas rozbudowa o odpowiednie wpisy w katalogu /dev, montowanie swap'a, obsługę dysków IDE i SCSI, CDROMów, a także walka o każdy kilobajt miejsca na dyskietce. Ale początek jest już za nami...
Uwaga