自己動手做一個迷你Linux系統

來源:互聯網
上載者:User

本文將帶領大家構建一個迷你型的Linux 系統。它佔用的硬碟空間遠小於 16M 位元組,但是卻包括了 XFree86 的 X Window 視窗系統。

目標

本文要構建的這個迷你型的 Linux 系統只能在一台特定的單機上運行,如果讀者朋友們有興趣的話,在這個系統的基礎上加以改進,是可以構建出通用的、可以在大多數常規 PC 機上隨插即用的系統來的。但是這已經不在本文的話題之內了,讀者朋友們如果有興趣,可以通過我的電子郵件和我討論其中的細節問題。

我們的目標 Linux 系統運行在一台普通的 Intel 386 PC 機上,可以有硬碟,也可以不要硬碟,而用 Flash Disk 來代替。如果是用 Flash 盤的話,需要能夠支援從 Flash 盤啟動,而且 Flash 盤的大小要在 16M 位元組或者以上。我們希望使用者一開機啟動,就直接進入 X Window 圖形介面,運行事先指定好的程式。不需要使用者輸入使用者名稱和密碼進行登入。

我們設定的這個目標有點像一個 X Terminal 終端工作站。稍加改進,還可以做成乾脆無盤的形式,也就是說,連 16M 的 Flash 盤也不要了。不過,這也超出了本文的話題了。讀者朋友們如果有興趣,可以來信和我進行討論。

系統啟動

因為我們要考慮從 Flash 盤進行啟動,所以我們選擇用 LILO 作為我們的 Boot Loader,而不選用 GRUB。這是考慮到 GRUB 有較強的對硬碟和檔案系統的識別能力,而 Flash 盤到底不是標準的硬碟,並且我們選用的檔案系統 GRUB 又不一定認識,搞不好的話 GRUB 反會弄巧成拙。而 LILO 就簡單的多了,它在硬碟開始的 MBR 寫入一個小程式,這個小程式不經過檔案系統,直接從硬碟扇區號,讀出 Kernel Image 裝入記憶體。這樣,保險係數就大大增加。並且也給了我們自由選用檔案系統的餘地。那麼,我們要如何安裝 LILO 呢?

首先,我們要找一塊普通的 800M 左右的 IDE 硬碟,連在目標機器的 IDE 線上。這樣在我們的目標機器上,IDE1 上掛的是 Flash 盤,IDE2 上掛的是一塊工作硬碟。我們用標準的步驟在 IDE2 的標準硬碟上裝上一個 Debian GNU/Linux 系統。當然,如果讀者朋友們手頭沒有 Debian,也可以裝 Red Hat 系統。裝好工作系統之後,要首先做一些裁減工作,把不必要的 Service 和 X Window 等等東西都刪掉。這樣做的目的是增進系統啟動速度,因為我們在後面的工作中,肯定要不停的重新啟動機器,所以啟動速度對我們的工作效率是很關鍵的。

裝好工作系統之後,在 Falsh 盤上做一個 Ext2 檔案系統,這個用 mke2fs 這個命令就可以完成。由於 Flash 盤是接在 IDE1 上的,所以在 Linux 裡面,它的身份是 /dev/hda。本文作者在操作的時候,把整個 Flash 盤劃分了一個整個的分區,所以,調用 mke2fs 的時候,處理的是 /dev/hda1。讀者朋友們應該可以直接在 /dev/hda 上做一個 Ext2 檔案系統,而不用事先分區。

在 Flash 盤上做好了檔案系統之後,就可以把一個編譯好的核心映像檔案 vmlinuz 拷貝到 Flash 盤上了。注意,必須要先把這個 vmlinuz 映像檔案拷貝到 Flash 盤上,然後才能在 Flash 盤上安裝 LILO。不然的話,LILO 到時候可是會 LILILILI 打結巴的,因為它會找不到 Kernel Image 在 Flash 盤上的位置的,那樣的話 Flash 盤也就啟動不起來了。還有,如果讀者朋友們在 Flash 盤上用的是一個壓縮的檔案系統的話,到時候 LILO 也會出問題,它雖然能正確的找到 Kernel Image 在硬碟上的起始位置,但是它卻沒有辦法處理被檔案系統重新壓縮過的這個 Kernel Image,不知道該如何把它展開到記憶體中去。

把 Kernel Image 拷貝過去以後,我們就可以動手編輯一份 lilo.conf 檔案,這份檔案可以就放在工作系統上就行了。但是注意在 lilo.conf 中索引的檔案名稱的路徑可要寫對。這些路徑名都是在工作系統上看上去的路徑名。比如,如果 Flash 盤 Mount 在 /mnt 目錄下面,那麼,在 lilo.conf 中,vmlinuz 的路徑名就是 /mnt/vmlinuz。注意這一點千萬不要搞錯。不然的話,如果一不小心把工作系統的 LILO 給破壞掉了,那就麻煩了。編輯好了 lilo.conf,然後再運行 lilo 命令,注意,要告訴它用這個新的 lilo.conf 檔案,而不要用 /etc/lilo.conf。

安裝好 LILO 之後,我們可以立即重新啟動,測試一下。首先在 BIOS 裡面,設定成從 IDE1 開始啟動,如果我們看到 LILO 的提示符,按斷行符號後還能看到 Kernel 輸出的訊息,這就算是 LILO 的安裝成功了。記得這個操作的方法,以後每次我們更新 Flash 盤上的 Kernel Image,都記得要更新 LILO。也就是說,要重新運行一遍 lilo 命令。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.