Nếu máy tính của bạn có kết nối đến mạng cục bộ, bạn có thể có khả năng khởi động qua mạng từ máy khác bằng TFTP. Nếu bạn định khởi động hệ thống cài đặt từ máy khác, cần phải để các tập tin khởi động vào vị trí dứt khoát trên máy đó, cũng cấu hình máy đó để hỗ trợ khả năng khởi động máy tính riêng của bạn.
Bạn cần phải thiết lập một trình phục vụ TFTP, và cho nhiều máy cũng cần một trình phục vụ DHCP, hay trình phục vụ BOOTP.
BOOTP là một giao thức IP báo máy tính biết địa chỉ IP của chính nó và nơi trên mạng có thể lấy ảnh khởi động.
Giao thức truyền tập tin không đáng kể (TFTP) được dùng để phục vụ ảnh khởi động cho ứng dụng khách. Về lý thuyết có thể sử dụng bất kỳ trình phục vụ nào trên bất kỳ nền tảng nào mà thực hiện những giao thức này. Những lời thí dụ trong tiết đoạn này sẽ cung cấp lệnh riêng cho hệ điều hành SunOS 4.x, SunOS 5.x (cũng tên Solaris), và GNU/Linux.
Ghi chú | |
---|---|
Đối vơi một trình phục vụ Debian GNU/Linux, chúng tôi khuyến khích |
Một trình phục vụ DHCP phần mềm tự do là dhcpd ISC. Đối với Debian GNU/Linux, gói isc-dhcp-server
khuyến khích. Đây là một tập tin cấu hình mẫu cho nó (xem /etc/dhcp/dhcpd.conf
):
option domain-name "mẫu.com"; option domain-name-servers ns1.mẫu.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "tên_máy_phục_vụ"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host tên_máy_khách { filename "/tftpboot.img"; server-name "tên_máy_phục_vụ"; next-server tên_máy_phục_vụ; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; } [option tùy chọn domain-name tên miền domain name servers các máy phục vụ tên miền subnet-mask mặt nạ mạng phụ default-lease-time thời gian thuê mặc định max-lease-time thời gian thuê tối đa server-name tên máy phục vụ subnet mạng phụ netmask mặt nạ mạng range phạm vị routers các bộ định tuyến host máy (hỗ trợ) filename tên tập tin hardware ethernet Ethernet phần cứng fixed-address địa chỉ cố định]
Trong lời thí dụ này, có một máy phục vụ tên tên_máy_phục_vụ
mà làm mọi công việc của trình phục vụ DHCP, trình phục vụ TFTP và cổng ra mạng. Bình thường, bạn sẽ cần phải thay đổi những tùy chọn tên miền (domain-name), cũng như tên máy phục vụ (server-name) và địa chỉ phần cứng (hardware address) của máy khách. Tùy chọn filename
(tên tập tin) nên là tên tập tin sẽ được lấy thông qua TFTP.
Sau khi bạn chỉnh sửa tập tin cấu hình của trình nền dhcpd, hãy khởi chạy lại nó bằng lệnh /etc/init.d/dhcpd3-server restart
.
Đây là một mẫu dhcp.conf
khác, dùng phương pháp môi trường thực hiện tiền khởi động (PXE) của giao thức TFTP. [Chú thích đã được dịch trong mẫu này.]
option domain-name "mẫu.com"; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; # Cần phải sửa đổi đoạn văn này để thích hợp với trường hợp của bạn subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option broadcast-address 192.168.1.255; # địa chỉ cổng ra mà có thể là khác # (v.d. truy cập Mạng) option routers 192.168.1.1; # xác định DNS cần dùng option domain-name-servers 192.168.1.3; } group { next-server 192.168.1.3; host tftpclient { # địa chỉ phần cứng của máy khách TFTP hardware ethernet 00:10:DC:27:6C:15; filename "pxelinux.0"; } }
Ghi chú rằng để khởi động cách PXE, tên tập tin khách pxelinux.0
là bộ nạp khởi động, không phải là ảnh hạt nhân (xem Phần 4.5.4, “Xác định vị trí của ảnh TFTP” bên dưới).
If your machine uses UEFI to boot, you will have to specify a boot loader appropriate for UEFI machines, for example
group { next-server 192.168.1.3; host tftpclient { # tftp client hardware address hardware ethernet 00:10:DC:27:6C:15; filename "debian-installer/amd64/bootnetx64.efi"; } }
Có hai trình phục vụ BOOTP sẵn sàng cho GNU/Linux. Trình thứ nhất là bootpd CMU. Trình thứ hai thật là một trình phục vụ DHCP: dhcpd ISC. Trong Debian GNU/Linux hai trình này nằm trong góibootp
và isc-dhcp-server
riêng từng cái.
To use CMU bootpd, you must first uncomment (or add) the relevant line in /etc/inetd.conf
. On Debian GNU/Linux, you can run update-inetd --enable bootps
, then /etc/init.d/inetd reload
to do so. Just in case your BOOTP server does not run Debian, the line in question should look like:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Now, you must create an /etc/bootptab
file. This has the same sort of familiar and cryptic format as the good old BSD printcap
, termcap
, and disktab
files. See the bootptab
manual page for more information. For CMU bootpd, you will need to know the hardware (MAC) address of the client. Here is an example /etc/bootptab
:
client:\ hd=/tftpboot:\ bf=tftpboot.img:\ ip=192.168.1.90:\ sm=255.255.255.0:\ sa=192.168.1.1:\ ha=0123456789AB:
You will need to change at least the “ha” option, which specifies the hardware address of the client. The “bf” option specifies the file a client should retrieve via TFTP; see Phần 4.5.4, “Xác định vị trí của ảnh TFTP” for more details.
Mặt khác, tiến trình thiết lập BOOTP bằng dhcpd ISC vẫn rất dễ dàng, vì nó thấy các ứng dụng khách BOOTP là ứng dụng khách DHCP kiểu hơi đặc biệt. Một số kiến trúc nào đó yêu cầu một cấu hình phức tạp để khởi động ứng dụng khách thông qua BOOTP. Nếu máy của bạn có kiến trúc như thế, hãy đọc tiết đoạn Phần 4.5.1, “Thiết lập trình phục vụ DHCP”. Khác thì rất có thể là bạn đơn giản cần thêm chỉ thị allow bootp
(cho phép BOOTP) vào khối cấu hình dành cho mạng phụ chứa máy chạy ứng dụng khách đó trong tập tin /etc/dhcp/dhcpd.conf
, sau đó khởi chạy lại trình nền dhcpd bằng câu lệnh /etc/init.d/isc-dhcp-server restart
.
Để chuẩn bị trình phục vụ TFTP, trước tiên bạn nên đảm bảo rằng tftpd được hiệu lực.
Trong trường hợp của tftpd-hpa
, có hai phương pháp chạy dịch vụ. Nó có thể được khởi chạy theo yêu cầu bởi trình nền inetd
của hệ thống, hoặc nó có thể được thiết lập để chạy như là một trình nền độc lập. Phương pháp này được chọn khi gói được cài đặt, và lúc nào cũng có thể được thay đổi bằng cách cấu hình lại gói đó.
Ghi chú | |
---|---|
Trong quá khứ, máy phục vụ TFTP đã dùng |
Tất cả các sự chọn in.tftpd khác sẵn sàng trong Debian thì nên ghi lưu các yêu cầu TFTP vào sổ theo dõi hệ thống theo mặc định. Một số điều cũng hỗ trợ một đối số -v
để tăng mức chi tiết của kết xuất. Khuyên bạn kiểm tra các thông điệp ghi lưu này trong trường hợp gặp vấn đề khởi động, vì sổ theo dõi là một điểm bắt đầu hữu ích để chẩn đoán nguyên nhân của lỗi.
Sau đó, hãy để ảnh khởi động TFTP cần thiết (như được tìm trong Phần 4.2.1, “Where to Find Installation Files”) vào thư mục ảnh khởi động của trình nền tftpd. Có lẽ bạn cần phải tạo một liên kết từ tập tin đó đến tập tin mà tftpd sẽ sử dụng để khởi động máy khách riêng. Tiếc là tên tập tin được quyết định bởi máy khách TFTP, và chưa có tiêu chuẩn mạnh nào.
For PXE booting, everything you should need is set up in the netboot/netboot.tar.gz
tarball. Simply extract this tarball into the tftpd boot image directory. Make sure your dhcp server is configured to pass pxelinux.0
to tftpd as the filename to boot. For UEFI machines, you will need to pass an appropriate EFI boot image name (such as /debian-installer/amd64/bootnetx64.efi
).