Debian
如何使用 Debian 預置文件在 /etc/apt/sources.list 中設置鏡像?
我正在使用preseeding建構 Debian 10 stable(“buster”)的自定義 ISO 映像,並且我的自定義
preseed.cfg
文件可以完美執行,除了一件事:我希望它/etc/apt/sources.list
使用我選擇的儲存庫進行配置,這樣我就不必每次安裝新系統時手動執行。目標是
/etc/apt/sources.list
這樣的(這裡必須使用 https):deb https://deb.debian.org/debian buster main contrib non-free deb-src https://deb.debian.org/debian buster main contrib non-free deb https://deb.debian.org/debian-security/ buster/updates main contrib non-free deb-src https://deb.debian.org/debian-security/ buster/updates main contrib non-free deb https://deb.debian.org/debian buster-updates main contrib non-free deb-src https://deb.debian.org/debian buster-updates main contrib non-free
我的
preseed.cfg
文件如下所示:#### Contents of the preconfiguration file (for buster) ### Localization # Preseeding only locale sets language, country and locale. d-i debian-installer/locale string en_US # Keyboard selection. d-i keyboard-configuration/xkb-keymap select us # d-i keyboard-configuration/toggle select No toggling ### Network configuration d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain d-i netcfg/hostname string vienna1-preseed d-i netcfg/wireless_wep string ### Mirror settings d-i mirror/country string manual d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string ### Account setup d-i passwd/root-login boolean false # To create a normal user account. d-i passwd/user-fullname string theusername d-i passwd/username string theusername d-i passwd/user-password-crypted password $6$qVk198UWGPxpW$tzMYxQyiOrI4ClDJdDGALsyYq1j1IbXWbpem3JevFT9Krqdmt4wKdvtiY8ry3PRh277V6GHzSKP3zSI7jt04Y/ ### Clock and time zone setup d-i clock-setup/utc boolean true d-i time/zone string US/Eastern d-i clock-setup/ntp boolean true ### Partitioning d-i partman-auto/method string regular d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman-auto/choose_recipe select atomic 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 d-i partman-md/confirm boolean true 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 # https://serverfault.com/a/622818 d-i apt-setup/use_mirror boolean false d-i apt-setup/cdrom/set-first boolean false d-i apt-setup/cdrom/set-next boolean false d-i apt-setup/cdrom/set-failed boolean false ### 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 false ### Apt setup # You can choose to install non-free and contrib software. d-i apt-setup/non-free boolean true d-i apt-setup/contrib boolean true ### Package selection tasksel tasksel/first multiselect standard d-i pkgsel/upgrade select full-upgrade popularity-contest popularity-contest/participate boolean false ### Boot loader installation d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i grub-installer/bootdev string default d-i finish-install/reboot_in_progress note d-i debian-installer/exit/poweroff boolean true
中的
d-i preseed/late_command string
命令preseed.cfg
做你想做的事。我sources.list
在iso中添加了一個自定義文件,然後在安裝完成後將其複製過來。在preseed.cfg
.d-i preseed/late_command string \ cp sources.list /target/etc/apt/sources.list; \ in-target apt-get update; \ in-target apt-get install -y git;
最後兩個命令展示了更新包列表和安裝不包含在 cd (git) 中的包。
以下是我使用 new
preseed.cfg
和 new 建構 iso 映像的方法sources.list
:#!/usr/bin/env bash # Install dependencies # sudo apt install isolinux syslinux-utils xorriso cd ~ mkdir iso xorriso -osirrox on -indev debian-10.2.0-amd64-netinst.iso -extract / iso/ chmod +w -R iso/install.amd/ gunzip iso/install.amd/initrd.gz echo preseed.cfg | cpio -H newc -o -A -F iso/install.amd/initrd echo sources.list | cpio -H newc -o -A -F iso/install.amd/initrd gzip iso/install.amd/initrd chmod -w -R iso/install.amd/ cd iso/ chmod +w md5sum.txt md5sum `find -follow -type f` > md5sum.txt cd .. xorriso -as mkisofs -o preseed.iso -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table iso
該腳本假定您正在使用 Debian 10 stable(“buster”)amd64,
preseed.cfg
並且sources.list
文件位於您用於建構 iso 的任何系統的主目錄中。