最近定製了乙個ubuntu的安裝介面,感覺比較有意思,寫上來,有興趣的朋友可以實踐一下...
先介紹一下grub和isolinux,以及一些開機引導程式...
1)bios:basic input output system,一般的情況下是歸結於firmware這一類的.這裡是為了連線通順,就簡單的說一下bios.bios是使用者在按下電源的那一刻,負責和硬體溝通並呈現到使用者面前的那些資訊,可以通過顯示器看到的.bios做的工作主要有四點:
a)檢測並初始化:對主機板上的晶元進行檢測,並通知晶元開始工作;
b)記錄系統的設定值:主要會去讀cmos裡面的內容;
c)中斷的處理:主機板上的資源都是由bios分配的,irq也是;
d)載入作業系統:安裝的作業系統是由bios轉給引導扇區的,然後再去啟用作業系統.
3)isolinux:也是一種引導程式,不過特殊就在它是專門用來引導可移動介質的輕量級的引導程式,不會固定只針對一種硬體.實際上isolinux本身就是乙個linux系統,構造也比較簡單:
a)isolinux.bin:是引導檔案,把isolinux當成乙個我們平時使用的linux系統的話,那麼isolinux.bin檔案就類似於grub的作用,在isolinux載入時會先載入isolinux.bin檔案,然後isolinux.bin檔案會根據isolinux.cfg的內容來選擇不同的啟動選項選擇系統,這麼一聽有那麼點印象吧..對,作用就類似於grub.conf檔案了...
b)配置引導檔案isolinux.cfg:是isolinux的配置檔案,有了這個檔案,isolinux.bin就會根據它來使用不同的啟動選項來引導isolinux系統.isolinux.cfg的配置選項有很多,使用者可以根據自己的需求來進行定義和配置.但是有一些必須的選項是必須要有的,等會我們就會主要的來涉及到這個檔案的分析了...
c)isolinux在isolinux.bin完成引導後,會呼叫乙個系統核心來完成乙個簡單的linux系統.安裝,使用或者修復,都是靠這個linux系統來呼叫一些程式來完成的.這個極度迷你的linux中,最重要的資訊就是很多的硬體驅動,如果沒有硬體的驅動,系統無法找到相應的硬體,系統將會無法啟動.
好了..前面的基本知識講得差不多了...現在到正式的操作了,如何定製ubuntu的安裝介面...
2)現在就考慮你想要怎樣定製你的介面了,裡面會看到/po目錄,這裡面實際上國際化的內容,你可以開啟乙個zh_cn.po檔案看看,實際上對中文的國際化,如果你選擇你的系統介面不需要這麼多的語言,可以刪除一部分.po檔案,裡面只留下你需要的.po檔案,我選擇是english為語言,所以我不要國際化,我將*.po全部刪除了;
3)在/po資料夾下面,會有乙個bootloader.pot檔案,裡面是對ubuntu安裝介面的按鈕的定義,相當於是button的label...你可以根據需要進行改動...
4)現在退出/po資料夾,要修改makefile了,vim makefile,找到language這一項"default_lang = "定義,設定為en(就是你留在po裡面的語言種類),儲存退出;
5)keytables.inc檔案裡面實現的是對鍵盤的定義,如果在中國,留下乙個就可以了...cn或者usa的定義就行了...順便把下面乙個陣列中關於keytables的定義也可以去掉...
6)現在已經修改了語言和鍵盤了..是不是很想把ubuntu的安裝介面給換掉呢...那麼你就修改splash.pcx和splash.png,還有back.jpg了...
7)splash的有特別的要求,需要用photoshop來生成,或者google一下...
8)現在需要用到ubuntu的光碟了..找到你的ubuntu.iso,mount -o loop出來...這裡面的內容是不能改寫的,即使你用wq!,呵呵..:)
9)拷貝mount出來的內容到另外乙個資料夾,然後更改許可權,chmod u+w *,現在你就可以將你改寫的儲存起來了...
10)拷貝mount出來的資料夾下面的/isolinux下的內容到gfxboot下去,然後修改isolinux裡面的內容,這時你就看到了聞名已久的isolinux.cfg檔案了,可以開啟看一下...裡面的內容就是
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
gfxboot bootlogo
11)解釋一下..include表示在isolinux.cfg中引入另外乙個配置檔案,可以理解為將另外乙個檔案的內容拷貝到isolinux.cfg,然後執行,就當成是c語言中的#include..哈哈..:)...
12)default是預設選項:指定預設的啟動選項,vesamenu.c32表示啟動乙個圖形安裝介面呢..一般的都會選用這個選項,當然還有字元啟動介面,名字也差不多...叫menu.c32..還有乙個就是使用bootlogo作為啟動介面..那麼就是生成乙個bootlogo檔案了..然後在isolinux.cfg中新增一句gfxboot bootlogo...這樣就可以了...那麼下面一句就不用解釋了吧...:)
14)想改背景的話,就換掉..我不想改,只是簡單的刪除了...所以黑乎乎的...:(
15)現在可以在gfxboot中執行make了,你就會發現多出了/boot資料夾,刪除init檔案和log檔案,然後將其他的留下來...將message檔案,改名為bootlogo,知道了吧...然後拷貝到/isolinux中去...最後用gfxboot下的/isolinux資料夾替換掉你mount出來的那個isolinux資料夾...
16)ok了,可以收工了..執行命令...
mkisofs -o yourisoname.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 /
-boot-info-table /yourdir
17)生成你的iso,放到指定的資料夾下...可以用你的虛擬機器進行測試了..看看你改後的效果怎麼樣呢...
我做的介面就不上傳了...:)
tonynono的專欄
swliao
完全定製個性化linux安裝介面
最近定製了乙個ubuntu的安裝介面,感覺比較有意思,寫上來,有興趣的朋友可以實踐一下.先介紹一下grub和isolinux,以及一些開機引導程式.1 bios basic input output system,一般的情況下是歸結於firmware這一類的.這裡是為了連線通順,就簡單的說一下bio...
GSON屬性個性化定製
有時候我們不需要把實體的所有屬性都匯出,只想把一部分屬性匯出為json.有時候我們的實體類會隨著版本的公升級而修改.有時候我們想對輸出的json預設排好格式.請看下面的例子吧 實體類 public enum clientidenum public int getvalue public string...
QMenu的個性化定製
經常使用選單,選單的定製相當重要,普通的樣式設定不難,一般需求足以實現 qmenu qaction 如果要足夠個性,則需要進行一定的定製。說起定製,其實也是利用qt中現成的元件進行組裝而已,使用qmenu qwidgetaction qaction 再加上qss美化就可實現個性的qmenu。先看效果...