B.2. Dùng khả năng chèn sẵn

Trước tiên bạn cần phải tạo một tập tin cấu hình sẵn, rồi để nó vào vị trí từ đó bạn muốn dùng nó. Phương pháp tạo tập tin cấu hình sẵn được diễn tả trong phần sau của phụ lục này. Cách để nó vào vị trí đúng là hơi đơn giản cho việc chèn sẵn qua mạng hoặc nếu bạn muốn đọc tập tin ra đĩa mềm hay thanh USB. Nếu bạn muốn gồm có tập tin đó trên đĩa CD hay DVD, bạn sẽ cần phải tạo lại chủ ảnh ISO đó. Phương pháp gây ra initrd gồm tập tin cấu hình sẵn nằm ở ngoại phạm vị của tài liệu này: xem tài liệu hướng dẫn của nhà phát triển về debian-installer.

Bạn có khả năng tạo tập tin cấu hình sẵn riêng dựa vào tập tin cấu hình sẵn mẫu sẵn sàng tại https://www.debian.org/releases/buster/example-preseed.txt. Tập tin mẫu này lần lượt dựa vào những đoạn cấu hình nằm trong phụ lục này.

B.2.1. Tải tập tin định cấu hình sẵn

Nếu bạn đang dùng khả năng chèn sẵn kiểu initrd, bạn chỉ cần phải chắc là một tập tin tên preseed.cfg nằm trong thư mục gốc của initrd đó. Trình cài đặt sẽ kiểm tra tự động nếu có tập tin này không, cũng sẽ tải nó.

Đối với các phương pháp chèn sẵn khác, bạn cần phải báo cho trình cài đặt nên sử dụng tập tin nào khi khởi động. Bình thường làm như thế bằng cách gửi cho hạt nhân một tham số khởi động, hoặc bằng tay vào lúc khởi động hoặc bằng cách chỉnh sửa tập tin cấu hình bộ nạp khởi động (v.d. syslinux.cfg) và thêm tham số vào kết thúc của (những) dòng phụ thêm cho hạt nhân.

Nếu bạn có phải xác định tập tin cấu hình sẵn trong cấu hình bộ nạp khởi động, thì cũng có thể sửa đổi cấu hình để tránh yêu cầu bấm phím Enter để khởi động trình cài đặt. Đối với syslinux có nghĩa là lập thời hạn (timeout) thành 1 trong tập tin syslinux.cfg.

Để chắc là trình cài đặt nhận tập tin cấu hình sẵn đúng, bạn có tùy chọn xác định tổng kiểm (checksum) cho tập tin đó. Hiện thời nó cần phải là tổng kiểu md5sum, và nếu được xác định, nó phải khớp với tập tin cấu hình sẵn, nếu không thì trình cài đặt sẽ từ chối dùng nó.

Boot parameters to specify:
- if you're netbooting:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d
- or
  preseed/url=tftp://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- if you're booting a remastered CD:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- if you're installing from USB media (put the preconfiguration file in the
  toplevel directory of the USB stick):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Ghi chú rằng địa chỉ Mạng preseed/url có thể được thu ngắn thành url, địa chỉ tập tin preseed/file dạng ngắn là file và địa chỉ tập tin tổng kiểm preseed/file/checksum thành preseed-md5, khi chúng được dùng làm tham số khởi động.

B.2.2. Dùng tham số khởi động để chèn sẵn câu hỏi

Nếu tập tin cấu hình sẵn không thể được dùng để chèn sẵn một số bước riêng, tiến trình cài đặt vẫn còn có thể được tự động hoá hoàn toàn, vì bạn còn có khả năng gửi các giá trị chèn sẵn cho hạt nhân trên dòng lệnh khi khởi động trình cài đặt.

Các tham số khởi động cũng có thể được dùng nếu bạn không thật muốn sử dụng khả năng chèn sẵn, nhưng chỉ muốn cung cấp trả lời cho một câu hỏi riêng. Một số mẫu có ích về trường hợp này nằm trong phần khác của tài liệu này.

