Pertama Anda harus membuat berkas prakonfigurasi dan menempatkannya di lokasi dari mana Anda ingin menggunakannya. Membuat berkas prakonfigurasi dibahas nanti dalam lampiran ini. Menempatkannya di lokasi yang benar cukup mudah untuk preseed jaringan atau jika Anda ingin membaca berkas dari flash disk USB. Jika Anda ingin memasukkan berkas dalam image ISO instalasi, Anda harus me-remaster image. Cara mendapatkan berkas prakonfigurasi yang termasuk dalam initrd berada di luar cakupan dokumen ini; silakan baca dokumentasi pengembang untuk debian-installer
.
Contoh berkas prakonfigurasi yang dapat Anda gunakan sebagai dasar untuk berkas prakonfigurasi Anda sendiri tersedia dari https://www.debian.org/releases/bookworm/example-preseed.txt. Berkas ini didasarkan pada fragmen konfigurasi yang disertakan dalam lampiran ini.
Jika Anda menggunakan preseed initrd, Anda hanya perlu memastikan berkas bernama preseed.cfg
disertakan dalam direktori root initrd. Pemasang akan secara otomatis memeriksa apakah berkas ini ada dan memuatnya.
Untuk metode preseed lainnya, Anda perlu memberi tahu pemasang berkas apa yang akan digunakan saat Anda mem-boot-nya. Ini biasanya dilakukan dengan meneruskan kernel parameter boot, baik secara manual pada saat boot atau dengan mengedit berkas konfigurasi bootloader (misalnya syslinux.cfg
) dan menambahkan parameter ke akhir baris append untuk kernel.
Jika Anda menentukan berkas prakonfigurasi dalam konfigurasi bootloader, Anda dapat mengubah konfigurasi sehingga Anda tidak perlu menekan enter untuk mem-boot pemasang. Untuk syslinux ini berarti mengatur batas waktu ke 1
di syslinux.cfg
.
Untuk memastikan pemasang mendapatkan berkas prakonfigurasi yang tepat, Anda dapat secara opsional menentukan checksum bagi berkas tersebut. Saat ini harus berupa md5sum, dan jika ditentukan harus cocok dengan berkas prakonfigurasi atau pemasang akan menolak untuk menggunakannya.
Parameter boot yang ditentukan: - jika Anda netboot: preseed/url=http://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - atau preseed/url=tftp://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - jika Anda mem-boot image instalasi remaster: preseed/file=/cdrom/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - jika Anda memasang dari media USB (masukkan berkas prakonfigurasi di direktori tingkat puncak flash disk USB): preseed/file=/hd-media/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
Perhatikan bahwa preseed/url
dapat disingkat menjadi hanya url
, preseed/file
menjadi hanya file
dan preseed/file/checksum
menjadi hanya preseed-md5
ketika mereka dilewatkan sebagai parameter boot.
Jika berkas prakonfigurasi tidak dapat digunakan untuk melakukan preseed beberapa langkah, instalasi masih dapat sepenuhnya otomatis, karena Anda dapat meneruskan nilai preseed pada baris perintah saat mem-boot pemasang.
Parameter boot juga dapat digunakan jika Anda tidak benar-benar ingin menggunakan preseed, tetapi hanya ingin memberikan jawaban untuk pertanyaan tertentu. Beberapa contoh di mana ini dapat berguna didokumentasikan di tempat lain dalam manual ini.
Untuk menetapkan nilai yang akan digunakan di dalam debian-installer
, cukup berikan
bagi salah satu variabel preseed yang tercantum dalam contoh di lampiran ini. Jika nilai akan digunakan untuk mengonfigurasi paket bagi sistem target, Anda harus menambahkan pemilik[19] dari variabel seperti pada path/ke/variabel
=nilai
. Jika Anda tidak menentukan pemilik, nilai untuk variabel tidak akan disalin ke basis data debconf dalam sistem target dan dengan demikian tetap tidak digunakan selama konfigurasi paket yang relevan. pemilik
:path/ke/variabel
=nilai
Biasanya, mem-preseed pertanyaan dengan cara ini akan berarti bahwa pertanyaan tersebut tidak akan ditanyakan. Untuk menetapkan nilai baku tertentu bagi pertanyaan, tetapi pertanyaan masih diajukan, gunakan “?=”, bukan “=” sebagai operator. Lihat juga Bagian B.5.2, “Menggunakan preseed untuk mengubah nilai baku”.
Perhatikan bahwa beberapa variabel yang sering diatur pada prompt boot memiliki alias yang lebih pendek. Jika alias tersedia, itu digunakan dalam contoh dalam lampiran ini, bukan variabel lengkap. Variabel preseed/url
misalnya telah diberi alias sebagai url
. Contoh lain adalah alias tasks
, yang diterjemahkan menjadi tasksel:tasksel/first
.
Sebuah “---” dalam opsi boot memiliki arti khusus. Parameter kernel yang muncul setelah “---” terakhir dapat disalin ke dalam konfigurasi bootloader untuk sistem yang dipasang (jika didukung oleh pemasang untuk bootloader). Pemasang akan secara otomatis memfilter opsi apa pun (seperti opsi prakonfigurasi) yang dikenalinya.
Catatan | |
---|---|
Kernel linux saat ini (2.6.9 dan yang lebih baru) menerima maksimum 32 opsi baris perintah dan 32 opsi lingkungan, termasuk opsi apa pun yang ditambahkan secara baku untuk pemasang. Jika angka-angka ini terlampaui, kernel akan panik (crash). (Untuk kernel sebelumnya, angka-angka ini lebih rendah.) |
Untuk sebagian besar instalasi, beberapa opsi baku dalam berkas konfigurasi bootloader Anda, seperti vga=normal
, dapat dihapus dengan aman yang memungkinkan Anda menambahkan lebih banyak opsi untuk preseed.
Catatan | |
---|---|
Tidak selalu mungkin untuk menentukan nilai dengan spasi untuk parameter boot, bahkan jika Anda membatasinya dengan tanda kutip. |
Ada beberapa fitur Pemasang Debian yang menggabungkan agar memungkinkan baris perintah yang cukup sederhana pada prompt boot untuk menghasilkan sebarang instalasi otomatis khusus yang kompleks.
Ini diaktifkan dengan menggunakan pilihan boot Instalasi otomatis
, juga disebut auto
untuk beberapa arsitektur atau metode boot. Di bagian ini, auto
dengan demikian bukan parameter, itu berarti memilih pilihan boot itu, dan menambahkan parameter boot berikut pada prompt boot.
Untuk mengilustrasikan ini, berikut adalah beberapa contoh yang dapat digunakan pada prompt boot:
auto url=autoserver
Ini bergantung pada adanya server DHCP yang akan membawa mesin ke titik dimana autoserver
dapat diuraikan dengan DNS, mungkin setelah menambahkan domain lokal jika itu disediakan oleh DHCP. Jika ini dilakukan di situs dimana domain adalah example.com
, dan mereka memiliki pengaturan DHCP yang cukup waras, itu akan mengakibatkan berkas preseed diambil dari http://autoserver.example.com/d-i/bookworm/./preseed.cfg
.
Bagian terakhir dari url itu (d-i/bookworm/./preseed.cfg
) diambil dari auto-install/defaultroot
. Secara baku ini termasuk direktori bookworm
untuk memungkinkan versi mendatang menentukan nama kode mereka sendiri dan membiarkan orang bermigrasi ke depan dengan cara yang terkontrol. Bagian /./
digunakan untuk menunjukkan root, relatif terhadap path selanjutnya yang dapat ditambatkan (untuk digunakan dalam preseed/include dan preseed/run). Hal ini memungkinkan berkas untuk ditentukan baik sebagai URL lengkap, path yang dimulai dengan / yang dengan demikian berlabuh, atau bahkan path relatif terhadap lokasi di mana berkas preseed terakhir ditemukan. Ini dapat digunakan untuk membangun skrip yang lebih portabel dimana seluruh hierarki skrip dapat dipindahkan ke lokasi baru tanpa merusaknya, misalnya menyalin berkas ke flash disk USB ketika mereka mulai di server web. Dalam contoh ini, jika berkas preseed mengatur preseed/run
ke /scripts/late_command.sh
maka berkas akan diambil dari http://autoserver.example.com/d-i/bookworm/./scripts/late_command.sh
.
Jika tidak ada infrastruktur DHCP atau DNS lokal, atau jika Anda tidak ingin menggunakan path baku untuk preseed.cfg
, Anda masih dapat menggunakan url eksplisit, dan jika Anda tidak menggunakan elemen /./
itu akan ditambatkan ke awal path (yaitu /
ketiga di URL). Berikut adalah contoh yang membutuhkan dukungan minimal dari infrastruktur jaringan lokal:
auto url=http://192.168.1.2/path/to/mypreseed.file
Cara kerjanya adalah:
jika URL tidak memiliki protokol, http diasumsikan,
jika bagian nama host tidak berisi titik, ia memiliki domain yang berasal dari DHCP yang ditambahkan kepadanya, dan
jika tidak ada /
setelah nama host, maka path baku ditambahkan.
Selain menentukan url, Anda juga dapat menentukan pengaturan yang tidak secara langsung mempengaruhi perilaku debian-installer
itu sendiri, tetapi dapat diteruskan ke skrip yang ditentukan menggunakan preseed/run
dalam berkas preseed yang dimuat. Saat ini, satu-satunya contoh dari ini adalah auto-install/classes
, yang memiliki alias classes
. Maka ini dapat digunakan:
auto url=example.com
classes=class_A;class_B
Kelas misalnya dapat menunjukkan jenis sistem yang akan dipasang, atau pelokalan yang akan digunakan.
Tentu saja dimungkinkan untuk memperluas konsep ini, dan jika Anda melakukannya, masuk akal untuk menggunakan namespace instalasi otomatis untuk ini. Jadi seseorang mungkin memiliki sesuatu seperti auto-install/style
yang kemudian digunakan dalam skrip Anda. Jika Anda merasa perlu melakukan ini, sebutkan di milis <debian-boot@lists.debian.org>
sehingga kami dapat menghindari konflik namespace, dan mungkin menambahkan alias untuk parameter bagi Anda.
Pilihan boot auto
belum didefinisikan pada semua arsitektur. Efek yang sama dapat dicapai hanya dengan sekadar menambahkan dua parameter auto=true priority=critical
ke baris perintah kernel. Parameter kernel auto
adalah alias untuk auto-install/enable
dan mengaturnya ke true
menunda pertanyaan lokal dan papan ketik sampai setelah ada kesempatan untuk mem-preseed mereka, sedangkan priority
adalah alias untuk debconf/priority
dan mengaturnya ke critical
menghentikan pertanyaan apa pun dengan prioritas yang lebih rendah untuk ditanyakan.
Opsi tambahan yang mungkin menarik saat mencoba mengotomatiskan instalasi saat menggunakan DHCP adalah: interface=auto netcfg/dhcp_timeout=60
yang membuat mesin memilih NIC pertama yang layak dan lebih sabar untuk mendapatkan balasan atas kueri DHCP-nya.
Tip | |
---|---|
Contoh ekstensif tentang cara menggunakan kerangka kerja ini, termasuk contoh skrip dan kelas, dapat ditemukan di situs web pengembangnya. Contoh yang tersedia di sana juga menunjukkan banyak efek bagus lainnya yang dapat dicapai dengan penggunaan prakonfigurasi secara kreatif. |
Alias berikut dapat berguna saat menggunakan preseed (mode auto). Perhatikan bahwa ini hanyalah alias pendek untuk nama pertanyaan, dan Anda selalu perlu menentukan nilai juga: misalnya, auto=true
atau interface=eth0
.
priority | debconf/priority |
fb | debian-installer/framebuffer |
auto | auto-install/enable |
classes | auto-install/classes |
file | preseed/file |
url | preseed/url |
theme | debian-installer/theme |
language | debian-installer/language |
country | debian-installer/country |
locale | debian-installer/locale |
keymap | keyboard-configuration/xkb-keymap |
modules | anna/choose_modules |
firmware | hw-detect/firmware-lookup |
interface | netcfg/choose_interface |
domain | netcfg/get_domain |
hostname | netcfg/get_hostname |
protocol | mirror/protocol |
suite | mirror/suite |
recommends | base-installer/install-recommends |
tasks | tasksel:tasksel/first |
desktop | tasksel:tasksel/desktop |
preseed-md5 | preseed/file/checksum |
Berikut adalah beberapa contoh bagaimana prompt boot mungkin terlihat seperti (Anda perlu menyesuaikan ini dengan kebutuhan Anda).
# Untuk mengatur bahasa Prancis sebagai bahasa dan Prancis sebagai negara: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=fr country=FR --- quiet # Untuk mengatur bahasa Inggris sebagai bahasa dan Jerman sebagai negara, # dan menggunakan tata letak papan tik Jerman: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US. UTF-8 keymap=de --- quiet # Untuk memasang desktop MATE: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet # Untuk memasang tugas server web: /install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---
Anda juga dapat menggunakan DHCP untuk menentukan berkas prakonfigurasi yang akan diunduh dari jaringan. DHCP memungkinkan menentukan nama berkas. Biasanya ini adalah berkas ke netboot, tetapi jika tampaknya menjadi URL maka media instalasi yang mendukung preseed jaringan akan mengunduh berkas dari URL dan menggunakannya sebagai berkas prakonfigurasi. Berikut adalah contoh cara mengaturnya di dhcpd.conf untuk versi 3 dari server DHCP ISC (paket Debian isc-dhcp-server).
if substring (option vendor-class-identifier, 0, 3) = "d-i" { filename "http://host/preseed.cfg"; }
Perhatikan bahwa contoh di atas membatasi nama berkas ini untuk klien DHCP yang mengidentifikasi diri mereka sebagai “d-i”, sehingga tidak akan mempengaruhi klien DHCP biasa, tetapi hanya pemasang. Anda juga dapat menempatkan teks dalam bait hanya untuk satu host tertentu agar menghindari mem-preseed semua instalasi di jaringan Anda.
Cara yang baik untuk menggunakan preseed DHCP adalah dengan hanya preseed nilai khusus untuk jaringan Anda, seperti mirror Debian yang akan digunakan. Dengan cara ini instalasi di jaringan Anda akan secara otomatis memilih cermin yang baik, tetapi sisa instalasi dapat dilakukan secara interaktif. Menggunakan preseed DHCP untuk sepenuhnya mengotomatisasi instalasi Debian hanya boleh dilakukan dengan hati-hati.
[19] Pemilik variabel debconf (atau templat) biasanya adalah nama paket yang berisi templat debconf yang sesuai. Untuk variabel yang digunakan dalam pemasang itu sendiri pemiliknya adalah “d-i”. Templat dan variabel dapat memiliki lebih dari satu pemilik yang membantu menentukan apakah mereka dapat dihapus dari basis data debconf jika paket dibersihkan.