From Tux2live

ZhTw: 一般常見問題

一般性問題 Common 客制化 Customize

您可以從右邊的總覽清單快速地找詢您的問題。

Q : tux2live 製作時如何避免rc.local被修改?

依製作的套件找到相對應的檔案,如:
製作 Debian/Ubuntu 時,修改

	~/tux2live/function/4_debian/S07stop_services

Fedora/Centos/Mandriva ...等,修改

	~/tux2live/function/4_rh/S07stop_services

找到如下:

#!sh
# Clean up /etc/lrc.local
cat > /etc/rc.local <<EOF
#!/bin/sh -e
#
# rc.local
#
# This script is generated in tux2live-mkrootfs

exit 0

EOF

將其整段註解掉 或刪除即可。

Q : 如何直接指定 tux2live 製作出來的 iso 檔名?

參數 -o [iso-name], ex:

sudo ./tux2live -b -o my-livecd.iso

此外,如果想變更預設的前置字元 tux2live-CentOS.iso ,可以在 ~tux2live/conf/tux2live.conf 中修改 _TUX2LIVE_ISO_NAME_PREFIX 參數 , 如下:

_TUX2LIVE_ISO_NAME_PREFIX=my-prefix

參數可修改 iso 檔的預設前字串;之後檔名預設會變成 [my-prefix]-[Debain|Ubuntu|Fedora|...].iso , 其餘 tux2live 參數可請用 --help 來查詢

Q: 如何修改 isolinux 的開機背景圖?

將符合格式的 png 圖檔至換到 ~/tux2live/cdimage.skel/tux2liveisoboot.png 下 :640x480, 顏色數不超過16色, png

Q: 如何修該 isolinux 開機預設選項,例如啟用 usplash, 設定 vga=791 .... 等?

請修改 ~/tux2live/cdimage.skel/isolinux/isolinux.cfg 找到 vga 參數,如下:

...
  append initrd=/isolinux/initrdlive.img boot=casper vga=normal nousplash ....
...

直接修改成想要的參數即可,如 :

...
  append initrd=/isolinux/initrdlive.img boot=casper vga=791 usplash ....
...

Q: 可否自行製作開機 splash 動畫?

可下載 downloader:2 , 解開後參閱 Howto.txt.

其他 splash 製作可參考:

Q: 如何對 root.filesystem 內的檔案再做修改?修改後如何完成後續打包動作?

tux2live 的製作設計上分三的階段:

其實,執行 tux2live -b 時,其實也就是是依序做這三件動作。此3個步驟的分別參數是 --mkinitrd, --mkrootfs, --mkiso.也就是說如果有需要分開做時,使用者些參數即可,如:
* ./tux2live --mkrootfs real filesystem 並製成需要的 squashfs

	所以目前設計的中斷點並無法處理,需要如下步驟:
#!sh
...
 [ "$_BATCH_MODE" = 'y' -a -z "$_MKROOTFS_IMPORT_USER" ] || import_user_home

 mkrootimg
...
 補上:   echo "Wait here !";  read pause_point;  如下:
#!sh
...
 [ "$_BATCH_MODE" = 'y' -a -z "$_MKROOTFS_IMPORT_USER" ] || import_user_home

echo "Wait here !";  read pause_point;

 mkrootimg
...

改完存檔,下 ./tux2live -b --mkrootfs --mkiso 進行打包。等到程式出現 "Wait here !" 後,保留原console ,開其他 console 或工具進行對 root.filesystem 的修改。完成修改後回到剛在 Wait 的 console , 按 [Enter] 後變會繼續後續的打包動作。

這類的客制化之後將已兩種型態來符合需要 :

Q: 如何讓已經植入 USB/HD 的 live 環境關機時不需要顯示 移除裝置後按 [Enter] 而直接關閉電源

請在開機載入設定檔(視您的 boot loader : syslinux , grub, lilo, ....) 中加入 noprompt 參數, 以 grub 為例,編輯 ~/grub/menu.lst

kernel		(hd0,0)/isolinux/vmlinuzlive boot=casper noprompt ...
initrd		(hd0,0)/isolinux/initrdlive.img

Q: 在 Live 環境下 AppArmor 啟動導致有些服務無法正常

在 Live 環境下設定列印系統 (cups) 發生錯誤 或 Lucid下網路不法正常連線 在 Live 環境下執行列表機設定,連接到 localhost 時,出現 httpConnectionEncrypt failed 錯誤。到命令列下重新起動 cups 服務會出現下面訊息:

sudo /etc/init.d/cupsys restart
* Restarting Common Unix Printing System: cupsd
/usr/sbin/cupsd: error while loading shared libraries: /lib/tls/i686/cmov/libc.so.6:  cannot apply additional memory protection after relocation: Permission denied

原因是在 Ubuntu 在 7.10 之後加入了一個與安全性相關的 framework : Apparmor (由 Novell 開發,主要對打的是 RH 的 SELinux) 。主要是針對應用程 式存取時透過對記憶體保護的方式來達到相對類似 SELinux 的效果。由於目前他 在 stack filesystem (如: unionfs ) 有些 bug ,所以會導致有些 service 無 法正常起動。

解決方式有兩種:

1. 在Live 環境 中先停止 apparmor 服務再新啟動 cupsys

sudo /etc/init.d/apparmor stop
sudo /etc/init.d/cupsys restart

2. 重包 initrdlive.img 將附件中的檔案 42disable_apparmor.tgz 複製到 ~/tux2live/initrd-live.skel/scripts/casper-bottom 下,重新產生一個 initrdlive.img

sudo ./tux2live -b --mkinitrd

再把做出來的 initrdlive.img 取代掉原先的 usb 中對應位置的 initrdlive.img 即可。如果要重包 ISO 在加入 --mkiso 參數即可。

註:AppArmor 相關

Q: 在 Live 環境下執行 sun-java* 的 java 會出現 Error: could not find libjava.so 的問題

在 live 環境下執行

sudo ln -s / /filesystem.squashfs
strace java

附上參考資料如下:

Q: 使用 downloader:1 在 Ubuntu 8.10 環境下打包,之後在開機時會掉到 busybox 的問題


Attachments

Retrieved from http://www.tux2live.org/index.php/ZhTw/FaqGen
Page last modified on February 06, 2012, at 02:21 AM