Để đặt một giá trị cần sử dụng bên trong debian-installer, chỉ cần gửi đường_dẫn/đến/biến=giá_trị cho bất cứ biến chèn sẵn nào được liệt kê trong những mẫu của phụ lục này. Nếu giá trị nào sẽ được dùng để cấu hình gói cho hệ thống đích, bạn cần phải thêm (vào đầu chuỗi) cái sở hữu (owner)[22] biến đó như thế: cái_sở_hữu:đường_dẫn/đến/biến=giá_trị. Không xác định cái sở hữu thì giá trị cho biến đó sẽ không được sao chép vào cơ sở dữ liệu debconf trong hệ thống đích nên vô ích trong tiến trình cấu hình gói liên quan.

Bình thường, chèn sẵn một câu hỏi bằng cách này có nghĩa là người dùng sẽ không được nhắc với câu hỏi đó. Để đặt một giá trị mặc định nào đó cho câu hỏi, nhưng vẫn còn nhắc người dùng với cau hỏi đó, dùng toán tử ?= thaycho =. Xem thêm Phần B.5.2, “Dùng khả năng chèn sẵn để thay đổi giá trị mặc định”.

Ghi chú rằng một số biến thường được đặt tại dấu nhắc khởi động cũng có biệt hiệu ngắn hơn. Biệt hiệu sẵn sàng thì được dùng trong những mẫu thí dụ trong phụ lục này, thay cho biến đầy đủ. Thí dụ, biến preseed/url có biệt hiệu url, và biệt hiệu tasks đại diện tasksel:tasksel/first.

Hai dấu trừ --- trong những tùy chọn khởi động thì có nghĩa đặc biệt. Các tham số khởi động xuất hiện sau --- cuối cùng có thể được sao chép vào cấu hình của bộ nạp khởi động cho hệ thống đã cài đặt (nếu hỗ trợ bởi bộ cài đặt cho bộ nạp khởi động đó). Bộ cài đặt sẽ tự động lọc ra bất cứ tùy chọn nào nó nhận ra.

[Ghi chú] Ghi chú

Các hạt nhân Linux hiện thời (2.6.9 và sau) chấp nhận số tối đa là 32 tùy chọn dòng lệnh và 32 biến môi trường, gồm bất cứ tùy chọn nào được thêm theo mặc định cho bộ cài đặt. Vược quá số này thì hạt nhân không thể phục hồi (sụp đổ). (Đối với hạt nhân sớm hơn thì số tối đa là nhỏ hơn.)

Đối với phần lớn tiến trình cài đặt, một số tùy chọn mặc định riêng nằm trong tập tin cấu hình của bộ nạp khởi động, v.d. vga=normal, có thể được gỡ bỏ an toàn, mà có thể cho bạn có khả năng thêm tùy chọn nữa để chèn sẵn.

[Ghi chú] Ghi chú

Có lẽ không phải luôn luôn có khả năng xác định giá trị chứa dấu cách cho tham số khởi động, thậm chí nếu bạn định giới chúng bằng dấu trích dẫn.

B.2.3. Chế độ tự động

There are several features of Debian Installer that combine to allow fairly simple command lines at the boot prompt to result in arbitrarily complex customized automatic installs.

This is enabled by using the Automated install boot choice, also called auto for some architectures or boot methods. In this section, auto is thus not a parameter, it means selecting that boot choice, and appending the following boot parameters on the boot prompt. See Phần 5.1.7, “Màn hình khởi động” for information on how to add a boot parameter.

Để làm rõ ý, ở đây có một số mẫu thí dụ có thể được dùng ở dấu nhắc khởi động:

auto url=autoserver

[auto tự động url địa chỉ URL server máy phục vụ] Mẫu này nhờ máy phục vụ DHCP hỗ trợ máy tính quyết định giá trị của autoserver bằng DNS, có thể sau khi thêm miền cục bộ nếu DHCP đã cung cấp. Nếu mẫu này được dùng ở nơi Mạng có miền mẫu.com có thiết lập DHCP chuẩn, kết quả là tập tin chèn sẵn được lấy từ http://autoserver.mẫu.com/d-i/buster/./preseed.cfg.

