[心得] UBUNTU 9.10 livecd 客製化心得筆記。

看板Linux作者 (**燃燒的小肝臟**)時間14年前 (2010/02/14 14:01), 編輯推噓7(701)
留言8則, 8人參與, 最新討論串1/1
是的,我成功完成了客製化,我還把筆記寫好。 由於這是我的筆記,寫得不好請海涵。(字有點多,對不起) 經過我的測試,在squashfs檔案系統下的livecd都可以用這套流程個人化。 透過這個流程,我已經成功將 backtrack 4 中文化,順便加入翻譯軟體。 請大家多多指教。謝謝。 沒有比較好讀的網誌版 http://www.wretch.cc/blog/dioca/11849415 remaster筆記 先前作業 安裝重製必須套件 sudo aptitude install squashfs-tools genisoimage virtualbox squashfs-tools 用來解開 squashfs 檔案系統的套件 genisoimage 用來建立 光碟ISO檔的套件 virtualbox 用來測試 光碟是否可以開機的套件 可以用 qemu代替,但效果不好。 下載原始光碟壓縮檔 檔案像是:UBUNTUXXXXXXX.iso 將下列5個腳本與光碟映像檔放在同一個子目錄中。 分別執行(用ROOT身份) 如果是第一次,請從0ubuntu_custom.sh開始會比較簡單。(附錄最後) 由此開始,全部手動。 建立系統來源 mkdir /media/tmp mount -o loop /映像檔/ /media/tmp 建立重建區 mkdir rebuild ; cd rebuild ; 將重建腳本放在這裡。 cp ~/bin/*.sh . 建立重建檔案 建立 目標區 檔案系統 rsync --exclude=casper/filesystem.squashfs -a /media/tmp/ extract-cd 建立修改來源區檔案系統。 unsquashfs -dest edit /media/tmp/casper/filesystem.squashfs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~初期建立完成 執行進入系統腳本 1go_in.sh #/~~~~~~~~~~~~1go_in.sh_start~~~~~~~~~~~~~~/ #!/bin/sh #這是在原系統進入子系統用。 #複製網路相關聯結的設定檔。 cp /etc/resolv.conf edit/etc/ cp /etc/hosts edit/etc/ echo "[*] 網路相關複製完成" #加入套件庫的檔案,如果要修正套件庫的話要改。 cp -f /etc/apt/sources.list edit/etc/apt cp -a /etc/apt/sources.list.d edit/etc/apt/ cp /etc/fstab edit/etc/ cp /etc/mtab edit/etc/ echo "[*] 套件庫來源複製完成" #自行安裝進入套件。 cp 2early_seting.sh edit/usr/local/bin/ cp 3getout_chroot_seting.sh edit/usr/local/bin/ chmod +x edit/usr/local/bin/2early_seting.sh chmod +x edit/usr/local/bin/3getout_chroot_seting.sh echo "[*] 快速掛載腳本複製完成" #掛載本機設備檔。 mount --bind /dev edit/dev #進入子系統 echo "##############################################################" echo "[*] 進入編輯子系統狀態. " echo "##############################################################" echo "[*] 進入完成後,請輸入當你完成套件升級後請先輸入2early_seting.sh" echo "##############################################################" echo "[*] 當完成套件設定後,請執行 3getout_chroot_seting.sh,最後再輸入 \"exit\" " echo "[*] 本腳本 不會 自動執行映像檔製作,請自行輸入4remake.sh。" chroot edit #以下為離開子系統後。 #卸載主系統設備聯結 umount edit/dev #刪除快速進入套件。 rm -rf edit/etc/resolv.conf rm -rf edit/etc/hosts rm -rf edit/etc/fstab rm -rf edit/etc/mtab rm -rf edit/usr/local/bin/2early_seting.sh rm -rf edit/usr/local/bin/3getout_chroot_seting.sh echo "執行 sh 4remake.sh" #/~~~~~~~~~~~~1go_in.sh_end~~~~~~~~~~~~~~/ 進入修正 子系統後執行 2early_seting.sh #/~~~~~~~~~~~~2early_seting.sh_start~~~~~~~~~~~~~~/ #!/bin/sh #這是為了進入後導入的腳本 #掛載主要檔案群與設定家目錄 mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts export HOME=/root #啟動套件庫控制軟體。 dbus-uuidgen > /var/lib/dbus/machine-id dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl ; /etc/init.d/dbus start locale-gen en_US.UTF-8 zh_TW.UTF-8 #/~~~~~~~~~~~~2early_seting.sh_end~~~~~~~~~~~~~~/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~個人化修正開始。 修正時區設定 選定etc/utc dpkg-reconfigure tzdata 套件庫重整 apt-get update 加入額外的套件庫金鑰 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com [套件庫ID] 刪除不要的套件。 找出大的套件來刪。 dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less apt-get remove --purge 加入中文套件 apt-get install language-pack-gnome-zh-hant language-support-zh-hant language-pack-zh-hant 加入大五支援 echo zh_TW.BIG5 BIG5 >> /var/lib/locales/supported.d/zh-hant locale-gen 安裝flash 或是其他套件 dpkg -i install_flash_player_10_linux.deb goolge-chrome madedit 修正flash 的中文錯誤 vi /etc/fonts/conf.avail/69-language-selector-zh-tw.conf 安裝星際譯王 apt-get install stardict 安裝字典檔,解壓縮後放在 usr/share/stardict/dic/ tar -xjvf stardict*.bz2 -C usr/share/stardict/dic/ 移除IBUS 安裝gcin 修正中文輸入選項 修改預設輸入法 cd /etc/alternatives ln -snf /etc/X11/xinit/xinput.d/gcin xinput-zh_TW 修改多媒體播放器: apt-get remove --purge totem-gstreamer ; apt-get install totem-xine 壓縮檔案支援 apt-get install unrar p7zip-full iso檔案編輯 apt-get install isomaster apt-get install filezilla nmap sniffit wireshark 刪掉預設桌面的說明 rm /etc/skel/* 刪掉多餘的介紹檔 rm /usr/share/example-content 刪除桌面的檔案 在/etc/profile 後面加上這段: if [ -d ~/Desktop ] ; then rm -rf ~/Desktop/* fi 刪掉不必要的桌面檔, rm /usr/share/background/* 將需要的桌面放到這裡 修正預設的面板與桌面設定 /usr/share/gconf/defaults 修正桌面背景設定:修正第1行的桌面圖片檔位置 vi /usr/share/gconf/defaults/16_ubuntu-wallpapers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~個人化修正結束。 套件準備好後,準備離開: 離開腳本: #/~~~~~~~~~~~~3getout_chroot_seting.sh_start~~~~~~~~~~~~~~/ #!/bin/sh #這是為了離開重製系統的快速腳本。 #刪除不必要檔案。 rm -rf /tmp/* rm -rf ~/.bash_history rm /var/lib/dbus/machine-id rm /sbin/initctl #關閉套件庫封鎖 dpkg-divert --rename --remove /sbin/initctl #卸載必要檔案群。 umount /proc umount /sys umount /dev/pts #/~~~~~~~~~~~~3getout_chroot_seting.sh_end~~~~~~~~~~~~~~/ 輸入exit 以離開修正系統 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~後期壓縮準 備 修正SYSLINUX開機設定 vi dest/isolinux/text.cfg 將從硬碟開機選項拿掉 加入開機預設語言設定: echo "zh_TW" > dest/isolinux/lang 開始重製 sh 4remake.sh #/~~~~~~~~~~4remake.sh_start~~~~~~~~~~~/ #!/bin/sh #umount source/dev echo "old data is clean" chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest echo "new filesystem page list is done" cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop rm extract-cd/casper/filesystem.squashfs echo "old main file is deleted" mksquashfs edit extract-cd/casper/filesystem.squashfs cd extract-cd rm -rf md5sum.txt find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt #mkisofs -r -V "UBUNTU_9.10" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../UBUNTU_9.10_custom.iso . mkisofs -D -r -V "UBUNTU_9.10" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../UBUNTU_9.10_custom.iso . cd .. #/~~~~~~~~~~4remake.sh_~~~~~~~~~~~~~~/ 最後再用virtualbox測試。 附錄 #!/bin/bash isoname=$1 clear echo "##############################################################" echo "[*] UBUNTU rebuild customisation script" echo "[*] Setting up the build environment..." #services="inetutils-inetd tinyproxy iodined knockd openvpn atftpd ntop nstxd nstxcd apache2 sendmail atd dhcp3-server winbind miredo miredo-server pcscd wicd wacom cups bluetooth binfmt-support mysql" mkdir -p mnt mount -o loop $isoname mnt/ mkdir -p extract-cd rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd mkdir -p squashfs mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs mkdir -p edit echo "[*] Copying over files, please wait ... " cp -a squashfs/* edit/ cp /etc/resolv.conf edit/etc/ cp /etc/hosts edit/etc/ cp /etc/fstab edit/etc/ cp /etc/mtab edit/etc/ cp -f /etc/apt/sources.list edit/etc/apt cp -a /etc/apt/sources.list.d edit/etc/apt/ cp 2early_seting.sh edit/usr/local/bin/ cp 3getout_chroot_seting.sh edit/usr/local/bin/ chmod +x edit/usr/local/bin/2early_seting.sh chmod +x edit/usr/local/bin/3getout_chroot_seting.sh mount --bind /dev/ edit/dev #mount -t proc /proc edit/proc #mount -t sysfs /sys edit/sys #mount -t devpts /dev/pts edit/dev/pts echo "##############################################################" echo "[*] 進入編輯子系統狀態. " echo "##############################################################" echo "[*] 現在你可以修改你的LIVE CD. 這裡我建議 最多的修改指令 為下:" echo "[*] apt-get update && apt-get upgrade & apt-get clean" echo "##############################################################" echo "[*] 如果你想要更多的修改或是升級,比如像是核心升級。那請就此打住," echo "[*] 換成使用 1go_in.sh, 2early_seting.sh 3getout_chroot_seting.sh" echo "[*] 最後使用4remake.sh 進行映像檔製作。" echo "[*] 在現在的設定下,請不要使用aptitude進行全部升級。" echo "##############################################################" echo "[*] 進入完成後,請輸入當你完成套件升級後請先輸入2early_seting.sh" echo "##############################################################" echo "[*] 當完成套件設定後,請執行 3getout_chroot_seting.sh,最後再輸入 \"exit\" " echo "[*] 本腳本會自動執行映像檔製作。" chroot edit echo "[*] 離開編輯環境,, 刪除及卸載暫時檔案" rm -rf edit/etc/mtab rm -rf edit/etc/fstab rm -rf edit/etc/resolv.conf rm -rf edit/etc/hosts rm -rf edit/tmp/* rm -rf edit/var/crash/* rm -rf edit/usr/local/bin/2early_seting.sh rm -rf edit/usr/local/bin/3getout_chroot_seting.sh #umount edit/dev/pts #umount edit/sys umount edit/dev #umount edit/proc umount squashfs umount mnt rmdir squashfs rmdir mnt mkdir -p old_iso mv $1 old_iso/ chmod +w extract-cd/casper/filesystem.manifest echo "[*] 建立 manifest" chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest #for service in $services;do #chroot edit update-rc.d -f $service remove #done #REMOVE='ubiquity casper live-initramfs user-setup discover xresprobe os-prober libdebian-installer4' #for i in $REMOVE #do #sed -i "/${i}/d" extract-cd/casper/filesystem.manifest-desktop #done cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop rm -rf extract-cd/casper/filesystem.squashfs echo "[*] 建立 squashfs image..." mksquashfs edit extract-cd/casper/filesystem.squashfs rm extract-cd/md5sum.txt #(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt) cd extract-cd find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt echo "[*] 製作 iso ..." mkisofs -D -r -V "UBUNTU_9.10_" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../UBUNTU_9.10_custom.iso . cd .. echo "[*] 現在,你的 UBUNTU 9.10 已經完成在 $(pwd)/UBUNTU_9_10_custom.iso" echo "##############################################################" 核心升級(修正) 在子系統裏面進行完全更新,輸入aptitude upgrace 在子系統外將核心從 /boot/當中移出。(不是你自己的核心,是子系統的,照著本說明做 ,會在 edit/boot/) cp edit/boot/vmlinuz-2.6.31-16-generic extract-cd/casper/vmlinuz cp edit/boot/initrd.img-2.6.31-16-generic extract-cd/casper/initrd.gz 修正核心initrd.gz 成 initrd.lz(不是改檔名就好) cd extract-cd/casper sudo mv initrd.lz inird.lz.orig gzip -dc initrd.gz | sudo lzma -7 > initrd.lz cd ~/live 最後再把多餘的檔案刪除。 sudo rm -f inird.lz.orig initrd.gz 外加的套件庫。 deb http://ppa.launchpad.net/network-manager/trunk/ubuntu karmic main deb http://dl.google.com/linux/deb/ stable main deb-src http://ppa.launchpad.net/tualatrix/ubuntu hardy main deb http://ppa.launchpad.net/gezakovacs/ppa/ubuntu karmic main deb-src http://ppa.launchpad.net/gezakovacs/ppa/ubuntu karmic main -- ▽ 你好~~再見!! | / (˙ω˙) 聽說這是人才! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.194.171

02/14 14:30, , 1F
推一下 不過字好小啊(汗)
02/14 14:30, 1F

02/14 14:57, , 2F
推!!
02/14 14:57, 2F
※ 編輯: dioca13 來自: 111.255.194.171 (02/14 17:34)

02/14 19:50, , 3F
推~~
02/14 19:50, 3F

02/15 10:30, , 4F
推 感謝您的分享 OTZ
02/15 10:30, 4F

02/15 22:37, , 5F
02/15 22:37, 5F

02/17 00:38, , 6F
雖然看不懂 不過直覺是很不得了的東西 推
02/17 00:38, 6F

02/18 22:08, , 7F
雖然看不懂 不過直覺是很不得了的東西 推+1
02/18 22:08, 7F

02/22 01:05, , 8F
不錯
02/22 01:05, 8F
文章代碼(AID): #1BTv6So_ (Linux)