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 http://www.debian.org/releases/etch/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 trình cài đặt biết tập tin nào cần dùng khi bạn khởi động nó. Bình thường cung cấp thông tin này bằng cách gởi cho hạt nhân một tham số khởi động, hoặc tự gởi vào lúc khởi động, hoặc bằng cách hiệu chỉnh tập tin cấu hình bộ tải khởi động (v.d. syslinux.cfg), thêm tham số đó vào kết thúc của (những) dòng phụ thêm dành 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 của bộ tải khởi động, bạn cũng có khả năng thay đổi cấu hình để tránh trường hợp cần phải bấm phím Enter để khởi động trình cài đặt. Đối với syslinux, cần phải đặt thời hạn thành 1 trong tập tin cấu hình 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ó.

Các tham số khởi động cần xác định:
• nếu bạn khởi động qua mạng:
  preseed/url=http://máy/đường/dẫn/đến/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

• nếu bạn khởi động đĩa CD đã tạo lại chủ :
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

• nếu bạn cài đặt từ vật chứa USB (hãy để tập tin cấu hình sẵn
vào thư mục cấp đầu của thanh USB):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Ghi chú rằng cũng có khả năng nhập địa chỉ Mạng preseed/url dạng ngắn là chỉ url, còn địa chỉ tập tin preseed/file dạng ngắn là chỉfile, khi địa chỉ kiểu này là 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)[17] 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.

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 đủ. Đặc biệt, biến preseed/url có biệt hiệu là url, cũng có khả năng thêm cho phép dùng địa chỉ Mạng ngắn hơn. 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ộ tải khởi động cho hệ thống đã cài đặt (nếu hỗ trợ bởi bộ cài đặt cho bộ tải 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ú

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ộ tải 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ú

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

Bộ cài đặt Debian có vài tính năng hợp nhất với nhau để cho phép dòng lệnh hơi đơn giản ở dấu nhắc khởi động có kết quả là việc cài đặt tự động riêng phức tạp tùy ý. Để 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ỉ Mạng 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/etch/./preseed.cfg.

Phần cuối cùng của địa chỉ đó (d-i/etch/./preseed.cfg) được lấy từ giá trị auto-install/defaultroot. Mặc định là nó gồm thư mục etch để 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/etch/./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.

Nhãn khởi động auto (tự động) chưa được định nghĩa trên mọi kiến trúc. Vẫn còn đạt được cùng một kết quả bằng cách đơn giản thêm hai tham số auto=true priority=critical (tự động là đúng, ưu tiên là tới hạn) vào dòng lệnh hạt nhân. Tham số auto là biệt hiệu cho biến auto-install/enable, và điều khiển cách hoãn những câu hỏi miền địa phương và bàn phím đến sau khi có dịp chèn sẵn chúng. Còn priority là biệt hiệu cho biến debconf/priority: việc đặt nó thành critical thì ngăn cản hỏi câu nào có ưu tiên thấp hơn nó.

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ó.

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

Những biệt hiệu sau có thể có ích khi sử dụng khả năng chèn sẵn (chế độ tự động).

auto auto-install/enable
classes auto-install/classes
fb debian-installer/framebuffer
locale debian-installer/locale
priority debconf/priority
tập tin preseed/file
url preseed/url
interface netcfg/choose_interface
hostname    netcfg/get_hostname
domain netcfg/get_domain
protocol mirror/protocol
suite mirror/suite

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ó khả năng 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 khả năng xác định tên tập tin. Bình thường, nó là tập tin cần khởi động qua mạng, nhưng nếu nó có vẻ là địa chỉ Mạng (URL), vật chứa cài đặt mà hỗ trợ khả năng chèn sẵn qua mạng sẽ tải tập tin đó xuống địa chỉ Mạng được cung cấp rồi dùng nó là tập tin cấu hình sẵn. Đây là mẫu cách 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 « dhcp3-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 khả 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, các việc cài đặt trên mạng đó sẽ chọn tự động 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 khả năng chèn sẵn DHCP để tự động hoá hoàn toàn tiến trình cài đặt Debian nào.



[17] 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.