Phần cuối cùng của địa chỉ đó (d-i/buster/./preseed.cfg) được lấy từ giá trị auto-install/defaultroot. Mặc định là nó gồm thư mục buster để cho các phiên bản sau có khả năng xác định tên mã riêng và cho phép mọi người nâng cấp một cách được điều khiển. Phần /./ được dùng để ngụ ý một thư mục gốc vào đó các đường dẫn phụ có thể được neo (để sử dụng trong preseed/includepreseed/run). Bố trí này cho phép xác định tập tin hoặc dạng địa chỉ Mạng đầy đủ hoặc đường dẫn bắt đầu với dấu xuyệc / thì được neo, hoặc ngay cả đường dẫn tương đối với vị trí của tập tin đã lấy cuối cùng. Nó có thể được sử dụng để cấu tạo các văn lệnh có khả năng di động hơn mà toàn bộ phân cấp văn lệnh có thể được di chuyển sang vị trí khác, không ngắt nó, chẳng hạn khi sao chép các tập tin vào thanh USB từ máy phục vụ Mạng. Trong mẫu thí dụ này, nếu tập tin chèn sẵn đặt biến preseed/run thành giá trị /scripts/late_command.sh thì tập tin sẽ được lấy từ http://autoserver.example.com/d-i/buster/./scripts/late_command.sh.

Nếu không có hạ tầng cơ sở cục bộ kiểu DHCP hay DNS, hoặc nếu bạn không muốn sử dụng đường dẫn mặc định đến preseed.cfg, bạn vẫn còn có khả năng sử dụng một địa chỉ Mạng dứt khoát; không sử dụng yếu tố /./ thì nó được neo vào đầu của đường dẫn (tức là dấu xuyệc / thứ ba trong địa chỉ đó). Ở đây có một mẫu thí dụ chỉ cần sự hỗ trợ tối thiểu của hạ tầng cơ sở cục bộ :

auto url=http://192.168.1.2/đường_dẫn/đến/tập_tin_chèn_sẵn.của_tôi

Nó hoạt động như thế:

  • địa chỉ Mạng thiếu giao thức thì http được giả sử,

  • phần tên máy không chứa dấu chấm thì miền bắt nguồn từ DHCP được phụ thêm, và

  • không có dấu xuyệc / nằm sau tên miền thì đường dẫn mặc định được thêm.

Thêm vào việc xác định địa chỉ Mạng, bạn cũng có khả năng xác định thiết lập không có tắc động trực tiếp ứng xử của debian-installer chính nó, nhưng vẫn còn có thể được gửi cho văn lệnh nào được ghi rõ bằng preseed/run trong tập tin chèn sẵn đã nạp. Hiện thời, mẫu duy nhất của trường hợp này là auto-install/classes, mà có biệt hiệu là classes. Dùng được như thế:

auto url=mẫu.com classes=hạng_A;hạng_B

Những hạng này có thể, chẳng hạn, ngụ ý kiểu hệ thống cần cài đặt hay bản địa hoá cần dùng.

Tất nhiên có thể kéo dài khái niệm này, có lẽ bằng cách dùng miền tên auto-install nên dùng mẫu như auto-install/style để dùng trong văn lệnh. Nếu bạn muốn làm việc như thế, hãy gửi lá thư cho hộp thư chung khởi động Debian , để chúng ta tránh sự xung đột giữa các tên miền, và có thể thêm biệt hiệu cho tham số đó để giúp đỡ bạn.

The auto boot choice is not yet defined on all arches. The same effect may be achieved by simply adding the two parameters auto=true priority=critical to the kernel command line. The auto kernel parameter is an alias for auto-install/enable and setting it to true delays the locale and keyboard questions until after there has been a chance to preseed them, while priority is an alias for debconf/priority and setting it to critical stops any questions with a lower priority from being asked.

