bash# cd /usr/src/linux bash# make menuconfig |
请务必配置对以下内容的支持
386 处理器
软盘
RAM 磁盘
第二扩展 (ext2) 文件系统
虚拟控制台
音频硬件
CD-ROM 硬件
ISO-9660 和 Joliet 文件系统
bash# make dep bash# make clean bash# make bzImage |
bash# mknod -m640 ~/staging/dev/hdc b 22 0 bash# mknod -m640 ~/staging/dev/hdd b 22 64 |
可选地创建额外的 IDE 设备。
bash# mknod -m 640 ~/staging/dev/ram1 b 1 1 bash# mknod -m 640 ~/staging/dev/ram2 b 1 2 bash# mknod -m 640 ~/staging/dev/ram3 b 1 3 bash# mknod -m 640 ~/staging/dev/ram4 b 1 4 bash# mknod -m 640 ~/staging/dev/ram5 b 1 5 bash# mknod -m 640 ~/staging/dev/ram6 b 1 6 bash# mknod -m 640 ~/staging/dev/ram7 b 1 7 |
bash# cd /usr/src/gzip-1.2.4a bash# export CC="gcc -mcpu=i386" bash# ./configure --host=i386-pc-linux-gnu bash# make bash# strip gzip bash# cp gzip ~/staging/bin bash# ln -s gzip ~/staging/bin/gunzip |
不要忘记验证库要求,检查所有权并检查 gzip 二进制文件的权限。
使用文本编辑器创建以下脚本并将其保存为~/staging/etc/init.d/usr_image
#!/bin/sh # # usr_image - load compressed images from floppy into ramdisk and # mount on /usr. # echo -n "Is there a compressed diskette to load for /usr [y/N]? " read REPLY if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then echo -n "Please insert the /usr floppy into fd0 and press <ENTER>." read REPLY echo "Clearing /dev/ram1." dd if=/dev/zero of=/dev/ram1 bs=1k count=4096 echo "Loading compressed image from /dev/fd0 into /dev/ram1..." (dd if=/dev/fd0 bs=1k | gunzip -cq) >/dev/ram1 2>/dev/null fsck -fp /dev/ram1 if [ $? -gt 1 ]; then echo "Filesystem errors on /dev/ram1! Manual intervention required." else echo "Mounting /usr." mount /dev/ram1 /usr fi fi # # end of usr_image |
配置脚本在 root 挂载后立即运行。
bash# ln -s ../init.d/usr_image ~/staging/etc/rcS.d/S21usr_image |
bash# cd / bash# dd if=/dev/zero of=/dev/ram7 bs=1k count=4096 bash# mke2fs -m0 /dev/ram7 bash# mount /dev/ram7 /mnt bash# cp -dpR ~/staging/* /mnt bash# umount /dev/ram7 bash# dd if=/dev/ram7 of=~/phase8-image bs=1k bash# gzip -9 ~/phase8-image |
将标有“root disk”的软盘插入驱动器 fd0。
bash# dd if=~/phase8-image.gz of=/dev/fd0 bs=1k |
压缩的 /usr 软盘将使用与创建压缩根磁盘相同的过程创建。我们将文件复制到暂存区,将暂存区复制到内存盘,压缩内存盘并将其写入软盘。
bash# mkdir ~/usr-staging bash# cd ~/usr-staging bash# mkdir bin lib bash# mkdir -p share/terminfo/l |
从其主页 http://www.stack.nl/~brama/mp3blaster/ 下载最新版本的 mp3blaster 源代码。
bash# cd ~/usr/src/mp3blaster-3.2.0 bash# ./configure bash# make bash# cp src/mp3blaster ~/usr-staging/bin |
使用 ldd 找出 mp3blaster 需要哪些库。
![]() | 以下是作者开发系统中的一个示例。不同的系统在库需求方面可能会产生略有不同的结果。 |
bash# cd ~/usr-staging/lib bash# ldd ~/usr-staging/bin/mp3blaster bash# cp /usr/lib/ncurses.so.5.0 . bash# cp /usr/lib/stdc++.so.3 . bash# cp /lib/libm.so.6 . bash# cp /usr/lib/libgcc_s.so.1 . bash# cd ~/usr-staging/share/terminfo/l bash# cp /usr/share/terminfo/l/linux . |
bash# cd / bash# dd if=/dev/zero of=/dev/ram7 bs=1k count=4096 bash# mke2fs -m0 /dev/ram7 bash# mount /dev/ram7 /mnt bash# cp -dpR ~/usr-staging/* /mnt bash# umount /dev/ram7 bash# dd if=/dev/ram7 of=~/mp3blaster-image bs=1k bash# gzip -9 ~/mp3blaster-image |
将标有“mp3blaster”的软盘插入驱动器 fd0。
bash# dd if=~/mp3blaster-image.gz of=/dev/fd0 bs=1k |
访问互联网站点 http://www.paul.sladen.org 并下载 Linus Torvalds 发音 “Linux” 的 mp3 文件。直接链接是:http://www.paul.sladen.org/pronunciation/torvalds-says-linux.mp3。在软盘上创建第二扩展 (ext2) 文件系统,并将 mp3 文件复制到软盘。