如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘
boot/root盤由兩部分組成,即核心和根文件系統。要把這兩部分都放到一個1.44MB的軟盤上去,通常要對內核和根文件系統進行壓縮,壓縮核心的最好方法是進行重新編譯內核,將一些不必要的支持去掉,如對網絡和其它周邊設備的支持,重要的一點是記住內核必須支持RAMDISK及ext2,否則系統不能正常引導。關于內核的編譯本文不再闡述,下面重點介紹如何生成根文件系統的壓縮包。對于根文件系統的壓縮包括兩方面的問題,第一是只保留必要的根文件系統組件,第二是將根文件系統做成一個壓縮包,類似于內核工作的原理。
1 根文件系統概述
一個根文件系統必須包括支持完整Linux系統的全部東西,它至少應包括以下幾項:
·基本文件系統結構;
·至少含有以下目錄:/dev、 /proc、 /bin、 /etc、 /lib、 /usr、 /tmp;
·最基本的應用程序,如sh、 ls、 cp、 mv等;
·最低限度的配置文件,如rc、 inittab、 fstab等;
·設備:/dev/hd*、 /dev/tty*、 /dev/fd0;
·基本程序運行所需的庫函數。
以上所需文件一般情況下會超過1.44M,因此我們通常的做法是先準備好內容后再壓縮到軟盤中,當用軟盤啟動時,再把文件解壓到內存中,形成一個虛擬盤(RAMDISK),通過RAMDISK控制系統啟動。
為了能創建以上的根文件系統,你必須有一個空閑的能夠放下大約4MB文件的RAMDISK。系統缺省情況下已替我們建好了一個大小為4096KB的RAMDISK,其設備名一般為/dev/ram0,我們就使用它來保存我們預先準備好的根文件系統。
2 創建根文件系統
Linux內核識別兩種可以直接拷貝到RAMDISK的文件系統,它們是minix 和ext2,ext2性能更好。mke2fs缺省情況下在1.44M的軟盤上產生360個信息節點,使用壓縮格式的根文件系統需要更多的信息節點,所以使用如下命令創建文件系統可以創建2000個信息節點,而且一般不會用完。
mke2fs -m 0 -i 2000 /dev/ram0
mke2fs將會自動判斷設備容量的大小并相應地配置自身,-m 0參數防止它給root保留空間,這樣會騰出更多的有用空間。接著把虛擬盤掛在節點/mnt上:
mount -t ext2 /dev/ram0 /mnt/floppy
接著是創建目錄。根文件系統最少應該有如下8個目錄:
/dev — 設備;
/proc — proc 文件系統所需目錄;
/etc — 系統配置文件;
/sbin — 重要的系統程序;
/bin — 基本應用程序;
/lib — 共享函數庫;
/mnt — 裝載其他磁盤節點;
/usr — 附加應用程序。
執行如下命令創建這些目錄:
#cd /mnt/floppy #mkdir dev proc etc sbin bin lib mnt usr
接下來的工作就是確定各個目錄下的內容了:
·/dev:/dev中含有系統不可缺少的設備文件。可以把現有系統中/dev的文件拷貝過來,然后刪除不必要的文件。命令cp -dpR /dev /mnt會拷貝/dev整個目錄但不拷貝文件內容,dp開關保證鏈接文件仍然不變,不會拷貝鏈接所指原文件,而且屬性不變。如果你沒有SCSI設備,刪除所有的以sd開頭的文件。如果你不想使用串口設備,刪除所有以cua開頭的文件。不過記住一定要保留console、kmem、mem、null、ram、tty1等文件。
·/etc:這個目錄中含有一些必不可少的系統配置文件。這下面的文件比較多,那么到底哪些文件是必需的,哪些可有可無呢?由于這下面的文件一般是一些文本文件,都不是很大,干脆全部保留算了。
我的啟動盤中含有不到15個配置文件,大致可分為3部分:
·rc.d/* — 系統啟動腳本;
·fstab — 列出要登錄的文件系統;
·inittab — 包含啟動過程參數。
而且這些文件都是最簡單的。rc應該包括:
#!/bin/sh /bin/mount -av /bin/hostname yjy fstab應包括: /dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaults inittab包括: id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2
總結
以上是生活随笔為你收集整理的如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清晰版 构建最高可用oracle数据库系
- 下一篇: linux 杀死t状态进程,Linux下