PXE (Preboot eXecution Environment hoặc Pre-eXecution Environment) là một môi trường cho phép khởi động máy tính bằng việc sử dụng card mạng cùng với RAM. Việc khởi động đó sẽ không phụ thuộc vào những thiết bị của máy tính như CD, harddisk và các hệ điều hành đã được cài đặt.
Mô hình kết nối PXEPXE bao gồm 2 thành phần: PXE Client và PXE Server. Thành phần PXE Client (PXE boot code) nằm trên card mạng. Các server, laptop hầu hết đều cho phép khởi động máy tính qua mạng với PXE boot code. Các mainboard có card mạng onboard cũng hầu hết có thành phần này. Card mạng có PXE boot code cũng được coi là một thiết bị khởi động giống như các thiết bị khởi động khác: ổ mềm, ổ cứng, ổ CD/DVD, ổ USB. PXE Server là phần mềm chạy trên một máy tính nào đó trong mạng LAN. Phần mềm này hỗ trợ các giao thức TFTP, DHCP.
Có thể xây dựng PXE Server để cung cấp việc cài đặt hệ điều hành Windows /Linux cho các máy tính mà không cần đĩa CD/DVD theo cách thức cài đặt truyền thống, hoặc cũng có thể xây dựng một mạng hoạt động không cần ổ cứng.
Khi máy tính gặp sự cố không khởi động được, người ta thường nghĩ đến các đĩa CD/DVD hoặc USB có thể khởi động được để khắc phục sự cố, phục hồi dữ liệu. Có một giải pháp khá hiệu quả là xây dựng một PXE Server trên một máy tính khác trong cùng mạng LAN và trên máy gặp sự cố, sẽ khởi động bằng card mạng và truy cập vào PXE Server để sử dụng các chương trình được cài sẵn trên đó. Bài viết này sẽ hướng dẫn cách thức xây dựng một PXE Server với nhiều lựa chọn khi khởi động để hỗ trợ người quản trị khắc phục các máy tính khi gặp sự cố. Các menu lựa chọn khi khởi động sẽ như sau:
Các menu khi khởi động từ card mạng
1. Cấu hình PXEServer với TFTPD32 và PXELinux
TFTPD32 là một chương trình nhỏ gọn, miễn phí và đã bao gồm DHCP server, TFTP server nên rất thuận tiện cho việc xây dựng một PXE Server. PXELinux là một gói phần mềm trong các phần mềm như syslinux, isolinux. Với PXELinux, bạn có thể tạo nhiều lựa chọn khi khởi động từ PXE.
Các phần mềm TFTPD32 và PXELinux đều được cài đặt và cấu hình trên PXE Server.
Hệ thống thử nghiệm
- PXE Server: Windows XP SP2 hoặc Windows 2003 Server.
- PXE Client: Máy tính có hỗ trợ khởi động qua mạng với PXE boot code, chọn máy có card mạng Intel onboard. RAM của máy tính này yêu cầu từ 384MB trở lên để có thể chạy được hết tất cả các lựa chọn trong bài viết.
Để người đọc thực hiện được việc xây dựng PXE Server, có thể download sẵn các file cần thiết trong file nén PXEServer_Base.rar (18.62 MB):
Sau khi download, giải nén được thư mục PXEServer. Copy thư mục này vào ổ C. Trong thư mục C:\PXEServer có các thành phần sau:
- Chương trình TFTPD32 bao gồm các file tftpd32.exe và tftpd32.chm nằm trong C:\PXEServer.
- Các file pxelinux.0, menu.c32, chain.c32, reboot.c32, memdisk đều thuộc gói phần mềm syslinux (bao gồm syslinux, isolinux, pxelinux). Các file cấu hình (dạng text) của PXELinux nằm trong thư mục TFTPRoot là: pxelinux.cfg\default; image\others.conf; linux\linux.conf.
- Thư mục TFTPRoot\boot có sẵn các file khởi động qua PXE của WinPE 2.0 (file WIM). Hai file CreateBCD.cmd, bcdedit.exe được dùng để tạo BCD cho các file WIM.
- Thư mục TFTPRoot\Image với các file image có đuôi .gz để khởi động máy tính với memdisk.
Chạy chương trình TFTPD32 bằng cách nhắp đúp vào file C:\PXEServer\tftpd32.exe. Giao diện của TFTPD32 như hình dưới:
Giao diện chương trình TFTPD32
Trên giao diện của TFTPD32, chọn các thông số như sau:
- Current Directory: thư mục gốc của TFTP, chọn C:\PXEServer\TFTPRoot.
- Server interface: Địa chỉ IP của card mạng đang được sử dụng. Trong ví dụ này card mạng đang sử dụng địa chỉ IP 192.168.1.101/255.255.255.0.
Chọn tab DHCP server để thiết lập các thông số sau:
- IP pool starting address: IP bắt đầu của máy sử dụng PXE. Thiết lập IP cùng lớp với IP của Server Inteface đang được chọn. Mục này, ví dụ 192.168.1.0
- Size of pool: số IP dùng cho DHCP của PXEServer, ví dụ chọn 20.
- Boot File: lựa chọn file khởi động của PXELinux là pxelinux.0. File này nằm trong thư mục C:\PXEServer\TFTPRoot. Do đã chọn mục gốc của TFTP là C:\PXEServer\TFTPRoot, nên ta chỉ cần gõ tên file pxelinux.0 vào ô này.
- Mask: 255.255.255.0
IP và Mask sẽ phụ thuộc vào lớp mạng đang sử dụng.
Sau đó nhắp nút Setting, xuất hiện hộp thoại TFTPD32 Settings.
TFTPD32 Settings
Trong hộp thoại Settings của TFTPD32, cần chú ý các thông số ở các nhóm Global Settings, Advanced TFTP Options như hình trên. Sau đó nhắp OK để kết thúc việc thiết lập, quay trở lại giao diện chính của TFTPD32. Khi đó PXE Server đã sẵn sàng cho việc sử dụng.
Khi kết nối từ PXE Client, trên máy cài PXE Server, trên TFTPD32 có thể theo dõi được các thông tin về việc truyền file qua giao thức TFTP, thông tin địa chỉ IP của PXEClient.
Truyền file qua TFTP
Trên hình trên, có thể theo dõi được kích thước file truyền qua TFTP, tốc độ truyền và địa chỉ IP (được cấp qua DHCP của TFTPD32) của máy đang kết nối đến.- Chương trình TFTPD32 bao gồm các file tftpd32.exe và tftpd32.chm nằm trong C:\PXEServer.
- Các file pxelinux.0, menu.c32, chain.c32, reboot.c32, memdisk đều thuộc gói phần mềm syslinux (bao gồm syslinux, isolinux, pxelinux). Các file cấu hình (dạng text) của PXELinux nằm trong thư mục TFTPRoot là: pxelinux.cfg\default; image\others.conf; linux\linux.conf.
- Thư mục TFTPRoot\boot có sẵn các file khởi động qua PXE của WinPE 2.0 (file WIM). Hai file CreateBCD.cmd, bcdedit.exe được dùng để tạo BCD cho các file WIM.
- Thư mục TFTPRoot\Image với các file image có đuôi .gz để khởi động máy tính với memdisk.
Chạy chương trình TFTPD32 bằng cách nhắp đúp vào file C:\PXEServer\tftpd32.exe. Giao diện của TFTPD32 như hình dưới:
Giao diện chương trình TFTPD32
Trên giao diện của TFTPD32, chọn các thông số như sau:
- Current Directory: thư mục gốc của TFTP, chọn C:\PXEServer\TFTPRoot.
- Server interface: Địa chỉ IP của card mạng đang được sử dụng. Trong ví dụ này card mạng đang sử dụng địa chỉ IP 192.168.1.101/255.255.255.0.
Chọn tab DHCP server để thiết lập các thông số sau:
- IP pool starting address: IP bắt đầu của máy sử dụng PXE. Thiết lập IP cùng lớp với IP của Server Inteface đang được chọn. Mục này, ví dụ 192.168.1.0
- Size of pool: số IP dùng cho DHCP của PXEServer, ví dụ chọn 20.
- Boot File: lựa chọn file khởi động của PXELinux là pxelinux.0. File này nằm trong thư mục C:\PXEServer\TFTPRoot. Do đã chọn mục gốc của TFTP là C:\PXEServer\TFTPRoot, nên ta chỉ cần gõ tên file pxelinux.0 vào ô này.
- Mask: 255.255.255.0
IP và Mask sẽ phụ thuộc vào lớp mạng đang sử dụng.
Sau đó nhắp nút Setting, xuất hiện hộp thoại TFTPD32 Settings.
TFTPD32 Settings
Trong hộp thoại Settings của TFTPD32, cần chú ý các thông số ở các nhóm Global Settings, Advanced TFTP Options như hình trên. Sau đó nhắp OK để kết thúc việc thiết lập, quay trở lại giao diện chính của TFTPD32. Khi đó PXE Server đã sẵn sàng cho việc sử dụng.
Khi kết nối từ PXE Client, trên máy cài PXE Server, trên TFTPD32 có thể theo dõi được các thông tin về việc truyền file qua giao thức TFTP, thông tin địa chỉ IP của PXEClient.
Truyền file qua TFTP
Có thể chọn tab Log viewer để theo dõi việc kết nối đến PXEServer để có thể xử lý khi kết nối không thành công.