這是一個完整的用於自動安裝的預先設定檔的實例。使用的說明在 節 4.4, "自動化安裝"。您可以在使用該檔案前移除某些行前面的註解。
為了能在手冊中正確示範這個例子,我們不得不分割一些設定行。透過使用行連接符號 "\" 和下一行的縮排標記。在實際的設定檔中,這些分割的設定行必須合併成 單獨的一行。 如果您沒有這樣做,預先設定檔會造成不可預估的失敗。
一個"乾淨的"範例檔包含在安裝光碟的 /doc/install/manual
目錄,網際網路上位於 http://www.debian.org/releases/sarge/example-preseed.txt。
#### 修改 syslinux.cfg. # 修改 syslinux.cfg (或類似的檔案) 並在各行尾端加入核心參數。 # # 您至少要加入一項參數以告知安裝程式預先設定檔的位置。 # 如果您從 USB 媒介安裝,使用以下參數,並將預先設定檔放在 USB 隨身碟的最上層 # 目錄。 # preseed/file=/hd-media/preseed # 如果您以網路開機,使用以下參數: # preseed/url=http://host/path/to/preseed # 如果您使用光碟,您可以設定: # preseed/file=/cdrom/preseed # 請確定把預先設定檔複製到您所指定的位置。 # # 您可以指定檢查和 (checksum) 數值來確保安裝程式取得正確的預先設定檔。 # 目前必須使用 md5sum 檢查和,一旦檢查和被指定,就必須和檔案的檢查和相同, # 否則安裝程式將會拒絕使用此檔案。(Sarge 安裝程式不支援檢查和功能) # # preseed/url/checksum=5da499872becccfeda2c4872f9171c3d # preseed/file/checksum=5da499872becccfeda2c4872f9171c3d # # 您也許想要在預先設定檔中設置 debconf/priority=critical 以省略大部分問題 ( # 儘管在接下來的預先設置中您可能會遺漏某些參數)。您也可以將倒數設定為 1,這 # 樣就不用按下 enter 鍵來啟動安裝程式。 # # 語言、國家和鍵盤配置無法在預先設定檔中做預設,因為這些問題會在預先設定檔被 # 載入之前提出。欲略過這些問題,請加入核心參數。 # 如果您使用 sarge 安裝程式,請加入以下三項: # # languagechooser/language-name=English # countrychooser/shortlist=US # console-keymaps-at/keymap=us # # 較新版本的安裝程式只需要兩項: # # debian-installer/locale=en_US # console-keymaps-at/keymap=us # # 請注意,核心最多接受 8 個命令列參數、8 個環境選項 (包括被安裝程式自動帶入 # 的參數)。如果超過這兩個限制,2.4 版的核心會忽略超過的參數,而 2.6 版的核心 # 會產生錯誤 (panic)。比 2.6.9 更新的核心版本可以使用 32 個命令列參數和 32 # 個環境選項。 # # 大部分狀況下,可以移除 'vga=normal' 此一預設選項,藉此加入更多預設參數。 #### 介殼命令 # d-i的預先設置是不安全的,安裝程式將不會檢查這類設定檔中的參數是否會造成暫 # 存滿溢或是設定不足。因此,請確定您從可信任的地方存取預先設定檔!接下來將詳 # 述在安裝程式中執行介殼命令的方法,這非常的實用。 # 這個命令應該在讀取預先設定檔之後立刻被執行 #d-i preseed/early_command string \ # wget http://url/to/my.udeb -O /tmp/my.udeb; udpkg -i /tmp/my.udeb # 這個命令在安裝程式結束的前一步執行,但 /target 目錄必須存在且可以使用。 #d-i preseed/late_command string \ # for deb in /hd-media/*.deb; do cp $deb /target/tmp; \ # chroot /target dpkg -i /tmp/$(basename $deb); done # 這個指令在 base-config 執行的時候被執行。 #base-config base-config/early_command string echo hi mom # 這個指令在 base-config 結束之後、login: 提示號之前被執行。如果您想安裝某些 # 軟體套件,或是調整系統設定,這將是一個好方法。 #base-config base-config/late_command string \ # apt-get install zsh; chsh -s /bin/zsh #### 網路設定 # 如果您從網路開機,這部分內容當然不適用。但如果您是以 USB 隨碟或是光碟開機 # ,您仍可以設定核心的網路設定參數以從網路讀取預先設定檔 # 如果有可用連線,netcfg 將會選擇其中一條。如果有一條以上的連線,將不會顯示 # 連線清單。 d-i netcfg/choose_interface select auto # 如果您想要手動設定網路,請參考以下方法: #d-i netcfg/disable_dhcp boolean true #d-i netcfg/get_nameservers string 192.168.1.1 #d-i netcfg/get_ipaddress string 192.168.1.42 #d-i netcfg/get_netmask string 255.255.255.0 #d-i netcfg/get_gateway string 192.168.1.1 #d-i netcfg/confirm_static boolean true # 請注意,任何從 DHCP 取得的主機名稱和網域名稱將會蓋過以下設定,但是設定以下 # 參數仍可以在從 DHCP 取得資料的請況下避免顯示對話框. d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain # 取消煩人的 WEP 密鑰對話框。 d-i netcfg/wireless_wep string # 某些 ISP 供應商用奇怪的 DHCP 主機名稱來當作密碼一類的用途。 #d-i netcfg/dhcp_hostname string radish #### 設定鏡像站 d-i mirror/country string enter information manually d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/suite string testing d-i mirror/http/proxy string ### 分割磁區 # 如果系統還有剩餘空間,您可以要求只分割該剩餘空間。 #d-i partman-auto/init_automatically_partition \ # select Use the largest continuous free space # 或者,您可以選擇要被分割的磁碟,設備的名稱可以用 devfs 格式或是傳統的 # 非devfs 格式指定。例如,第一個磁碟的 devfs 名稱為: d-i partman-auto/disk string /dev/discs/disc0/disc # 您可以選擇任何預設的分割方式: d-i partman-auto/choose_recipe select \ All files in one partition (recommended for new users) #d-i partman-auto/choose_recipe select Desktop machine #d-i partman-auto/choose_recipe select Multi-user workstation # 或是提供您自己的分割方式... # 設定分割方法的格式請參考 devel/partman-auto-recipe.txt。 # 如果您有任何其他的分割方式設定檔,您也可以直接指定: #d-i partman-auto/expert_recipe_file string /hd-media/recipe # 如果沒有,您可以加入一行設定,下面範例會建立一個 /boot 小分割區,大小適中 # 的置換分割區,並把剩下的空間分配給根分割區: #d-i partman-auto/expert_recipe string boot-root :: \ # 20 50 100 ext3 $primary{ } $bootable{ } method{ format } format{ } \ # use_filesystem{ } filesystem{ ext3 } mountpoint{ /boot } . \ # 500 10000 1000000000 ext3 method{ format } format{ } \ # use_filesystem{ } filesystem{ ext3 } mountpoint{ / } . \ # 64 512 300% linux-swap method{ swap } format{ } . # 下面用適合閱讀的格式表示同樣的設定,以利您參考: # boot-root :: # 40 50 100 ext3 # $primary{ } $bootable{ } # method{ format } format{ } # use_filesystem{ } filesystem{ ext3 } # mountpoint{ /boot } # . # 500 10000 1000000000 ext3 # method{ format } format{ } # use_filesystem{ } filesystem{ ext3 } # mountpoint{ / } # . # 64 512 300% linux-swap # method{ swap } format{ } # . # 以下設定使 partman 不確認就開始分割。 d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select \ Finish partitioning and write changes to disk d-i partman/confirm boolean true #### 安裝 boot-loader # Grub 是預設的 boot-loader (在 x86 下),如果您想安裝 lilo,移除下面設定的 # 註解: #d-i grub-installer/skip boolean true # 請安心使用以下設定,這將使 grub 在沒有其他作業系統的情況下自動安裝 # 到 MBR。 d-i grub-installer/only_debian boolean true # 這會讓 grub-installer 在有其他作業系統的狀況下仍安裝 grub 到 MBR。這可能會 # 您無法啟動其他作業系統。 d-i grub-installer/with_other_os boolean true # 或者,若您想要把 grub 安裝到 MBR 以外的地方,把下面數行加上註解: #d-i grub-installer/bootdev string (hd0,0) #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false ##### 結束安裝程序的第一階段 # 取消安裝即將結束的訊息。 d-i prebaseconfig/reboot_in_progress note ##### 預先設定 base-config # 取消介紹訊息。 base-config base-config/intro note # 取消最後的訊息 base-config base-config/login note # 如果您安裝了顯示管理程式,但又不想在 base-config 結束後立刻啟動之: #base-config base-config/start-display-manager boolean false # 安裝程式的某些版本能夠回報您安裝了什麼,預設為不回報,但是送出回報能夠幫 # 助專案得知哪些軟體很熱門,並將之放入光碟中。 #popularity-contest popularity-contest/participate boolean false ###### 設定時區 # 決定硬體時間是否被設定成 GMT 時間。 base-config tzconfig/gmt boolean true # 簡單的時區預設。您可以選擇任何可用的設定值給 $TZ。請參考 # /usr/share/zoneinf/ 中的選項 base-config tzconfig/preseed_zone string US/Eastern # 時區的預先設置曾經很複雜,舊的設定方式將完整描述於下文,如果您正在使用 sarge, # 您需要下面的方法。 # 如果您告訴安裝程式您位於美國,那麼您可以用此變數設定時區。 # (選項有:Eastern, Central, Mountain, Pacific, Alaska, Hawaii, Aleutian, # Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other) base-config tzconfig/choose_country_zone/US select Eastern # 如果您位於加拿大 # (選項有:Newfoundland, Atlantic, Eastern, Central, # East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other) base-config tzconfig/choose_country_zone/CA select Eastern # 如果您位於巴西 (Choices are: East, West, Acre, # DeNoronha, other) base-config tzconfig/choose_country_zone/BR select East # 很多國家只有一個時區,如果您告訴安裝程式您位於那些國家之一,您可以透過以 # 下問題來選擇標準時區。 base-config tzconfig/choose_country_zone_single boolean true # 這個問題是為了確認上述中具有多個時區國家之外的國家。您可以選擇其中一個時 # 區或是 "other"。 #base-config tzconfig/choose_country_zone_multiple select ###### 設定帳號 # 欲設定 root 的密碼,您必須在這個檔案中以明文表示。這不是個好做法,請小心 # 使用! #passwd passwd/root-password password r00tme #passwd passwd/root-password-again password r00tme # 如果您想跳過建立一般使用者帳號的步驟: #passwd passwd/make-user boolean false # 或者,您可以預先設定使用者全名和登入帳號。 #passwd passwd/user-fullname string Debian User #passwd passwd/username string debian # 以及密碼,但請小心使用這個設定! #passwd passwd/user-password password insecure #passwd passwd/user-password-again password insecure ###### 設定 Apt # 這個問題決定在第二階段中軟體套件的來源,可選的有 cdrom、http、ftp、 # filesystem 和 edit source list manually。 # by hand base-config apt-setup/uri_type select http # 如果您選擇 ftp 或 http,您將會被詢問國家和鏡像站。 base-config apt-setup/country select enter information manually base-config apt-setup/hostname string http.us.debian.org base-config apt-setup/directory string /debian # Stop after choosing one mirror. base-config apt-setup/another boolean false # 您可以選擇是否安裝 non-free 和 contrib 軟體。 #base-config apt-setup/non-free boolean true #base-config apt-setup/contrib boolean true # 啟用安全更新。 base-config apt-setup/security-updates boolean true ###### 選擇軟體套件 # 您可以選擇安裝任何組合的可用軟體集。本文中可用的軟體集有: # Desktop environment, Web server, Print server, DNS server, File server # Mail server, SQL database 和 manual package selection。最後一個選項將會 # 執行 aptitude。您也可以不安裝軟體集,並以其他方式強迫安裝其他軟體套件。 tasksel tasksel/first multiselect Desktop environment #tasksel tasksel/first multiselect Web server, Mail server, DNS server ###### 郵件設定 # 在一般安裝中,exit 只會問兩個問題,下面告訴您如何跳過這兩個問題。您也可以 # 設置更複雜的預先設定。 exim4-config exim4/dc_eximconfig_configtype \ select no configuration at this time exim4-config exim4/no_config boolean true # 建議您對任何您建立的使用者帳號作以下的設定,如果這個選項留白,那麼 # postmaster 的郵件將會存到 /var/mail/mail. exim4-config exim4/dc_postmaster string ###### 設定 X # 您也可以預先設定 Debian 的 X。但是您可能需要知道顯示硬體的細節,因為 # Debian 的 X 設定程式不會自動設定所有的參數。 # X 可以正確偵測某些顯示卡的驅動程式,但如果您使用預先設定,您將會蓋過自動 # 偵測的結果。不過,VESA 能在大多數狀況下使用。 #xserver-xfree86 xserver-xfree86/config/device/driver select vesa # 這裡必須警告您,如果 X 無法偵測到滑鼠,它將會不斷嘗試。所以,如果您預先設定 # 了滑鼠,那麼就有可能陷入偵測不到滑鼠的無限迴圈。 #xserver-xfree86 xserver-xfree86/autodetect_mouse boolean true # 建議您使用自動偵測顯示器 xserver-xfree86 xserver-xfree86/autodetect_monitor boolean true # 如果使用液晶顯示器,請註解下面設定。 #xserver-xfree86 xserver-xfree86/config/monitor/lcd boolean true # X 有三種階級來設定顯示器,下面是 "medium" 階級的設定,理當永久可用。而 # "simple" 階級可能不會永久可用,至於 "advanced" 則會詢問非常多問題。 xserver-xfree86 xserver-xfree86/config/monitor/selection-method \ select medium xserver-xfree86 xserver-xfree86/config/monitor/mode-list \ select 1024x768 @ 60 Hz ###### 其他 # 根據您所安裝的軟體,或是安裝過程中出現的錯誤,其他問題可能會被提及。您也可 # 預先設定它們。您可以藉由執行安裝程式,並且執行下面指令以取得其他問題的 # 清單: # debconf-get-selections --installer > file # debconf-get-selections > > file # 如果您喜歡,您可以帶入其他預先設定檔到此檔案中。那些檔案中的設定將會覆蓋本 # 檔案之前有設定的部份。您可以帶入一個以上的預先設定檔,請以空白格開。這些 # 檔案也可以帶入它們自己的預先設定指令。請注意,如果檔案路徑是以相對路徑 # 表示,那麼將從帶入它們的父檔案所處位置開始。 #d-i preseed/include string x.cfg # 安裝程式在使用預先設定檔之前得確認該檔案的檢查和。目前只支援 md5sum,按照 # 引入的檔案順序列出這些檔案的檢查和。(Sarge 安裝程式不支援檢查和。) #d-i pressed/include/checksum string 5da499872becccfeda2c4872f9171c3d # 或者您可以更靈活的設定,下面的介殼命令會決定預先設定設定檔的名稱。例如, # 在 USB 隨身碟 (在這個範例中,為一內建讀卡機) 下的設定檔之中切換: #d-i preseed/include_command string \ # if $(grep -q "GUID: 0aec3050aec305000001a003" /proc/scsi/usb-storage-*/*); \ # then echo kraken.cfg; else echo otherusb.cfg; fi # 在安裝之前您可以檢查您的預先設置檔語法是否正確,請使用: # debconf-set-selections -c preseed.cfg