[心得] UBUNTU 9.10 livecd 客製化心得筆記。
是的,我成功完成了客製化,我還把筆記寫好。
由於這是我的筆記,寫得不好請海涵。(字有點多,對不起)
經過我的測試,在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
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
02/18 22:08, 7F
推
02/22 01:05, , 8F
02/22 01:05, 8F