製作軟盤Linux(轉)

post0發表於2007-08-09
製作軟盤Linux(轉)[@more@]

如何製作軟盤Linux

版權資訊:該文章版權由嶽光所有.可在非商業目的下任意傳播和複製.對於商業目的下對本文的任何行為需經作者同意.聯絡方式:ygxy@msn.com

製作軟盤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=image|gzip -9>image.gz

複製image.gz到軟盤根目錄下.

至此,軟盤Linux製作成功!重新啟動用軟盤引導看看自己製作的Linux吧

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-938885/,如需轉載,請註明出處,否則將追究法律責任。

相關文章