一、簡介
下文將介紹如何定制一張中文版的Knoppix。主要步驟:
准備足夠的硬盤空間和交換分區
將Knoppix光盤上的那個大大的壓縮文件KNOPPIX拷貝出來,並解壓縮
根據自己的需要,添加/刪除軟件
添加中文顯示和輸入支持
重新壓縮KNOPPIX
制作光盤鏡像iso文件
二、准備工作
1) 准備軟件
從www.knopper.net/knoppix 獲得最新光盤影像文件,本文使用的是KNOPPIX_V3.3-2003-09-24-EN.iso。
2) 准備硬件(建立硬盤分區)
由於要建立壓縮的文件系統(compressed file system),需要空間較大的交換分區(swap space),最少1GB空閒RAM+Swap (比如256M內存和750M的swap) ,推薦建立2G的swap分區。(創建壓縮文件系統時要用到。如果交換分區太小,會報錯);3 GB 空閒的Linux分區(ext2/3, xfs等都可以)。
三、操作步驟:
1) 打開一個shell,使用 su 命令獲得root用戶的權限。下面所有命令都是在這個root shell 裡面運行的;
2) 配置您的Internet連接(稍後要用到) ;
3) 確定用來工作的分區。在本例中,是hdb2。該分區至少要有3G空間;
4) 加載該分區:
mount -o rw /dev/hdb2 /mnt/hdb2 (如果不照做,你可能會在chroot環境工作時遇到麻煩) ;
5) 創建一個用來工作的目錄: mkdir /mnt/hdb2/working (把所有文件放在這裡,用完可以方便地刪除) ;
6) 如果你沒有1 GB 內存, ( cat /proc/meminfo (物理內存+swap)) 那麼您需要一個swapfile:
cd /mnt/hdb2/working ; dd if=/dev/zero of=swapfile bs=1M count=750 ; mkswap swapfile ; swapon swapfile ;
7) 創建 2 個目錄,一個用於存放我們的新CD(NewCD),一個用於存放現有CD的內容(OLD):
mkdir /mnt/hdb2/working/NewCD; mkdir /mnt/hdb2/working/OLD ;
8) mkdir /mnt/hdb2/working/OLD/KNOPPIX ;
9) 您可以不用光盤啟動,而直接mount下載得到的iso文件,然後把光盤上/KNOPPIX/KNOPPIX文件復制出來:
mkdir /mnt/iso
mount -o loop -t iso9660 KNOPPIX_V3.3-2003-09-24-EN.iso /mnt/iso
cp /mnt/iso/KNOPPIX/KNOPPIX /mnt/hdb2/working
再Mount壓縮的KNOPPIX文件:
insmod cloop file=/mnt/hdb2/working/KNOPPIX 如果這一步出錯,請看本文結尾處對cloop的描述。
mkdir /mnt/KNOPPIX
mount -o ro /dev/cloop /mnt/KNOPPIX
復制knoppix源文件到您的工作目錄(這可能得花點時間)
mkdir /mnt/hdb2/working/OLD/KNOPPIX
cp -Rupv /mnt/KNOPPIX/* /mnt/hdb2/working/OLD/KNOPPIX/
卸載 /mnt/KNOPPIX
umount /dev/cloop
卸載iso文件,刪除/mnt/hdb2/working/KNOPPIX
umount /mnt/iso
rm -f /mnt/hdb2/working/KNOPPIX
10) mkdir /mnt/hdb2/working/NewCD/KNOPPIX ;
11) cp /cdrom/index.Html /mnt/hdb2/working/NewCD/ ;
12) 現在,復制 /cdrom/KNOPPIX/ 下面的所有內容到 /mnt/hdb2/working/NewCD/KNOPPIX/ ,除了那個接近700 Mb 的名字叫做KNOPPIX的文件。( cd /cdrom/KNOPPIX; find . -size -10000k -type f -exec cp -p --parents {} /mnt/hdb2/working/NewCD/KNOPPIX/ \; )
13) 現在您可以 "chroot" 到剛才復制的 KNOPPIX 中去: chroot /mnt/hdb2/working/OLD/KNOPPIX ;
14) 現在您已經處於chrooted環境中。 "/" 實際上是 "/mnt/hdb2/working/OLD/KNOPPIX" ;
15) 要使用Internet,您需要加載proc文件系統: mount -t proc /proc proc ,然後編輯 /etc/resolv.conf 添加您的nameserver;
16) 如果您需服務微軟的工作組(通過samba),那麼smb.conf也要修改 (通常,MSHOME是XP家庭版,WORKGROUP是Win9x);
17) 檢查您的chrooted環境的Internet連接: ping Google.com ;
18) 更新您的軟件包列表: apt-get update ;
19) 現在您可以開始修改軟件包,自己決定刪除哪些,安裝哪些;
在安裝或刪除軟件之前,您可以看一下目前已經安裝了哪些軟件:
dpkg-query -l
也可以讓這個列表以軟件包的大小排序:
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' sort -n
要刪除一個軟件包 (以及所有依賴於它的軟件包),可以這樣:
apt-get remove <要刪除的包的名字>
我刪除了這些:
apt-get remove selflinux kde-i18n-{tr,pl,cs,ja,nl,ru,it,da,es,de,fr}
其中,selflinux 是一套德文的Linux文檔,kde-i18n-* 是其他國家的kde本地化文件。這些文件占用大約200M硬盤空間。
檢查“孤兒”軟件包,這樣:
deborphan
要想通過刪除那些孤兒(多殘忍!)騰出更多空間,可以這樣:(警告,系統不會提示 yes/no ,當您在這條命令後面敲完回車,那些軟件就沒了):
deborphan xargs apt-get -y remove
如果您覺得上面這條命令不太保險,想在不改變系統的情況下看看會發生什麼,只要加一個 -s 參數 (您可以在所有的 apt-get命令中使用這個參數,這是個好習慣):
deborphan xargs apt-get -s -y remove
現在,如果您要安裝軟件,用命令:
apt-get install <要安裝的軟件名稱>
當然您最好事先設置離自己最近的apt源(把原來的/etc/apt/sources.list備份一下,完成後再恢復),我用的是:
deb http://www.zentek-international.com/mirrors/debian/debian main non-free contrib
另外,apt-get可以使用代理服務器,修改 /etc/apt/apt.conf,添加一行:
Acquire::http::proxy "http://yourproxy:yourport/"; (注意最後面必須用“;”結束)
我就安裝了兩個軟件包:
apt-get update
apt-get install kde-i18n-zhcn fcitx
什麼,不知道要安裝哪些軟件?用下面的命令。 當列表出現,您可以仔細看看(超過13000行!):
apt-cache search .* sort less
如果刪除和添加軟件的工作完成了,清理現場的好方法是:
COLUMNS=200 dpkg -l grep ^rc awk '{print $2} ' xargs dpkg -P
當然,因為Debian的APT系統將下載的包做了cache,您可能想用下面的命令清除這些文件:
apt-get clean
用戶設置在 /etc/skel
20) 中文化定制(這一節內容較集中,單獨拿出來在後面寫);
21) 卸載 /proc -- 非常重要!
更新文件列表庫:
updatedb
更新菜單:
update-menus
刪除無用文件:
rm /etc/*-
rm /var/mail/*
刪除根目錄下的 .bash_history, .viminfo, .rr_moved等文件和目錄:
rm -Rf /.bash_history /.rr_moved /.viminfo
卸載(unmount)proc(不能忽略):
umount /proc
22) 按 CTRL+D 退出chrooted環境。
注意:
1) 如果您想自動運行一些程序,可以在 /etc/rc5.d/ 目錄下創建腳本(這寫腳本在 X 啟動前被運行)。
注意:
1) 如果您想自動運行一些程序,可以在 /etc/rc5.d/ 目錄下創建腳本(這寫腳本在 X 啟動前被運行)。