ới thủ thuật này chúng ta boot máy không cần ổ CD
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.
PXE
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):
Link:
mediafire.com 91drthtt1nh
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.
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.
2.
Khởi động máy tính từ card mạng với PXE boot code
Trên các
laptop, server, hoặc các máy tính lắp ráp ngày nay đều có card mạng có
PXE boot code cho phép khởi động qua mạng. Có thể vào BIOS của máy tính
để kiểm tra tính năng PXE đã được cho phép (enable) hay chưa.
Để
khởi động máy tính từ PXE, thông thường khi bật máy tính bấm phím F12,
sẽ xuất hiện danh mục Boot Device của máy tính, khi đó chọn Boot Device
là card mạng.
Network
Booting
Trên hình trên, khi máy tính khởi động từ card mạng, máy
tính sẽ dò tìm DHCP Server của PXE Server trong LAN, khi dò thấy tại IP
192.168.1.101 (địa chỉ của máy cài TFTPD32), PXE Client sẽ gửi yêu cầu
và nhận IP do DHCP của PXE Server cung cấp. Sau đó sẽ nạp file
pxelinux.0, để gọi menu.c32 nạp file cấu hình của pxelinux là
pxelinux.cfg\default và đưa ra menu với các lựa chọn như hình dưới (thư
mục pxelinux.cfg nằm trong mục gốc của TFTP Server là
C:\PXEServer\TFTPRoot):
Menu
chính của PXEServer
Trên menu chính của PXEServer có 10 lựa chọn
như sau:
- 0. Boot from Harddisk: Khởi động từ ổ cứng của máy
tính. Có thể dùng notepad để mở file pxelinux.cfg\default và tìm các
thông tin sau:
# Boor from Harddisk
LABEL LOCAL
MENU LABEL ^0.
Boot from Harddisk
KERNEL chain.c32 hd0 1
Trong cấu hình để khởi
động từ harddisk, cần chú ý đến dòng "Kernel chain.c32 hd0 1". Với việc
sử dụng chain.c32 (của syslinux) cùng với tham số "hd0 1" sẽ cho phép
gọi phân vùng 1 của ổ cứng thứ nhất (hd0) để khởi động. Có thể thay đổi
các giá trị để khởi động từ ổ cứng khác cũng như phân vùng khác trên ổ
cứng.
- Các mục 1-7 sẽ được hướng dẫn chi tiết ở phía dưới, mục "8.
Boot Linux Tools" được hướng dẫn như một lựa chọn thêm để có thể sử dụng
một số bản Linux nhỏ.
- 10. REBOOT: Cho phép reboot lại máy tính.
Khi mở file cấu hình pxelinux.cfg\default, sẽ có các thông tin sau:
#
Reboot
LABEL REBOOT
MENU LABEL ^10. REBOOT
KERNEL reboot.c32
Trong
cấu hình trên, sử dụng kernel là reboot.c32 để máy tính có thể khởi
động lại.
- 9. Boot Other Tools: Khi chọn lựa chọn này, pxelinux sẽ
gọi file cấu hình others.conf trong thư mục Image để hiển thị ra menu
Boot Other Tools.
Menu
Boot Other Tools
Menu "Boot Other Tools" cho phép máy tính khởi
động từ các chương trình như Active Boot Disk (phiên bản DOS), HDD
Regenerator, Ghost, Smart Boot Manager. Các chương trình này đã được kèm
theo trong file nén và được lưu thành các file .gz ở thư mục Image.
Cách thức cấu hình sẽ được hướng dẫn ở mục Memdisk.
Như vậy với
file nén PXEServer_Base.rar download ở trên, người đọc đã có thể sử dụng
được nhưng lựa chọn cơ bản của PXE. Tuy nhiên còn có nhiều lựa chọn
chưa có, và các phần dưới sẽ hướng dẫn cách thức tạo thêm những lựa chọn
đó.
3. Memdisk
Memdisk là một file nằm trong
thư mục TFTPRoot\Image. Memdisk được các chương trình quản lý boot như
syslinux, isolinux, pxelinux, grub sử dụng để nạp một file image của đĩa
mềm, của ổ cứng.
Memdisk với PXELinux hỗ trợ các dạng file image của
đĩa mềm chuẩn (kích thước tối đa là 2880 K) và hỗ trợ chuẩn nén gzip.
Tham khảo ví dụ sau:
# Active Boot Disk
LABEL ACTIVE
MENU LABEL
^0. Active Boot Disk V2.1 DOS
KERNEL image/memdisk
APPEND
initrd=image/active.gz
File active.gz là file active.img được nén
theo chuẩn gzip để giảm kích thước file khi truyền qua mạng. Trên
Windows, có thể dùng chương trình quản lý file quen thuộc là Total
Commander để nén file .img thành file .gz.
Total
Commander nén file .gz
Cũng có thể sử dụng memdisk với các file
image của ổ cứng dạng thực (raw) như các file .dsk. Trong thư mục
TFTPRoot\Image có file dos32.gz là file dos32.dsk được nén chuẩn gzip.
File dos32.dsk là một file image của ổ cứng 32 MB có sẵn hệ điều hành
DOS và các chương trình như GHOST, NTFS4DOS,... Tham khảo cách sử dụng
trong file pxelinux.cfg\default như sau:
# Boot DOS98
LABEL DOS98
MENU
LABEL ^6. Boot DOS98 (Ghost, NTFS, ...)
KERNEL image/memdisk
APPEND
initrd=image/dos32.gz harddisk
Trong ví dụ này, chú ý là tham số
harddisk đặt ở dòng APPEND. Nếu không dùng tham số harddisk, memdisk sẽ
hiểu đó là một file image của floppy và file .dsk không thể khởi động
được. Đây là điểm khác biệt khi sử dụng memdisk so với syslinux và grub.
Với
việc sử dụng file .dsk, có thể tạo thêm lựa chọn để khởi động với đĩa
Hiren V9.3 theo các bước sau:
- Download file hiren93.rar (62.36 MB):
mediafire.com fw2uj241znh
-
Giải nén file hiren93.rar, được file hiren93.dsk. Dùng Total Commander
để nén file hiren93.dsk thành file hiren93.gz (file này cũng có thể dùng
được với GRUB4DOS). Copy file hiren93.gz vào thư mục TFTPRoot\Image.
-
Xác nhận lại các thông tin sau trong file pxelinux.cfg\default:
#
Boot HIREN V93
LABEL HIREN
MENU LABEL ^7. Hiren Boot Disk V9.3
KERNEL
image/memdisk
APPEND initrd=image/hiren93.gz harddisk
Như vậy
khi lựa chọn khởi động file image với memdisk, máy khởi động qua PXE sẽ
download file image thông qua giao thức TFTP và máy tính sẽ khởi động
với file image này. Xem một ví dụ khởi động với file image dưới đây:
Khởi
động với file image qua PXE
4. PXELinux với một số bản
Linux
Các bản Linux được hướng dẫn ở đây là Acronis Disk
Directory, Acronis True Image, Paragon Partition Manager. Đó là những
bản Linux khá quen thuộc đối với người dùng Windows.
Để tạo các
lựa chọn khởi động qua PXE với Acronis, thực hiện theo các bước sau:
-
Download file acronis_01.rar (19.79 MB): mediafire.com 6zmypb8ojcb
-
Giải nén file acronis_01.rar, được các file kernadd.dat, ramdadd.dat,
kernati.dat, ramdati.dat. Copy các file này vào trong thư mục
TFTPRoot\acronis (nếu thư mục này chưa có, hãy tạo nó).
- Xác nhận
lại các thông tin sau trong file pxelinux.cfg\default
# Acronis Disk
Director 10
LABEL AcronisDD10
MENU LABEL ^3. Acronis Disk Director
10
KERNEL acronis/kernadd.dat
APPEND initrd=acronis/ramdadd.dat
quiet ramdisk_size=32768 vga=788 init=/sbin/init sysboot /active
#
Acronis True Image 9
LABEL AcronisTI9
MENU LABEL ^4. Acronis True
Image 9
KERNEL acronis/kernati.dat
APPEND
initrd=acronis/ramdati.dat quiet ramdisk_size=32768 vga=788
init=/sbin/init sysboot /active
Để tạo lựa chọn khởi động qua PXE
với Paragon Hard Disk Manager 2008, thực hiện theo các bước sau:
-
Download file ParagonHDManager.rar (42.25 MB): mediafire.com 82czzymhwl3
-
Giải nén ParagonHDManager.rar được file .iso. Dùng WinImage mở file
.iso và extract 2 file là vmlinuzp và initrd.gz vào thư mục TFTPRoot\PPM
(nếu chưa có thư mục này, hãy tạo nó).
- Xác nhận lại các thông tin
sau trong file pxelinux.cfg\default:
# Paragon Hard Disk Manager
LABEL
PPM2008
MENU LABEL ^5. Paragon Hard Disk Manager 2008
KERNEL
PPM/vmlinuzp
APPEND initrd=PPM/initrd.gz vga=788 ramdisk_size=42000
Khi
khởi động qua PXE, Paragon Hard Disk Manager có giao diện như sau:
Pargon
Hard Disk Manager 2008
Chú ý:
- Tham số vga=788: giá trị 788
tương ứng với màn hình 800x600 16-bit mầu, giá trị vga=791 sẽ tương ứng
với màn hình 1024x768 16 bit mầu.
- Tham số ramdisk_size là dung
lượng RAM dành cho file initrd tương ứng. ramdisk_size phải lớn hơn kích
thước của file initrd.
- Có thể tham khảo cách thức thêm lựa chọn
khởi động từ một số bản Linux như RIP, DSL trong file Linux\linux.conf.
Như
vậy với lựa chọn khởi động với một số bản Linux, cần lưu ý 2 file là
kernel và initrd. Các file này có thể tìm thấy trên các đĩa live của
chương trình. Ban đầu PXE sẽ nạp kernel vào RAM trên máy tính, sau đó sẽ
nạp initrd vào ramdisk và gọi chương trình trong ramdisk để sử dụng.
5.
PXELinux với WinPE 1.5, 1.6
- Download file
pxelinux_winpe.rar (57.91 MB):
Link: mediafire.com amddgzfyn8k
-
Giải nén file này được các file NTLDR, startrom.0, ntdetect.com,
winpe.iso, winnt.sif. Copy 5 file vào TFTPRoot.
- Xác nhận lại các
thông tin sau trong file pxelinux.cfg\default:
# Boot from Winpe
LABEL
WinPE15
MENU LABEL ^1. Boot from Winpe
KERNEL startrom.0
PXE
nạp WinPE.ISO
Chú ý:
- startrom.0 chính là file khởi động qua
PXE của WinPE 1.5, 1.6.
- File winpe.iso trên được tạo để có thể
khởi động theo kiểu RAM với việc sử dụng 2 file ramdisk.sys và
SETUPLDR.BIN từ Windows 2003 SP1. Việc tạo file này có thể tham khảo bài
viết về WinBuilder với dự án NativePE. Tuy nhiên việc tạo file dạng này
dễ lỗi và dẫn đến không sử dụng để khởi động qua PXE được. Nên tham
khảo mục sau để sử dụng các file WIM.
- File winpe.iso được thêm các
driver cho card mạng, điều khiển ổ cứng để nhận nhiều loại card mới cũng
như các ổ cứng SATA.
- File NTLDR được đổi tên từ file SETUPLDR.BIN.
-
Winnt.sif có chứa tên file winpe.iso. Có thể dùng notepad để thay đổi
tên file khi cần thiết.
6. PXELinux với file WIM
Việc
khởi động với file WIM từ CD, USB, PXE, Harddisk đều thực hiện dễ dàng
hơn so với các phiên bản WinPE trước đó.
* Quá trình khởi
động WIM File qua PXE
Việc khởi động file WIM (WinPE 2.0)
qua PXE được mô tả như hình trên. File Bootmgr.exe nằm trong TFTPRoot,
file pxeboot.0, boot.sdi và các file cần thiết để khởi động qua PXE nằm
trong thư mục TFTPRoot\boot. Các file WIM có thể đặt ở thư mục khác, tuy
nhiên để thuận tiện có thể đặt trong TFTPRoot\boot. Tùy theo tên file
WIM, số lượng file WIM mà ta sẽ phải tạo file BCD nằm trong
TFTPRoot\boot tương ứng.
Trong phần này, sẽ hướng dẫn cấu hình
khởi động với 03 file WIM sau:
- Vista Recovery: Copy file boot.wim
trong thư mục SOURCES trên đĩa DVD cài đặt Vista vào thư mục
TFTPRoot\boot, sau đó đổi tên thành recovery.wim.
- Download Active
Boot Disk theo link sau:
Link:
Part 1 (50Mb): mediafire.com 5z9hltzheiz
Part
2 (50Mb): mediafire.com 8cmnqmmetzz
Part 3
(34MB): mediafire.com bdx3fxmjzez
Sau
khi download, dùng Winrar giải nén được file .iso. Sử dụng WinImage để
mở file .iso và extract file SOURCE\boot.wim này vào thư mục
TFTPRoot\boot. Đổi tên file boot.wim thành file activebd.wim.
-
Download file undelete.rar (94.21 MB):
Link: mediafire.com ca2spjfv1gg
Sau
khi download, giải nén, ta được file undelete.wim. Copy file này vào
thư mục TFTPRoot\boot.
Tạo file BCD với các tham số sau:
- Tên
3 file wim là recovery.wim, activebd.wim, undelete.wim và được copy vào
thư mục boot.
- File boot.sdi nằm trong thư mục boot
Việc tạo
file BCD không thuận tiện khi chỉ gõ lệnh bcdedit. Trong
C:\PXEServer\TFTPRoot đã có sẵn 2 file là bcdedit.exe và CreateBCD.cmd.
File CreateBCD.cmd đã có các lệnh bcdedit để thực hiện việc tạo file
boot\BCD một cách tự động. Dùng notepad để mở file này, chú ý các dòng
sau:
set BCD-File=boot\BCD
set WIM-FileA=recovery.wim
set
WIM-FileB=activebd.wim
set WIM-FileC=undelete.wim
Nếu đặt tên file
wim khác, chỉ cần thay đổi ở tham số tương ứng.
File
CreateBCD.cmd
- Xác nhận lại các thông tin sau trong file
pxelinux.cfg\default:
# Boot from WIM files
LABEL WinPE20
MENU
LABEL ^2. Boot from WIM files
KERNEL boot/pxeboot.0
Khi khởi
động máy tính với PXE, trong menu chính, chọn "2. Boot from WIM files",
máy tính sẽ gọi BCD mới được tạo trên để đưa ra menu có 3 lựa chọn khởi
động như hình dưới.
Menu
BCD
Khi chọn một trong 3 lựa chọn trên PXEClient sẽ download các
file WIM thông qua TFTP vào RAMDISK, kết thúc việc download, sẽ chạy
file này.
Download
file WIM qua TFTP
Nhận xét
Các lựa chọn khởi
động qua mạng với memdisk, khởi động với winpe 1.5, 1.6 , khởi động với
file WIM (winpe2.0), khởi động với 1 số bản Linux đều có chung 1 điểm
là sử dụng RAM (ramdisk) để nạp toàn bộ file tương ứng. Do đó nó có
những ưu điểm, nhược điểm sau:
- Kích thước file nạp lên ramdisk
không được quá lớn. Nếu RAM của máy tính khoảng 384-512 MB thì nên tạo
các file nạp lên RAM đó khoảng 200Mb.
- Download qua mạng với TFTP
nhanh hay chậm? Với file khoảng 200 Mb, việc download trong các mạng LAN
hiện nay với card mạng, switch 10/100 Mb đều rất nhanh.
- Sau khi
nạp lên ramdisk, máy Client sẽ có thể hoạt động độc lập mà không phụ
thuộc vào PXE Server. Do hoạt động trên RAM, nên chạy khá nhanh.
Với
việc sử dụng TFTPD32 không cần cài đặt, PXE Server có tính portable.
Sau khi tạo PXE Server, có thể lưu cả thư mục C:\PXEServer và copy sang
bất kỳ máy nào trong mạng để có thể sử dụng.
Với việc sử dụng
pxelinux, bạn dễ dàng tạo được các lựa chọn khởi động cho máy client
bằng cách chỉnh sửa các file config tương ứng.
Chúc bạn thành công
Chia sẽ nhớ ghi rõ nguồn
[You must be registered and logged in to see this link.]
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.
PXE
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):
Link:
mediafire.com 91drthtt1nh
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.
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.
2.
Khởi động máy tính từ card mạng với PXE boot code
Trên các
laptop, server, hoặc các máy tính lắp ráp ngày nay đều có card mạng có
PXE boot code cho phép khởi động qua mạng. Có thể vào BIOS của máy tính
để kiểm tra tính năng PXE đã được cho phép (enable) hay chưa.
Để
khởi động máy tính từ PXE, thông thường khi bật máy tính bấm phím F12,
sẽ xuất hiện danh mục Boot Device của máy tính, khi đó chọn Boot Device
là card mạng.
Network
Booting
Trên hình trên, khi máy tính khởi động từ card mạng, máy
tính sẽ dò tìm DHCP Server của PXE Server trong LAN, khi dò thấy tại IP
192.168.1.101 (địa chỉ của máy cài TFTPD32), PXE Client sẽ gửi yêu cầu
và nhận IP do DHCP của PXE Server cung cấp. Sau đó sẽ nạp file
pxelinux.0, để gọi menu.c32 nạp file cấu hình của pxelinux là
pxelinux.cfg\default và đưa ra menu với các lựa chọn như hình dưới (thư
mục pxelinux.cfg nằm trong mục gốc của TFTP Server là
C:\PXEServer\TFTPRoot):
Menu
chính của PXEServer
Trên menu chính của PXEServer có 10 lựa chọn
như sau:
- 0. Boot from Harddisk: Khởi động từ ổ cứng của máy
tính. Có thể dùng notepad để mở file pxelinux.cfg\default và tìm các
thông tin sau:
# Boor from Harddisk
LABEL LOCAL
MENU LABEL ^0.
Boot from Harddisk
KERNEL chain.c32 hd0 1
Trong cấu hình để khởi
động từ harddisk, cần chú ý đến dòng "Kernel chain.c32 hd0 1". Với việc
sử dụng chain.c32 (của syslinux) cùng với tham số "hd0 1" sẽ cho phép
gọi phân vùng 1 của ổ cứng thứ nhất (hd0) để khởi động. Có thể thay đổi
các giá trị để khởi động từ ổ cứng khác cũng như phân vùng khác trên ổ
cứng.
- Các mục 1-7 sẽ được hướng dẫn chi tiết ở phía dưới, mục "8.
Boot Linux Tools" được hướng dẫn như một lựa chọn thêm để có thể sử dụng
một số bản Linux nhỏ.
- 10. REBOOT: Cho phép reboot lại máy tính.
Khi mở file cấu hình pxelinux.cfg\default, sẽ có các thông tin sau:
#
Reboot
LABEL REBOOT
MENU LABEL ^10. REBOOT
KERNEL reboot.c32
Trong
cấu hình trên, sử dụng kernel là reboot.c32 để máy tính có thể khởi
động lại.
- 9. Boot Other Tools: Khi chọn lựa chọn này, pxelinux sẽ
gọi file cấu hình others.conf trong thư mục Image để hiển thị ra menu
Boot Other Tools.
Menu
Boot Other Tools
Menu "Boot Other Tools" cho phép máy tính khởi
động từ các chương trình như Active Boot Disk (phiên bản DOS), HDD
Regenerator, Ghost, Smart Boot Manager. Các chương trình này đã được kèm
theo trong file nén và được lưu thành các file .gz ở thư mục Image.
Cách thức cấu hình sẽ được hướng dẫn ở mục Memdisk.
Như vậy với
file nén PXEServer_Base.rar download ở trên, người đọc đã có thể sử dụng
được nhưng lựa chọn cơ bản của PXE. Tuy nhiên còn có nhiều lựa chọn
chưa có, và các phần dưới sẽ hướng dẫn cách thức tạo thêm những lựa chọn
đó.
3. Memdisk
Memdisk là một file nằm trong
thư mục TFTPRoot\Image. Memdisk được các chương trình quản lý boot như
syslinux, isolinux, pxelinux, grub sử dụng để nạp một file image của đĩa
mềm, của ổ cứng.
Memdisk với PXELinux hỗ trợ các dạng file image của
đĩa mềm chuẩn (kích thước tối đa là 2880 K) và hỗ trợ chuẩn nén gzip.
Tham khảo ví dụ sau:
# Active Boot Disk
LABEL ACTIVE
MENU LABEL
^0. Active Boot Disk V2.1 DOS
KERNEL image/memdisk
APPEND
initrd=image/active.gz
File active.gz là file active.img được nén
theo chuẩn gzip để giảm kích thước file khi truyền qua mạng. Trên
Windows, có thể dùng chương trình quản lý file quen thuộc là Total
Commander để nén file .img thành file .gz.
Total
Commander nén file .gz
Cũng có thể sử dụng memdisk với các file
image của ổ cứng dạng thực (raw) như các file .dsk. Trong thư mục
TFTPRoot\Image có file dos32.gz là file dos32.dsk được nén chuẩn gzip.
File dos32.dsk là một file image của ổ cứng 32 MB có sẵn hệ điều hành
DOS và các chương trình như GHOST, NTFS4DOS,... Tham khảo cách sử dụng
trong file pxelinux.cfg\default như sau:
# Boot DOS98
LABEL DOS98
MENU
LABEL ^6. Boot DOS98 (Ghost, NTFS, ...)
KERNEL image/memdisk
APPEND
initrd=image/dos32.gz harddisk
Trong ví dụ này, chú ý là tham số
harddisk đặt ở dòng APPEND. Nếu không dùng tham số harddisk, memdisk sẽ
hiểu đó là một file image của floppy và file .dsk không thể khởi động
được. Đây là điểm khác biệt khi sử dụng memdisk so với syslinux và grub.
Với
việc sử dụng file .dsk, có thể tạo thêm lựa chọn để khởi động với đĩa
Hiren V9.3 theo các bước sau:
- Download file hiren93.rar (62.36 MB):
mediafire.com fw2uj241znh
-
Giải nén file hiren93.rar, được file hiren93.dsk. Dùng Total Commander
để nén file hiren93.dsk thành file hiren93.gz (file này cũng có thể dùng
được với GRUB4DOS). Copy file hiren93.gz vào thư mục TFTPRoot\Image.
-
Xác nhận lại các thông tin sau trong file pxelinux.cfg\default:
#
Boot HIREN V93
LABEL HIREN
MENU LABEL ^7. Hiren Boot Disk V9.3
KERNEL
image/memdisk
APPEND initrd=image/hiren93.gz harddisk
Như vậy
khi lựa chọn khởi động file image với memdisk, máy khởi động qua PXE sẽ
download file image thông qua giao thức TFTP và máy tính sẽ khởi động
với file image này. Xem một ví dụ khởi động với file image dưới đây:
Khởi
động với file image qua PXE
4. PXELinux với một số bản
Linux
Các bản Linux được hướng dẫn ở đây là Acronis Disk
Directory, Acronis True Image, Paragon Partition Manager. Đó là những
bản Linux khá quen thuộc đối với người dùng Windows.
Để tạo các
lựa chọn khởi động qua PXE với Acronis, thực hiện theo các bước sau:
-
Download file acronis_01.rar (19.79 MB): mediafire.com 6zmypb8ojcb
-
Giải nén file acronis_01.rar, được các file kernadd.dat, ramdadd.dat,
kernati.dat, ramdati.dat. Copy các file này vào trong thư mục
TFTPRoot\acronis (nếu thư mục này chưa có, hãy tạo nó).
- Xác nhận
lại các thông tin sau trong file pxelinux.cfg\default
# Acronis Disk
Director 10
LABEL AcronisDD10
MENU LABEL ^3. Acronis Disk Director
10
KERNEL acronis/kernadd.dat
APPEND initrd=acronis/ramdadd.dat
quiet ramdisk_size=32768 vga=788 init=/sbin/init sysboot /active
#
Acronis True Image 9
LABEL AcronisTI9
MENU LABEL ^4. Acronis True
Image 9
KERNEL acronis/kernati.dat
APPEND
initrd=acronis/ramdati.dat quiet ramdisk_size=32768 vga=788
init=/sbin/init sysboot /active
Để tạo lựa chọn khởi động qua PXE
với Paragon Hard Disk Manager 2008, thực hiện theo các bước sau:
-
Download file ParagonHDManager.rar (42.25 MB): mediafire.com 82czzymhwl3
-
Giải nén ParagonHDManager.rar được file .iso. Dùng WinImage mở file
.iso và extract 2 file là vmlinuzp và initrd.gz vào thư mục TFTPRoot\PPM
(nếu chưa có thư mục này, hãy tạo nó).
- Xác nhận lại các thông tin
sau trong file pxelinux.cfg\default:
# Paragon Hard Disk Manager
LABEL
PPM2008
MENU LABEL ^5. Paragon Hard Disk Manager 2008
KERNEL
PPM/vmlinuzp
APPEND initrd=PPM/initrd.gz vga=788 ramdisk_size=42000
Khi
khởi động qua PXE, Paragon Hard Disk Manager có giao diện như sau:
Pargon
Hard Disk Manager 2008
Chú ý:
- Tham số vga=788: giá trị 788
tương ứng với màn hình 800x600 16-bit mầu, giá trị vga=791 sẽ tương ứng
với màn hình 1024x768 16 bit mầu.
- Tham số ramdisk_size là dung
lượng RAM dành cho file initrd tương ứng. ramdisk_size phải lớn hơn kích
thước của file initrd.
- Có thể tham khảo cách thức thêm lựa chọn
khởi động từ một số bản Linux như RIP, DSL trong file Linux\linux.conf.
Như
vậy với lựa chọn khởi động với một số bản Linux, cần lưu ý 2 file là
kernel và initrd. Các file này có thể tìm thấy trên các đĩa live của
chương trình. Ban đầu PXE sẽ nạp kernel vào RAM trên máy tính, sau đó sẽ
nạp initrd vào ramdisk và gọi chương trình trong ramdisk để sử dụng.
5.
PXELinux với WinPE 1.5, 1.6
- Download file
pxelinux_winpe.rar (57.91 MB):
Link: mediafire.com amddgzfyn8k
-
Giải nén file này được các file NTLDR, startrom.0, ntdetect.com,
winpe.iso, winnt.sif. Copy 5 file vào TFTPRoot.
- Xác nhận lại các
thông tin sau trong file pxelinux.cfg\default:
# Boot from Winpe
LABEL
WinPE15
MENU LABEL ^1. Boot from Winpe
KERNEL startrom.0
PXE
nạp WinPE.ISO
Chú ý:
- startrom.0 chính là file khởi động qua
PXE của WinPE 1.5, 1.6.
- File winpe.iso trên được tạo để có thể
khởi động theo kiểu RAM với việc sử dụng 2 file ramdisk.sys và
SETUPLDR.BIN từ Windows 2003 SP1. Việc tạo file này có thể tham khảo bài
viết về WinBuilder với dự án NativePE. Tuy nhiên việc tạo file dạng này
dễ lỗi và dẫn đến không sử dụng để khởi động qua PXE được. Nên tham
khảo mục sau để sử dụng các file WIM.
- File winpe.iso được thêm các
driver cho card mạng, điều khiển ổ cứng để nhận nhiều loại card mới cũng
như các ổ cứng SATA.
- File NTLDR được đổi tên từ file SETUPLDR.BIN.
-
Winnt.sif có chứa tên file winpe.iso. Có thể dùng notepad để thay đổi
tên file khi cần thiết.
6. PXELinux với file WIM
Việc
khởi động với file WIM từ CD, USB, PXE, Harddisk đều thực hiện dễ dàng
hơn so với các phiên bản WinPE trước đó.
* Quá trình khởi
động WIM File qua PXE
Việc khởi động file WIM (WinPE 2.0)
qua PXE được mô tả như hình trên. File Bootmgr.exe nằm trong TFTPRoot,
file pxeboot.0, boot.sdi và các file cần thiết để khởi động qua PXE nằm
trong thư mục TFTPRoot\boot. Các file WIM có thể đặt ở thư mục khác, tuy
nhiên để thuận tiện có thể đặt trong TFTPRoot\boot. Tùy theo tên file
WIM, số lượng file WIM mà ta sẽ phải tạo file BCD nằm trong
TFTPRoot\boot tương ứng.
Trong phần này, sẽ hướng dẫn cấu hình
khởi động với 03 file WIM sau:
- Vista Recovery: Copy file boot.wim
trong thư mục SOURCES trên đĩa DVD cài đặt Vista vào thư mục
TFTPRoot\boot, sau đó đổi tên thành recovery.wim.
- Download Active
Boot Disk theo link sau:
Link:
Part 1 (50Mb): mediafire.com 5z9hltzheiz
Part
2 (50Mb): mediafire.com 8cmnqmmetzz
Part 3
(34MB): mediafire.com bdx3fxmjzez
Sau
khi download, dùng Winrar giải nén được file .iso. Sử dụng WinImage để
mở file .iso và extract file SOURCE\boot.wim này vào thư mục
TFTPRoot\boot. Đổi tên file boot.wim thành file activebd.wim.
-
Download file undelete.rar (94.21 MB):
Link: mediafire.com ca2spjfv1gg
Sau
khi download, giải nén, ta được file undelete.wim. Copy file này vào
thư mục TFTPRoot\boot.
Tạo file BCD với các tham số sau:
- Tên
3 file wim là recovery.wim, activebd.wim, undelete.wim và được copy vào
thư mục boot.
- File boot.sdi nằm trong thư mục boot
Việc tạo
file BCD không thuận tiện khi chỉ gõ lệnh bcdedit. Trong
C:\PXEServer\TFTPRoot đã có sẵn 2 file là bcdedit.exe và CreateBCD.cmd.
File CreateBCD.cmd đã có các lệnh bcdedit để thực hiện việc tạo file
boot\BCD một cách tự động. Dùng notepad để mở file này, chú ý các dòng
sau:
set BCD-File=boot\BCD
set WIM-FileA=recovery.wim
set
WIM-FileB=activebd.wim
set WIM-FileC=undelete.wim
Nếu đặt tên file
wim khác, chỉ cần thay đổi ở tham số tương ứng.
File
CreateBCD.cmd
- Xác nhận lại các thông tin sau trong file
pxelinux.cfg\default:
# Boot from WIM files
LABEL WinPE20
MENU
LABEL ^2. Boot from WIM files
KERNEL boot/pxeboot.0
Khi khởi
động máy tính với PXE, trong menu chính, chọn "2. Boot from WIM files",
máy tính sẽ gọi BCD mới được tạo trên để đưa ra menu có 3 lựa chọn khởi
động như hình dưới.
Menu
BCD
Khi chọn một trong 3 lựa chọn trên PXEClient sẽ download các
file WIM thông qua TFTP vào RAMDISK, kết thúc việc download, sẽ chạy
file này.
Download
file WIM qua TFTP
Nhận xét
Các lựa chọn khởi
động qua mạng với memdisk, khởi động với winpe 1.5, 1.6 , khởi động với
file WIM (winpe2.0), khởi động với 1 số bản Linux đều có chung 1 điểm
là sử dụng RAM (ramdisk) để nạp toàn bộ file tương ứng. Do đó nó có
những ưu điểm, nhược điểm sau:
- Kích thước file nạp lên ramdisk
không được quá lớn. Nếu RAM của máy tính khoảng 384-512 MB thì nên tạo
các file nạp lên RAM đó khoảng 200Mb.
- Download qua mạng với TFTP
nhanh hay chậm? Với file khoảng 200 Mb, việc download trong các mạng LAN
hiện nay với card mạng, switch 10/100 Mb đều rất nhanh.
- Sau khi
nạp lên ramdisk, máy Client sẽ có thể hoạt động độc lập mà không phụ
thuộc vào PXE Server. Do hoạt động trên RAM, nên chạy khá nhanh.
Với
việc sử dụng TFTPD32 không cần cài đặt, PXE Server có tính portable.
Sau khi tạo PXE Server, có thể lưu cả thư mục C:\PXEServer và copy sang
bất kỳ máy nào trong mạng để có thể sử dụng.
Với việc sử dụng
pxelinux, bạn dễ dàng tạo được các lựa chọn khởi động cho máy client
bằng cách chỉnh sửa các file config tương ứng.
Chúc bạn thành công
Chia sẽ nhớ ghi rõ nguồn
[You must be registered and logged in to see this link.]