Tùy chọn thêm có thể có ích khi cố gắng tự động hoá việc cài đặt chạy với dịch vụ DHCP là: interface=auto netcfg/dhcp_timeout=60 (giao diện là tự động, thời hạn netcf/dhcp là 60) mà làm cho máy chọn NIC thứ nhất sẵn sàng và đợi nhiều thời gian hơn để nhận trả lời cho truy vấn DHCP của nó.

[Mẹo] Mẹo

Có một mẫu thí dụ rất chi tiết về cách sử dụng khuôn khổ này, bao gồm các văn lệnh mẫu, ở địa chi Web của nhà phát triển. Các mẫu ở đó cũng minh họa nhiều hiệu ứng đẹp có thể được làm khi dùng chức năng chèn sẵn một cách sáng tạo.

B.2.4. Biệt hiệu có ích khi chèn sẵn

Những bí danh theo đây cũng có thể hữu ích khi chèn sẵn (trong chế độ tự động). Ghi chú rằng đây chỉ là bí danh ngắn mà đại diện tên câu hỏi, và bạn lúc nào cũng cần ghi rõ một giá trị: v.d. auto=true or interface=eth0.

priority debconf/priority
fb debian-installer/framebuffer
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
theme debian-installer/theme
auto auto-install/enable
classes auto-install/classes
tập tin preseed/file
url preseed/url
domain netcfg/get_domain
hostname    netcfg/get_hostname
interface netcfg/choose_interface
protocol mirror/protocol
suite mirror/suite
modules anna/choose_modules
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
môi trường làm việc tasksel:tasksel/desktop
dmraid disk-detect/dmraid/enable
keymap keyboard-configuration/xkb-keymap
preseed-md5 preseed/file/checksum

B.2.5. Dùng máy phục vụ DHCP để xác định tập tin định cấu hình sẵn

Cũng có thể sử dụng dịch vụ DHCP để xác định tập tin cấu hình sẵn cần tải xuống mạng. Giao thức DHCP cho phép xác định tên tập tin. Bình thường, nó là một tập tin cần khởi động qua mạng, nhưng nếu nó có vẻ là một địa chỉ URL thì vật chứa cài đặt cũng hỗ trợ chèn sẵn qua mạng sẽ tải tập tin đó xuống địa chỉ URL được cung cấp và dùng nó làm một tập tin cấu hình sẵn. Đây là một mẫu thiết lập nó trong tập tin cấu hình « dhcpd.conf » cho phiên bản 3 của trình phục vụ DHCP ISC (gói Debian « isc-dhcp-server »).

if substring (option vendor-class-identifier, 0, 3) = "d-i" {
    filename "http://máy/preseed.cfg";
}

Ghi chú rằng mẫu bên trên giới hạn tên tập tin này thành ứng dụng khách DHCP tự nhận diện là « d-i », vì vậy nó sẽ không có tác động ứng dụng khách DHCP chuẩn, chỉ trình cài đặt. Bạn cũng có khả năng định dạng đoạn đó là đoạn dòng cho chỉ một máy riêng, để tránh chèn sẵn mọi việc cài đặt trên mạng đó.

Một phương pháp tốt để dùng chức năng chèn sẵn DHCP là chèn sẵn chỉ những giá trị đặc trưng cho mạng đó, v.d. máy nhân bản Debian cần dùng. Bằng cách này, việc cài đặt trên mạng đó sẽ tự động chọn một máy nhân bản hữu ích, còn phần còn lại của tiến trình cài đặt có thể được thực hiện tương tác. Bạn nên rất cẩn thận khi dùng chức năng chèn sẵn DHCP để tự động hoá hoàn toàn tiến trình cài đặt Debian.



[22] Cái sở hữu giá trị (hay mẫu) kiểu debconf bình thường là tên của gói chứa mẫu debconf tương ứng. Đối với những biến được dùng trong tiến trình cài đặt chính nó, cái sở hữu là d-i. Mỗi mẫu và biến vẫn còn có khả năng thuộc về nhiều cái sở hữu, mà giúp đỡ quyết định nếu nó có thể được gỡ bỏ ra cơ sở dữ liệu debconf nếu gói đó bị tẩy.