如何製作磁碟片Linux

來源:互聯網
上載者:User
    如何製作磁碟片Linux

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

    製作磁碟片Linux(即在磁碟片上放一個Linux系統)的目的在於可以深入瞭解Linux的結構,可利用磁碟片起動機器修複系統,搶救資料.注意!!:磁碟片 Linux和Linux啟動盤不同,後者只是將核心放於磁碟片,引導硬碟上的Linux系統,而前者是存在於磁碟片上的Linux系統.

成功的製作有用的磁碟片Linux在於:
1)編譯一個足夠小而且有一定功能的核心.
2)採用busybox並適當的編譯它.
3)建立系統必需的目錄和檔案(如/dev,hda,inittab等)
4)配置引導程式GRUB
5)將以上三點恰當的組織在磁碟片上.
本文將按照以上順序介紹製作磁碟片Linux的方法.
(busybox是一個微小的程式可以讓系統提供ls,ash,rm,cp,init等多種服務,它只有一個很小的busybox檔案,用ls,rm,init聯結他,執行這些聯結就可運行相應的服務)

準備:建立/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吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.