(+84) 463.28.7979

NT Loader and boot.ini file


Hệ thống Windows NT có thể được boot từ chỉ một phân vùng chính (primary partition) hoặc từ 1 storage khác, tuy nhiên, các file hệ thống hệ điều hành NT có thể được lưu tại phân vùng chính hoặc phân vùng logic (logical volume).

NT boot process

Nó cũng không chỉnh sửa Master Boot Code được lưu trong MBR (Master Boot Record) trong boot disk, và nó sử dụng một phương pháp chuẩn BIOS cho việc đọc Volume Boot Sector. Bản thân NT cũng không yêu cầu primary partition phải được active, tuy nhiên, khi Master Bood Code mặc định được sử dụng, th́ primary partition bắt buộc phải được active. Tính chất – thuộc tính quản lư này của NT cũng được một số hệ điều hành khác sử dụng như Solaris, Linux, FreeBSD.

Các file hệ thống cho phép sử dụng trên NT là FAT16 – NTFS cho NT 4.0, FAT32-NTFS cho Windows 2000, XP và Server. Các file dưới đây được sử dụng trong quá tŕnh boot của NT

– ntldr

– ntdetect.com

– boot.ini
– (optionally) ntbootndd.sys

Tất cả các file trên được đặt tại root của boot partition, boot partition này cũng không nhất thiết phải cùng 1 partition mà Windows NT được setup. Trong một số trường hợp đặc biệt, chúng thường được đặt trong một floppy disk hoặc 1 storage device nào đó. File Ntldr chứa chương tŕnh boot chính,

NT Loader cho phép đọc không chỉ Windows NT, mà là hầu hết các máy tính tương thích hệ thống IBM PC. Để load các hệ điều hành khác ngoài Windows NT, một file chứa VBS hoặc MBR (Master Boot Record) đặc trưng cho các hệ điều hành này được yêu cầu. User sẽ lựa chọn hệ điều hành mong muốn từ một menu text load bởi NL Loader. Quá tŕnh lựa chọn hệ điều hành để boot trong NT Loader sẽ được cấu h́nh bởi boot.ini file.

Boot.ini file

File boot.ini chứa đựng cấu h́nh của quá tŕnh boot NT, nó là một file đặc trưng của NT – Windows INI file. Nó là một tập hợp các đoạn (section) được trả lại giá trị bởi sự lựa chọn của user. Bởi bản thân nó có giá trị read-only, do đó, cần phải chuyển giá trị read-only thành read-write trước khi sửa lại nó. Trong bài viết này, tôi không đưa ra toàn bộ nội dung, mà chỉ gói gọn trong một phần nhỏ nội dung file boot.ini này.

Dưới đây là một ví dụ về boot.ini file

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(1)partition(1)\WINNT

[operating systems]

multi(0)disk(0)rdisk(1)partition(1)\WINNT=”MS Windows NT 4.0″

multi(0)disk(0)rdisk(1)partition(1)\WINNT=”MS Windows NT 4.0 [VGA mode]” /basevideo /sos

C:\solaris.bin=”Sun Solaris”

C:\dos.bin=”MS DOS 6.22″
C:\floppy.bin=”Boot floppy A:”
Thông thường, nó được phân chia thành 2 section, một dành cho boot loader và một dành cho operating systems. Giải thích về nghĩa của các biến trong phần đầu tiên như sau:
Default: Chỉ định hệ điều hành mặc định được load khi một user không đưa ra lựa chọn nào trên menu text của NT loader.
Timeout: Chỉ định thời gian bằng giây, để đợi user lựa chọn trước khi hệ điều hành mặc định được lựa chọn
Với các giá trị tại section thứ 2 dành cho hệ điều hành, dựa theo tên của chúng để cấu h́nh NT loader nhằm lựa chọn và xác định các item dành cho menu text. Ví dụ một form chứa đựng cấu h́nh như sau:

location = menu-item { option }

where

location

Specifies the location of either, NT System Root, or the file containing the boot code of other then NT operating system. Accordingly, two different syntaxes are used, which we explain further.

menu-item

Text displayed in the NT Loader menu.

option

A switch that controls NT boot process (cf. [Russinovich]). It is possible to specify either none, one, or more switches in one entry. Commonly used are:

basevideo

Standard VGA display driver is used in GUI mode

sos

Print information about what drivers are being loaded as the system boots.

Booting NT

Để boot Windows NT, giá trị đưa vào section của Operating System trong boot.ini bắt buộc phải chứa giá trị location, là giá trị xác định location của NT System Root. NT System Root là một thư mục chứa các file hệ thống của Windows NT, sử dụng biến môi trường (environment variable) NT %SystemRoot” để chỉ tới NT System Root. Khi chỉ tới NT System Root, sử dụng cú pháp như sau:

( multi( X ) | scsi( X ) ) disk( Y ) rdisk( Z ) partition( W ) win-nt-dir

Tham số multi chỉ ra việc xác nhận cả 2 IDE và SCSI HDD, và nó cũng cho Windows NT biết việc dựa vào BIOS của computer nhằm để boot hệ thống. Và nó cũng có nghĩa NT Loader sử dụng ngắt thứ 13 để gọi và nhằm t́m kiếm, load kernel của hệ điều hành và các file cần thiết khác nhằm boot NT. Trong trường hợp X, Y, Z có nghĩa sau:

X là số thứ tự của bộ điều biến, có thể có giá trị là 0 nếu như BIOS xác nhận chỉ có duy nhất một HDD với controller thông qua ngắt thứ 13.

Y luôn là 0 khi BIOS chỉ định tham số này thông qua ngắt thứ 13

Z là số thứ tự của ổ đĩa trên bộ điều biến, có giá trị dao động giữa 0 và 3

W là số các partition. Tất cả các partition sẽ nhận được 1 giá trị là số, ngoại trừ việc ta chỉ định số 5 (Extended DOS) và 0 (unused partition). Partition chính sẽ được đánh số trước tiên, sau đó là các logical volume. Giá trị đầu tiên cho W là 1, khác hẳn với các giá trị dành cho X, Y và Z bắt đầu từ 0.

Khi sử dụng tham số multi, cần lưu ư các vấn đề sau đây:

– Trong trường hợp hệ thống chỉ có IDE/ATA, NT boot loader sẽ boot hệ điều hành từ 1 trong 4 HDD kết nối tới dual-channel controller (mà ta quen gọi là khe cắm) đầu tiên.
– Trong một hệ thống chỉ có SCSI, NT loader sẽ boot hệ điều hành từ 2 ổ đĩa đầu tiên trên SCSI controller đầu tiên mà controller nào được BIOS load trước.
– Trong trường hợp hệ thống có cả 2 SCSI và IDE, NT Loader sẽ chỉ boot hệ điều hành từ IDE/ATA.

Tham số SCSI chỉ ra rằng, NT Loader sẽ load một ổ đĩa sử dụng cho mục đích boot (boot device driver) và sử dụng ổ đĩa này để truy cập vào boot partition. Device driver thường được sử dụng trong file ntbootdd.sys, là một bản copy của controller device được sử dụng.

Sưu tầm

Leave a Reply

Your email address will not be published. Required fields are marked *