# ref: https://help.ubuntu.com/14.04/installation-guide/amd64/apbs04.html ## B.4.1. Localization # Preseeding only locale sets language, country and locale. d-i debian-installer/locale string en_US # The values can also be preseeded individually for greater flexibility. #d-i debian-installer/language string en #d-i debian-installer/country string NL #d-i debian-installer/locale string en_GB.UTF-8 # Optionally specify additional locales to be generated. #d-i localechooser/supported-locales en_US.UTF-8, nl_NL.UTF-8 # Keyboard selection. # Disable automatic (interactive) keymap detection. d-i console-setup/ask_detect boolean false #d-i keyboard-configuration/modelcode string pc105 d-i keyboard-configuration/layoutcode string us # To select a variant of the selected layout (if you leave this out, the # basic form of the layout will be used): #d-i keyboard-configuration/variantcode string dvorak ## B.4.2. Network configuration # Disable network configuration entirely. This is useful for cdrom # installations on non-networked devices where the network questions, # warning and long timeouts are a nuisance. #d-i netcfg/enable boolean false # netcfg will choose an interface that has link if possible. This makes it # skip displaying a list if there is more than one interface. #d-i netcfg/choose_interface select auto # To pick a particular interface instead: #d-i netcfg/choose_interface select eth1 # If you have a slow dhcp server and the installer times out waiting for # it, this might be useful. #d-i netcfg/dhcp_timeout string 60 # If you prefer to configure the network manually, uncomment this line and # the static network configuration below. #d-i netcfg/disable_autoconfig boolean true # If you want the preconfiguration file to work on systems both with and # without a dhcp server, uncomment these lines and the static network # configuration below. #d-i netcfg/dhcp_failed note #d-i netcfg/dhcp_options select Configure network manually # Static network configuration. #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 # Any hostname and domain names assigned from dhcp take precedence over # values set here. However, setting the values still prevents the questions # from being shown, even if values come from dhcp. #d-i netcfg/get_hostname string unassigned-hostname #d-i netcfg/get_domain string unassigned-domain # Disable that annoying WEP key dialog. #d-i netcfg/wireless_wep string # The wacky dhcp hostname that some ISPs use as a password of sorts. #d-i netcfg/dhcp_hostname string radish # If non-free firmware is needed for the network or other hardware, you can # configure the installer to always try to load it, without prompting. Or # change to false to disable asking. #d-i hw-detect/load_firmware boolean true # ---- case 1: 手动配置网络 # netcfg/choose_interface=eth0 \ # netcfg/disable_autoconfig=true \ # netcfg/get_nameservers= \ # netcfg/get_ipaddress= \ # netcfg/get_gateway= \ # netcfg/confirm_static=true \ # netcfg/get_hostname=han2015 \ # netcfg/get_domain= \ ## B.4.3. Network console # Use the following settings if you wish to make use of the network-console # component for remote installation over SSH. This only makes sense if you # intend to perform the remainder of the installation manually. #d-i anna/choose_modules string network-console #d-i network-console/password password abc123 #d-i network-console/password-again password abc123 # Use this instead if you prefer to use key-based authentication #d-i network-console/authorized_keys_url http://host/authorized_keys # ---- case1: 貌似在这里指定密码不生效, 请同时在命令行指定 network-console 和密码. # ---- update: ubuntu 20.04 测试此处的上述配置可以生效. #anna/choose_modules=network-console \ #network-console/password=abc123 \ #network-console/password-again=abc123 \ #network-console/authorized_keys_url= \ ## B.4.4. Mirror settings # If you select ftp, the mirror/country string does not need to be set. d-i mirror/protocol string http d-i mirror/country string manual #d-i mirror/http/hostname string mirrors.ustc.edu.cn #d-i mirror/http/hostname string mirrors.aliyun.com d-i mirror/http/hostname string mirrors.huaweicloud.com #d-i mirror/http/directory string /ubuntu/ # ubuntu ports, CPUs of aarch64 and so on. d-i mirror/http/directory string /ubuntu-ports/ #d-i apt-setup/security_host string mirrors.ustc.edu.cn #d-i apt-setup/security_host string mirrors.aliyun.com d-i apt-setup/security_host string mirrors.huaweicloud.com # ubuntu 20.04 实测,配置 "mirror/http/directory" 后无须再配置 "apt-setup/security_path" . #d-i apt-setup/security_path string /ubuntu/ # ALTERNATIVE: ubuntu ports, CPUs of aarch64 and so on. #d-i apt-setup/security_path string /ubuntu-ports/ # Alternatively: by default, the installer uses CC.archive.ubuntu.com where # CC is the ISO-3166-2 code for the selected country. You can preseed this # so that it does so without asking. #d-i mirror/country string CN #d-i mirror/http/mirror select cn.archive.ubuntu.com #d-i apt-setup/security_host string cn.archive.ubuntu.com d-i mirror/http/proxy string #d-i apt-setup/security_path string /ubuntu # Suite to install. #d-i mirror/suite string trusty # Suite to use for loading installer components (optional). #d-i mirror/udeb/suite string trusty # Components to use for loading installer components (optional). #d-i mirror/udeb/components multiselect main, restricted ## B.4.5. Clock and time zone setup # Controls whether or not the hardware clock is set to UTC. #d-i clock-setup/utc boolean false d-i clock-setup/utc boolean false # You may set this to any valid setting for $TZ; see the contents of # /usr/share/zoneinfo/ for valid values. #d-i time/zone string Asia/Shanghai d-i time/zone string Asia/Shanghai # Controls whether to use NTP to set the clock during the install #d-i clock-setup/ntp boolean false d-i clock-setup/ntp boolean false # NTP server to use. The default is almost always fine here. #d-i clock-setup/ntp-server string ntp.example.com ## B.4.6. Partitioning # If the system has free space you can choose to only partition that space. # This is only honoured if partman-auto/method (below) is not set. # Alternatives: custom, some_device, some_device_crypto, some_device_lvm. #d-i partman-auto/init_automatically_partition select biggest_free # Alternatively, you may specify a disk to partition. If the system has only # one disk the installer will default to using that, but otherwise the device # name must be given in traditional, non-devfs format (so e.g. /dev/hda or # /dev/sda, and not e.g. /dev/discs/disc0/disc). # For example, to use the first SCSI/SATA hard disk: #d-i partman-auto/disk string /dev/sda # In addition, you'll need to specify the method to use. # The presently available methods are: # - regular: use the usual partition types for your architecture # - lvm: use LVM to partition the disk # - crypto: use LVM within an encrypted partition #d-i partman-auto/method string lvm d-i partman-lvm/confirm_nooverwrite boolean true # If one of the disks that are going to be automatically partitioned # contains an old LVM configuration, the user will normally receive a # warning. This can be preseeded away... d-i partman-lvm/device_remove_lvm boolean true # The same applies to pre-existing software RAID array: d-i partman-md/device_remove_md boolean true # Name of the volume group for the new system: d-i partman-auto-lvm/new_vg_name string vg # And the same goes for the confirmation to write the lvm partitions. d-i partman-lvm/confirm boolean true # 没有 swap 分区, 是否返回修改分区? d-i partman-basicfilesystems/no_swap boolean false # For LVM partitioning, you can select how much of the volume group to use # for logical volumes. #d-i partman-auto-lvm/guided_size string max #d-i partman-auto-lvm/guided_size string 10GB #d-i partman-auto-lvm/guided_size string 50% # You can choose one of the three predefined partitioning recipes: # - atomic: all files in one partition # - home: separate /home partition # - multi: separate /home, /usr, /var, and /tmp partitions #d-i partman-auto/choose_recipe select home # Or provide a recipe of your own... # If you have a way to get a recipe file into the d-i environment, you can # just point at it. #d-i partman-auto/expert_recipe_file string /hd-media/recipe # If not, you can put an entire recipe into the preconfiguration file in one # (logical) line. This example creates a small /boot partition, suitable # swap, and uses the rest of the space for the root partition: #d-i partman-auto/expert_recipe string \ # 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{ } \ # . # For detailed information see the files partman-auto-recipe.txt and partman-auto-raid-recipe.txt # included in the debian-installer package. # ---- 自定义分区布局1: root, home, 100% swap, # keep "/boot" for auto install. # change or comment swap as need. d-i partman-auto/expert_recipe string \ custom-home :: \ 100 100 100 ext3 \ $defaultignore{ } $primary{ } $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 } \ mountpoint{ /boot } \ . \ 1024 10240 -1 $default_filesystem \ $defaultignore{ } $primary{ } \ method{ lvm } \ . \ 1536 1536 1536 $default_filesystem \ $lvmok{ } lv_name{ root } \ method{ format } format{ } \ use_filesystem{ } $default_filesystem{ }\ mountpoint{ / } \ . \ 512 1024 1024 $default_filesystem \ $lvmok{ } lv_name{ home } \ method{ format } format{ } \ use_filesystem{ } $default_filesystem{ }\ mountpoint{ /home } \ . \ # 100% 200% 100% linux-swap \ # $lvmok{ } lv_name { swap } \ # method{ swap } format{ } \ # . \ # If you just want to change the default filesystem from ext3 to something # else, you can do that without providing a full recipe. #d-i partman/default_filesystem string ext4 # The full recipe format is documented in the file partman-auto-recipe.txt # included in the 'debian-installer' package or available from D-I source # repository. This also documents how to specify settings such as file # system labels, volume group names and which physical devices to include # in a volume group. # This makes partman automatically partition without confirmation, provided # that you told it what to do using one of the methods above. d-i partman-partitioning/confirm_write_new_label boolean true # 分区编辑界面, 注释掉这一行, 使得如果用户不配置自动分区, 还可以操作手动分区 #d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true # The default is to mount by UUID, but you can also choose "traditional" to # use traditional device names, or "label" to try filesystem labels before # falling back to UUIDs. #d-i partman/mount_style select uuid # --- case1: 整个磁盘使用 LVM 分区 #d-i partman-auto/disk string /dev/sda #d-i partman-auto/method string lvm # lvm 预分配空间: max 10GB 50% #d-i partman-auto-lvm/guided_size string 10GB #d-i partman/choose_partition select finish # --- case2: 缩小分区使用空闲空间 #partman-auto partman-auto/init_automatically_partition select resize_use_free # --- 设置 partman-partitioning/confirm_resize 好像导致安装程序卡死, 有 bug ? 请勿使用. #partman-partitioning partman-partitioning/confirm_resize boolean true #partman-partitioning partman-partitioning/new_size string 50% ## B.4.7. Base system installation # Configure APT to not install recommended packages by default. Use of this # option can result in an incomplete system and should only be used by very # experienced users. #d-i base-installer/install-recommends boolean true # The kernel image (meta) package to be installed; "none" can be used if no # kernel is to be installed. # linux-generic linux-image-4.2.0-19-generic linux-image-3.13.0-24-generic #d-i base-installer/kernel/image string linux-image-3.13.0-24-generic #d-i base-installer/kernel/image string linux-image-4.2.0-27-generic #d-i base-installer/kernel/image string linux-signed-image-4.4.0-13-generic ## B.4.8. Account setup # Skip creation of a root account (normal user account will be able to # use sudo). The default is false; preseed this to true if you want to set # a root password. #d-i passwd/root-login boolean false # Alternatively, to skip creation of a normal user account. #d-i passwd/make-user boolean false # Root password, either in clear text #d-i passwd/root-password password r00tme #d-i passwd/root-password-again password r00tme # or encrypted using an MD5 hash. #d-i passwd/root-password-crypted password [MD5 hash] # To create a normal user account. #d-i passwd/user-fullname string Ubuntu User #d-i passwd/username string ubuntu # Normal user's password, either in clear text #d-i passwd/user-password password insecure #d-i passwd/user-password-again password insecure # or encrypted using an MD5 hash. #d-i passwd/user-password-crypted password [MD5 hash] # Create the first user with the specified UID instead of the default. #d-i passwd/user-uid string 1010 # The installer will warn about weak passwords. If you are sure you know # what you're doing and want to override it, uncomment this. #d-i user-setup/allow-password-weak boolean true # The user account will be added to some standard initial groups. To # override that, use this. #d-i passwd/user-default-groups string audio cdrom video # Set to true if you want to encrypt the first user's home directory. d-i user-setup/encrypt-home boolean false # The following command can be used to generate an MD5 hash for a password: # $ printf "r00tme" | mkpasswd -s -m md5 # ---- case 1: 默认用户设置密码 "a" # passwd/user-fullname=hanyong # passwd/username=hanyong # passwd/user-password-crypted=$1$12345678$3Uz6TyHSiGZR0yDMOX3jO0 d-i passwd/user-fullname string hanyong d-i passwd/username string hanyong d-i passwd/user-password-crypted password $1$12345678$3Uz6TyHSiGZR0yDMOX3jO0 ## B.4.9. Apt setup # You can choose to install restricted and universe software, or to install # software from the backports repository. #d-i apt-setup/restricted boolean true #d-i apt-setup/universe boolean true #d-i apt-setup/multiverse boolean true #d-i apt-setup/backports boolean true # Uncomment this if you don't want to use a network mirror. #d-i apt-setup/use_mirror boolean false # Select which update services to use; define the mirrors to be used. # Values shown below are the normal defaults. #d-i apt-setup/services-select multiselect security d-i apt-setup/services-select multiselect #d-i apt-setup/security_host string security.ubuntu.com # setup security_host with mirror #d-i apt-setup/security_host string cn.archive.ubuntu.com #d-i apt-setup/security_path string /ubuntu # Additional repositories, local[0-9] available #d-i apt-setup/local0/repository string \ # http://local.server/ubuntu trusty main #d-i apt-setup/local0/comment string local server # Enable deb-src lines #d-i apt-setup/local0/source boolean true # URL to the public key of the local repository; you must provide a key or # apt will complain about the unauthenticated repository and so the # sources.list line will be left commented out #d-i apt-setup/local0/key string http://local.server/key # By default the installer requires that repositories be authenticated # using a known gpg key. This setting can be used to disable that # authentication. Warning: Insecure, not recommended. #d-i debian-installer/allow_unauthenticated boolean true ## B.4.10. Package selection # basic standard # ubuntu-desktop kubuntu-desktop edubuntu-desktop xubuntu-desktop ubuntukylin-desktop # dns-server lamp-server # --- 貌似在 vmlinuz 参数设置无效, 只能在 preseed 文件设置 #tasksel tasksel/first multiselect ubuntu-desktop #tasksel tasksel/first multiselect standard #tasksel tasksel/first multiselect ubuntu-minimal #tasksel tasksel/first multiselect standard, ubuntu-mate-desktop # Individual additional packages to install #d-i pkgsel/include string openssh-server build-essential #d-i pkgsel/include string debconf-utils #d-i pkgsel/include string openssh-server python-is-python3 vim curl debconf-utils tmux git d-i pkgsel/include string openssh-server python-is-python3 vim curl debconf-utils tmux git aptitude network-manager avahi-daemon # Whether to upgrade packages after debootstrap. # Allowed values: none, safe-upgrade, full-upgrade d-i pkgsel/upgrade select none # Language pack selection #d-i pkgsel/language-packs multiselect de, en, zh d-i pkgsel/language-packs multiselect en #d-i pkgsel/language-packs multiselect en, zh # Policy for applying updates. May be "none" (no automatic updates), # "unattended-upgrades" (install security updates automatically), or # "landscape" (manage system with Landscape). d-i pkgsel/update-policy select none # Some versions of the installer can report back on what software you have # installed, and what software you use. The default is not to report back, # but sending reports helps the project determine what software is most # popular and include it on CDs. #popularity-contest popularity-contest/participate boolean false # By default, the system's locate database will be updated after the # installer has finished installing most packages. This may take a while, so # if you don't want it, you can set this to "false" to turn it off. #d-i pkgsel/updatedb boolean true ## B.4.11. Boot loader installation # Grub is the default boot loader (for x86). If you want lilo installed # instead, uncomment this: #d-i grub-installer/skip boolean true # To also skip installing lilo, and install no bootloader, uncomment this # too: #d-i lilo-installer/skip boolean true # 选择 grub 安装磁盘 (BIOS/i386-pc) #grub-installer grub-installer/choose_bootdev select /dev/sda # With a few exceptions for unusual partitioning setups, GRUB 2 is now the # default. If you need GRUB Legacy for some particular reason, then # uncomment this: #d-i grub-installer/grub2_instead_of_grub_legacy boolean false # This is fairly safe to set, it makes grub install automatically to the MBR # if no other operating system is detected on the machine. d-i grub-installer/only_debian boolean true # This one makes grub-installer install to the MBR if it also finds some other # OS, which is less safe as it might not be able to boot that other OS. d-i grub-installer/with_other_os boolean true # Alternatively, if you want to install to a location other than the mbr, # uncomment and edit these lines: #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false #d-i grub-installer/bootdev string (hd0,0) # To install grub to multiple disks: #d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0) # Optional password for grub, either in clear text #d-i grub-installer/password password r00tme #d-i grub-installer/password-again password r00tme # or encrypted using an MD5 hash, see grub-md5-crypt(8). #d-i grub-installer/password-crypted password [MD5 hash] # Use the following option to add additional boot parameters for the # installed system (if supported by the bootloader installer). # Note: options passed to the installer will be added automatically. #d-i debian-installer/add-kernel-opts string nousb ## B.4.12. Finishing up the installation # During installations from serial console, the regular virtual consoles # (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next # line to prevent this. #d-i finish-install/keep-consoles boolean true # Avoid that last message about the install being complete. d-i finish-install/reboot_in_progress note # This will prevent the installer from ejecting the CD during the reboot, # which is useful in some situations. #d-i cdrom-detect/eject boolean false # This is how to make the installer shutdown when finished, but not # reboot into the installed system. #d-i debian-installer/exit/halt boolean true # This will power off the machine instead of just halting it. #d-i debian-installer/exit/poweroff boolean true ## B.4.14. Preseeding other packages # Depending on what software you choose to install, or if things go wrong # during the installation process, it's possible that other questions may # be asked. You can preseed those too, of course. To get a list of every # possible question that could be asked during an install, do an # installation, and then run these commands: # debconf-get-selections --installer > file # debconf-get-selections >> file