如何制作軟盤Linux
版權信息:該文章版權由岳光所有.可在非商業目的下任意傳播和復制.對於商業目的下對本文的任何行為需經作者同意.聯系方式:[email protected]
制作軟盤Linux(即在軟盤上放一個Linux系統)的目的在於可以深入了解Linux的結構,可利用軟盤起動機器修復系統,搶救數據.注意!!:軟盤Linux和Linux啟動盤不同,後者只是將核心放於軟盤,引導硬盤上的Linux系統,而前者是存在於軟盤上的Linux系統.
成功的制作有用的軟盤Linux在於:
1)編譯一個足夠小而且有一定功能的內核.
2)采用busybox並適當的編譯它.(busybox是一個微小的程序可以讓系統提供ls,ash,rm,cp,init等多種服務,它只有一個很小的busybox文件,用ls,rm,init聯接他,執行這些聯接就可運行相應的服務)
3)創建系統必需的目錄和文件(如/dev,hda,inittab等)
4)配置引導程序GRUB
5)將以上三點恰當的組織在軟盤上.
本文將按照以上順序介紹制作軟盤Linux的方法.
准備:創建/tmp/floppy目錄存放臨時文件.
I.)編譯內核
make mrproper
拷貝../SRC/configs/i386-BOOT(類似文件)到.../SRC/.config
make menUConfig(最好去掉第二項中所有的*以去掉對模塊的支持.必需使核心支持RamDisk其余選項自定)注意:!!完全去掉網絡功能可能造成編譯失敗(2.4.20-8內核即如此),但可部分去掉.)
make dep
make clean
make bzImage
../SRC/arch/i386/boot/bzImage即為內核
編譯成功的內核應不超過1M
II.)編譯busybox
busybox源程序可在RedHat的網站上(FTP://ftp.redhat.com/pub/redhat/linux/9/en/os/i386/SRPMS)找到相應的軟件包.假設安裝後源碼目錄為/../src/busybox
修改/../src/busybox/Config.h文件,在不用的功能前加//
修改/../src/busybox/Makefile文件,將DOSTATIC=true
執行 make (生成的名為busybox的文件大小應在650K左右)
make PREFIX=/tmp/floppy install(此時在/tmp/floppy目錄下即有Linux啟動運行所必須的目錄和文件了)
III.)創建系統必需的目錄和文件
1.在/tmp/floppy目錄下
mkdir proc mnt etc dev
在etc目錄下創建inittab文件和rc.S文件(用vi)
執行chmod 777 inittab
chmod 777 rc.S
inittab內容為:
::sysinit:/etc/rc.S
::askfirst:/bin/sh
rc.S文件內容為:
#!/bin/sh
mount -t proc /proc /proc
2.在dev目錄下創建設備文件
應創建的設備文件有:console,hda,hda1,hda2,hda3...(根據硬盤分區數而定),hdb,hdc,hdd,tty,tty0,tty1,fd0,null,loop0,ram0,tty5
相應的文件在/dev下都可找到但不能復制,須自己創建:
這裡采用mknod命令語法如下:
mknod 文件名 類型 MAJOR MINOR
類型 MAJOR MINOR可用ls -l在/dev下查找.(權限串的前一位即為"類型")
如創建console文件須在/tmp/floppy/dev下執行:mknod console c 5 1
IV.)配置grub並組織軟盤.
1.取一張格式化為ext2的空盤.在其上創建boot boot/grub目錄
拷貝/boot/grub/stage1和stage2到軟盤的boot/grub下
執行:grub
root (fd0)
setup (fd0)
quit
至此grub安裝成功!
在軟盤的boot/grub目錄下創建grub.conf文件
內容為:
default=0
timeout=10
title Linux
root (fd0)
kernel /bzImage
initrd /image.gz
grub配置成功!
拷貝bzImage到軟盤根目錄下.
2.cd /tmp
dd if=/dev/zero of=image bs=1k count=2048
losetup /dev/loop0 image
mke2fs -m 0 /dev/loop0
mount -t ext2 /dev/loop0 /mnt
cp -R floppy/* /mnt
umount /mnt
losetup -d /dev/loop0
sync
dd if=imagegzip -9>image.gz
拷貝image.gz到軟盤根目錄下.
至此,軟盤Linux制作成功!重新啟動用軟盤引導看看自己制作的Linux吧!