客製中文版ubuntu livecd 9.04(一)



系統需求


  • 一個支援
    squashfs

    ubuntu 系統
    (可使用LiveCD)

  • 至少
    10 – 15
    GB
    的空閒磁碟空間

  • 至少
    512MB RAM
    1GB
    SWAP
    交換分區

  • 轉換
    root
    權限:sudo
    -s

  • 安裝
    squashfs-tools
    用以壓縮文件系統:apt-get
    install squashfs-tools

  • 安裝
    genisoimage
    才有
    mkisofs
    指令:apt-get
    install genisoimage

  • VirtualBox
    用於測試(可選用)apt-get
    install virtualbox-ose

  • 載入 squashfs
    模組:modprobe
    squashfs


原版光碟內容介紹


  • 目錄

casper(核心、系統壓縮檔、套件瀏覽)

isolinux(開機與開機選單)

preseed(開機函式)

.disk(無此目錄資料無法開機)

前面四個是必要的目錄

dists

install

pics

pool(光碟內建的套件庫)

ubuntu(這是連結)


  • 檔案

autorun.inf(自動執行檔)

md5sum.txt(md5檢查碼)

README.diskdefines

wubi.exe(可將ubuntu安裝在windows下,可用新增移除程式移除)


  • 重要的檔案

casper/filesystem.squashfs(ubuntu系統壓縮檔)

casper/filesystem.manifest(光碟內含的套件名稱)

casper/filesystem.manifest-desktop(經過安裝後,系統包含的套件名稱)

casper/vmlinuz(核心)

casper/initrd.gz(開機時的系統程序及架構)

isolinux/isolinux.cfg(8.10以前選單的設定檔)

isolinux/text.cfg(9.04的選單設定檔)

isolinux/langlist(光碟開機時,可選擇的語系檔)

isolinux/zh_TW.tr(中文選單對照檔,可對照en.tr英文選單)

isolinux/splash.pcx(開機的畫面檔,是16色的圖檔)

isolinux/16×16.fnt(字型檔)


第一階段

將原版光碟解開複製至硬碟中(不是安裝)


例如:下載ubuntu-9.04-desktop-i386.iso


  • 移動到光碟資料存放的磁區名稱,例如livesystem

cd
/media/livesystem


  • 掛載光碟
    iso 的內容到
    ISO
    目錄(如果已經燒成光碟
    CD,可省略)

mkdir
./ISO

mount
-o loop ubuntu-9.04-desktop-i386.iso ./ISO



  • iso
    的內容複製到
    ISO_ubuntu9.04
    目錄

cp
-a ./ISO ./ISO_ubuntu9.04

chmod
-R 644 ./
ISO_ubuntu9.04


  • 掛載
    squashfs
    檔案系統

mkdir
./squashfs

mount
-t squashfs -o loop ./ISO_ubuntu9.04/casper/filesystem.squashfs
squashfs



  • squashfs
    內容複製到
    system
    目錄

cp
-a ./squashfs ./system



更改預設開機語系,修改開機選單(例如:取消光碟檢查)



  • isolinux
    目錄中,建立一個
    lang 文字檔

cd
./ISO_ubuntu9.04/isolinux

touch
lang


  • 使用文字編輯器geditvi修改lang檔,內容為zh_TW(以下以終端機資料流重導向
    redirect製作)

echo
zh_TW > lang


  • 使用文字編輯器geditvi修改langlist檔,留下

en

zh_TW


  • 刪除除了en

    zh_TW開頭的
    .tr 語系檔,及
    .hlp

rm
-i *.tr (
注意選擇)

rm
-i *.hlp (
注意選擇)


  • 使用文字編輯器geditvi修改text.cfg(8.10之前,請修改isolinux.cfg)

gedit
text.cfg


  • 刪除光碟檢查的指令,也就是刪除下面的段落

label
check

menu
label ^Check disc for defects

kernel
/casper/vmlinuz

append
boot=casper integrity-check initrd=/casper/initrd.gz quiet splash



選單設定檔的意義


isolinux/text.cfg

default
live

label
live

menu
label ^Try Ubuntu without any change to your computer

kernel
/casper/vmlinuz

append
file=/cdrom/preseed/ubuntu.seed boot=casper
initrd=/casper/initrd.gz quiet splash —

label
live-install

menu
label ^Install Ubuntu

kernel
/casper/vmlinuz

append
file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity
initrd=/casper/initrd.gz quiet splash —

label
memtest

menu
label Test ^memory

kernel
/install/mt86plus

label
hd

menu
label ^Boot from first hard disk

localboot
0x80


default
:開機預設使用模式

label
:下方區塊程式命名為……

menu
label
:顯示在開機畫面的英文選單語句,有
^ 符號表示快捷鍵

(中文選單需要修改zh_TW.tr並對照en.tr語句位置)

kernel
:指定核心位置

append
:附加參數,例如splash是啟用開機動畫



打包ISO


方法一

  • 標準打包ISO作法

cd
/media/livesystem(
移動到光碟資料存放的磁區)

cd
ISO_ubuntu9.04

mkisofs
-r -V "
光碟名稱"
-cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -o ../
光碟名稱.iso
.


方法二

  • 因為指令太長,所以我們可以建立一個shell
    script
    來縮短指令

cd
/media/livesystem(
移動到光碟資料存放的磁區)

touch
mkISOboot.sh

chmod
755 mkISOboot.sh


  • 使用文字編輯器geditvi修改mkISOboot.sh檔,加入以下內容

#!/bin/sh


if
[ $# -lt 1 ] ; then

echo
" \"cd\" to the directory where you want make
ISO"

echo
"run as: $0 Title /path/image.iso"

exit
1

fi


#
下面三行中間不能空行

mkisofs
-r -V "$1" -cache-inodes -J -l -b isolinux/isolinux.bin
\

-c
isolinux/boot.cat -no-emul-boot -boot-load-size 4 \

-boot-info-table
-o $2 .


  • 打包ISO

cd
/media/livesystem(
移動到光碟資料存放的磁區)

cd
ISO_ubuntu9.04

../mkISOboot.sh
光碟名稱
../名稱.iso



利用virtualbox測試

分類: ubuntu Mint LMDE Manjaro。這篇內容的永久連結