C.1. 預先設定檔範例

這是一個完整的用於自動安裝的預先設定檔的實例。使用的說明在 節 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