Thiết lập nhiều hệ điều hành trong một máy là một nhu cầu cần thiết cho rất nhiều bạn nghiên cứu và học tập cũng như là một mốt...thời thượng để chúng ta thưởng thức từng cái mạnh của mỗi hệ điều hành. Mục đích của bài nầy là giới thiệu đến các bạn cách cài3 hệ điều hành Windows ME, Windows 2k, và Linux RedHat 7.1. Sau đó dùng boot loader của Win2k làm phần chính để điều khiển các hệ điều hành. Nhưng trước khi đi vào càimọi thứ tui xin trình bày một số điểm cần chú ý cho các bạn chưa hay không quen biết lắm với việc cài đặt nhiều hệ điều hành.
Master Boot Record
Là một thuật ngữ được dân computer hay gọi là MBR (bạn sẽ thấy họ nhắc đến những chữ viết tắc nầy nhiều trên internet hay trao đổi). Ðây chỉ là một mảng dữ liệu về các partion trong máy, không hơn không kém!
Master Boot Record được tạo do hệ điều hành và dĩ nhiên mỗi hệ điều hành đều có cách tạo riêng biệt. Ví dụ, WinNT4 và Win2k sẽ có file boot.ini dùng như Master Boot Record. Mỗi khi khởi động máy, một chương trình chuyên làm việc loading hệ điều hành của WinNT là NT bootloader (một file loại .exe) sẽ dò tìm nội dung của file boot.ini để load hệ hiều hành cần thiết cho người dùng.
Riêng Windows 98 và Windows ME thì có chút khác biệt, chúng không có chương trình tìm hệ điều hành như NT bootloader và sẽ mặc nhiên load hệ điều hành tại phần partion đầu tiên trong hard disk, thông thường là phần partition C trong hard disk.
Theo mặc định thì MBR sẽ luôn được lưu giử tại ổ dĩa cứng thấp nhất (nếu bạn có nhiều ổ dĩa cứng thứ tự là 0,1,2....) và partition nhỏ nhất của nó (partition đầu tiên trong ổ dĩa số 0, để dể cho ví dụ, tui tạm gọi nơi nầy là Boot Table). Ðây là một nơi rất quan trọng để BIOS tìm đến khi máy vừa khởi động. tui cũng xin nhắc lại để các bạn khỏi nhầm lẫn giửa MBR và nơi để MBR. Một máy tính có thể có nhiều MBR (khi cài đặt một hệ điều hành, nhất là linux, bạn có thể cài MBR tại Boot Sector chứ không nhất thiết là tại Boot Table) tuy nhiên BIOS chỉ tìm đến Boot Table để dò tìm hệ điều hành mà thôi! Một lổi lầm thường thấy khi bạn cài đặt nhiều hệ điều hành là cài sau khi cài đặt linux vào thì không vào được hệ thống Windows, và ngược lại nếu tái cài đặt windows thì Linux ... mất tiêu luôn! lý do là bạn khi cài đặt các hệ điều hành, thằng nào cũng muốn thảy cái MBR của nó vào Boot Table cả! cho nên thằng nào cài đặt sau sẽ xoá hết thông tin của thằng trước đó! tui nghĩ đây là gút mắc to nhất cho các bạn trong việc cài đặt nhiều hề điều hành, tuy nhiên chúng ta sẽ có cách dàn xếp ổn thoả để cho cả 3 hệ thống cùng tồn tại. Ðó cũng là trọng tâm của bài viết.
Boot Sector
Boot Sector thật ra cũng là một mãng dữ liệu chứa thông tin về một partition nào đó, mỗi khi bạn tạo một partition mới thì một Boot Sector sẽ tạo kèm theo trên đầu nó để chứ thông tin về cái partition đó, ví dụ, Boot Sector sẽ cho bạn biết có bao nhiêu Megabyte trong partition, từ điạ chỉ đầu và cuối của nó trong hard disk, còn trống bao nhiêu.... Dĩ nhiên là cấu trúc của mỗi Boot Sector sẽ khác nhau tùy theo hệ điều hành bạn dùng để tạo nó. Ðể mô tả thêm chính xác vị trí của MBR và các Boot Sector xin xem hình
Bàn lại vấn đề
Tới đây tui xin bàn lại vấn đề cài đặt 3 hệ điều hành (WinME hay Win98, Win2k, và Linux RedHat 7.1). Tiến trình khởi động của một máy tính bao gồm trước tiên là khởi động BIOS từ Motherboard, BIOS sẽ "nhảy" (tìm) đến Boot Table (chứa MBR) để tìm và khởi động hệ điều hành dựa theo thông tin từ MBR. Nếu có nhiều hệ điều hành, BIOS sẽ tự động khởi động hệ điều hành đầu tiên mà nó tìm thấy.
Dĩ nhiên là xong xong với quá trình nầy BIOS sẽ kiểm tra tín hiệu nhập từ bàn phím và kết hợp với thông tin từ MBR để chọn (và khởi động) hệ điều hành. Bạn có thể chọn khởi động hệ điều hành bạn thích bằng cách can thiệp từ bàn phím.
Tới đây bạn sẽ thấy một vấn đề thường gặp khi chúng ta cài đặt hai hệ thống Windows và Linux là sự tranh dành việc quản lý Boot Table. Ðối với hệ thống Windows thì hầu như bạn không gặp cản trỡ nhiều khi cài đặt hai hệ điều hành chung với nhau, theo luật thông thường thì bạn nên cài đặt hệ điều hành phiên bản mới hơn sau cùng, ví dụ, bạn nên cài đặt Win98 hay WinME trước, sau đó mới cài đặt Win2k bởi vì Win2k mới hơn. Một đặt điểm của đáng trách của hệ thống Windows là chúng chỉ cài đặt MBR tại Boot Table mà thôi trong khi đó hệ thống Linux cho phép bạn tùy ý cài đặt MBR tại Boot Table hay tại Boot Sector. Ðể dàn xếp xự tranh dành nầy, tui sẽ cài MBR của hệ thống windows vào Boot Table và cài MBR của Linux vào Boot Sector của nó. Sau đó tìm cách sửa MBR của hệ thống windows để nó cộng thêm Linux trong khi khởi động máy.
Tiến hành cài đặt
Trước tiên bạn nên có 2 cái CD linux 7.1 và các CD của windows ME, win2k .... tui nêu ra một số tình huống căn bạn như sau để bạn tiện tham khảo:
Tình huống thứ nhất: nếu bạn đã có sẵn hai hệ thống Windows (Win98 hay WinME, và Win2k) trên một cái HDD. Bạn kiểm tra xem hai hệ thống kia đã chiếm hơn 8032MB chưa? Tương tự như hệ thống NT4, Linux Redhat 7.1 sẽ không nhận dạng được dĩa cứng trên 8Gig. Bạn sẽ có thể gặp khó khăn khi tạo partition cho Linux. Riêng Mandrake 8.0 thì có khả năng nhận dạng được tất cả. Ðể tránh tình trạng nầy bạn nên cài Linux lên partition của Win2k (bạn sẽ xoá Win2k! Chú ý backup dữ liệu!) sau đó cài Win2k lại sau vì Win2k có thể nhận dạng partition nằm ngoài 8Gig.
Tình huống thứ hai: nếu bạn đã có sẵn hai hệ thống Windows (Win98 hay WinME, và Win2k) và có 2 ổ dĩa cứng! Bạn có thể cài Linux vào một trong hai ổ dĩa cứng kia miễn sau nó phải nằm trong phạm vi 8Gig là tốt.
Tình huống thứ ba: bạn cài mới tất cả!
Chỉnh xửa MBR
Trước tiên bạn nên dùng floppy disk cho linux để khởi động vào linux. Sau khi log in (xin xem bài tutorial) bạn nên làm một số việc sau1) Tìm một cái floppy (được format với windows hay DOS) còn trống ít nhất là 1k2) bạn (tui đánh giá là bạn biết dùng một số lệnh linux căn bản, giống như dos, xem thêm ở tutorital một số lệnh căn bản của Linux) dùng editor nào đó như vi để mở file sau /etc/lilo.conf3) sau đó nhìn hàng đầu xem cái boot sector của linux nằm ở đâu, bạn sẽ thấy đại khái như boot=/dev/hdxy. Trong đó x là số thứ tự hard disk cuả bạn (a, b, c, ...) và y sẽ là số thứ tự của partition (1, 2, 3, ....). Giả sử bạn biết kết quả là /dev/hda2 đi nhe! (để là ví dụ)4) tạo một directory /tmp (nếu chưa có) sau đó mount cái floppy disk (FAT system) vào directory /tmp rồi copy 512 byte đầu của cái partition (/dev/hda2) bạn vừa tìm được vào floppy. Nếu bạn không chắc thì làm như sau: bỏ đĩa floppy vào ổ đĩa và gõ các lệnh:mount /dev/fd0 /tmp -t vfat
dd if=/dev/hda2 of=/tmp/linux.bin bs=512 count=1
umount /dev/fd05) tới đây bạn sẽ có một file tên là linux.bin trong floppy disk! Lấy dĩa floppy ra, reboot lại máy để vào Win2k6) copy cái file linux.bin vào nơi nào đó trong ổ dĩa của Windows, ví dụ bạn bỏ vào C: đi nhé.
7) bạn dùng 1 chương trình text editor nào đó để open file boot.ini (chú ý đây là file hệ thống nên windows sẽ làm ẩn nó, bạn phải đặt options là hiển thị các file ẩn thì mới thấy nó được), thêm vào một hàng như thế nầy: c:\linux.bin="Welcome to my RedHat Linux"
8) reboot lại máy, bạn sẽ thấy một menu với ba hệ điều hành như ý bạn!
Chú ý:
dd: dump disk, nó tương tự như lệnh copy của dos nhưng dd sẽ copy theo kiểu binay có nghĩa là copy một cách chính xác machine data của đĩa.
a2: là đánh dấu mang ý nghĩa ổ dĩa cứng đầu tiên và partition số 2, nhớ thay đổi chỉ số nầy phù hợp với vị trí cái linux của bạn nhé!!!!if: input file, chỉ tên của input file, trong tường hợp nầy là ổ thứ tự của ổ dĩa cứng và partition nơi linux đang nằmof: ouput file, tên của output filebs: boot sector, chỉ số byte của một sector
count: đếm số lần copy
--> toàn bộ ý nghĩa của lệnh dd trên là copy cái Boot Sector (512 bytes) của linux vào floppy disk và đặt tên nó là linux.bin mà thôi!
Master Boot Record
Là một thuật ngữ được dân computer hay gọi là MBR (bạn sẽ thấy họ nhắc đến những chữ viết tắc nầy nhiều trên internet hay trao đổi). Ðây chỉ là một mảng dữ liệu về các partion trong máy, không hơn không kém!
Master Boot Record được tạo do hệ điều hành và dĩ nhiên mỗi hệ điều hành đều có cách tạo riêng biệt. Ví dụ, WinNT4 và Win2k sẽ có file boot.ini dùng như Master Boot Record. Mỗi khi khởi động máy, một chương trình chuyên làm việc loading hệ điều hành của WinNT là NT bootloader (một file loại .exe) sẽ dò tìm nội dung của file boot.ini để load hệ hiều hành cần thiết cho người dùng.
Riêng Windows 98 và Windows ME thì có chút khác biệt, chúng không có chương trình tìm hệ điều hành như NT bootloader và sẽ mặc nhiên load hệ điều hành tại phần partion đầu tiên trong hard disk, thông thường là phần partition C trong hard disk.
Theo mặc định thì MBR sẽ luôn được lưu giử tại ổ dĩa cứng thấp nhất (nếu bạn có nhiều ổ dĩa cứng thứ tự là 0,1,2....) và partition nhỏ nhất của nó (partition đầu tiên trong ổ dĩa số 0, để dể cho ví dụ, tui tạm gọi nơi nầy là Boot Table). Ðây là một nơi rất quan trọng để BIOS tìm đến khi máy vừa khởi động. tui cũng xin nhắc lại để các bạn khỏi nhầm lẫn giửa MBR và nơi để MBR. Một máy tính có thể có nhiều MBR (khi cài đặt một hệ điều hành, nhất là linux, bạn có thể cài MBR tại Boot Sector chứ không nhất thiết là tại Boot Table) tuy nhiên BIOS chỉ tìm đến Boot Table để dò tìm hệ điều hành mà thôi! Một lổi lầm thường thấy khi bạn cài đặt nhiều hệ điều hành là cài sau khi cài đặt linux vào thì không vào được hệ thống Windows, và ngược lại nếu tái cài đặt windows thì Linux ... mất tiêu luôn! lý do là bạn khi cài đặt các hệ điều hành, thằng nào cũng muốn thảy cái MBR của nó vào Boot Table cả! cho nên thằng nào cài đặt sau sẽ xoá hết thông tin của thằng trước đó! tui nghĩ đây là gút mắc to nhất cho các bạn trong việc cài đặt nhiều hề điều hành, tuy nhiên chúng ta sẽ có cách dàn xếp ổn thoả để cho cả 3 hệ thống cùng tồn tại. Ðó cũng là trọng tâm của bài viết.
Boot Sector
Bàn lại vấn đề
Tới đây tui xin bàn lại vấn đề cài đặt 3 hệ điều hành (WinME hay Win98, Win2k, và Linux RedHat 7.1). Tiến trình khởi động của một máy tính bao gồm trước tiên là khởi động BIOS từ Motherboard, BIOS sẽ "nhảy" (tìm) đến Boot Table (chứa MBR) để tìm và khởi động hệ điều hành dựa theo thông tin từ MBR. Nếu có nhiều hệ điều hành, BIOS sẽ tự động khởi động hệ điều hành đầu tiên mà nó tìm thấy.
Dĩ nhiên là xong xong với quá trình nầy BIOS sẽ kiểm tra tín hiệu nhập từ bàn phím và kết hợp với thông tin từ MBR để chọn (và khởi động) hệ điều hành. Bạn có thể chọn khởi động hệ điều hành bạn thích bằng cách can thiệp từ bàn phím.
Tới đây bạn sẽ thấy một vấn đề thường gặp khi chúng ta cài đặt hai hệ thống Windows và Linux là sự tranh dành việc quản lý Boot Table. Ðối với hệ thống Windows thì hầu như bạn không gặp cản trỡ nhiều khi cài đặt hai hệ điều hành chung với nhau, theo luật thông thường thì bạn nên cài đặt hệ điều hành phiên bản mới hơn sau cùng, ví dụ, bạn nên cài đặt Win98 hay WinME trước, sau đó mới cài đặt Win2k bởi vì Win2k mới hơn. Một đặt điểm của đáng trách của hệ thống Windows là chúng chỉ cài đặt MBR tại Boot Table mà thôi trong khi đó hệ thống Linux cho phép bạn tùy ý cài đặt MBR tại Boot Table hay tại Boot Sector. Ðể dàn xếp xự tranh dành nầy, tui sẽ cài MBR của hệ thống windows vào Boot Table và cài MBR của Linux vào Boot Sector của nó. Sau đó tìm cách sửa MBR của hệ thống windows để nó cộng thêm Linux trong khi khởi động máy.
Tiến hành cài đặt
Trước tiên bạn nên có 2 cái CD linux 7.1 và các CD của windows ME, win2k .... tui nêu ra một số tình huống căn bạn như sau để bạn tiện tham khảo:
Tình huống thứ nhất: nếu bạn đã có sẵn hai hệ thống Windows (Win98 hay WinME, và Win2k) trên một cái HDD. Bạn kiểm tra xem hai hệ thống kia đã chiếm hơn 8032MB chưa? Tương tự như hệ thống NT4, Linux Redhat 7.1 sẽ không nhận dạng được dĩa cứng trên 8Gig. Bạn sẽ có thể gặp khó khăn khi tạo partition cho Linux. Riêng Mandrake 8.0 thì có khả năng nhận dạng được tất cả. Ðể tránh tình trạng nầy bạn nên cài Linux lên partition của Win2k (bạn sẽ xoá Win2k! Chú ý backup dữ liệu!) sau đó cài Win2k lại sau vì Win2k có thể nhận dạng partition nằm ngoài 8Gig.
Tình huống thứ hai: nếu bạn đã có sẵn hai hệ thống Windows (Win98 hay WinME, và Win2k) và có 2 ổ dĩa cứng! Bạn có thể cài Linux vào một trong hai ổ dĩa cứng kia miễn sau nó phải nằm trong phạm vi 8Gig là tốt.
Tình huống thứ ba: bạn cài mới tất cả!
- Ðầu tiên bạn nên tạo một partition cho WinME độ 5Gig là quá đủ rồi, cài đặt WinME vào
- Cài đặt linux Redhat 7.1 vào, trong quá trình cài đặt bạn nhớ chú ý đến việc bỏ MBR của nó vào Boot Sector! Khi cài đặt bạn nhớ tạo đĩa mền khởi động của RedHat, nhớ giữ nó để sau nầy bạn mới có thể khởi động vào linux được!
- Cuối cùng là tiến hành cài đặt Win2k, chắc bạn không có gì khó khăn với Win2k cả.
Chỉnh xửa MBR
Trước tiên bạn nên dùng floppy disk cho linux để khởi động vào linux. Sau khi log in (xin xem bài tutorial) bạn nên làm một số việc sau1) Tìm một cái floppy (được format với windows hay DOS) còn trống ít nhất là 1k2) bạn (tui đánh giá là bạn biết dùng một số lệnh linux căn bản, giống như dos, xem thêm ở tutorital một số lệnh căn bản của Linux) dùng editor nào đó như vi để mở file sau /etc/lilo.conf3) sau đó nhìn hàng đầu xem cái boot sector của linux nằm ở đâu, bạn sẽ thấy đại khái như boot=/dev/hdxy. Trong đó x là số thứ tự hard disk cuả bạn (a, b, c, ...) và y sẽ là số thứ tự của partition (1, 2, 3, ....). Giả sử bạn biết kết quả là /dev/hda2 đi nhe! (để là ví dụ)4) tạo một directory /tmp (nếu chưa có) sau đó mount cái floppy disk (FAT system) vào directory /tmp rồi copy 512 byte đầu của cái partition (/dev/hda2) bạn vừa tìm được vào floppy. Nếu bạn không chắc thì làm như sau: bỏ đĩa floppy vào ổ đĩa và gõ các lệnh:mount /dev/fd0 /tmp -t vfat
dd if=/dev/hda2 of=/tmp/linux.bin bs=512 count=1
umount /dev/fd05) tới đây bạn sẽ có một file tên là linux.bin trong floppy disk! Lấy dĩa floppy ra, reboot lại máy để vào Win2k6) copy cái file linux.bin vào nơi nào đó trong ổ dĩa của Windows, ví dụ bạn bỏ vào C: đi nhé.
7) bạn dùng 1 chương trình text editor nào đó để open file boot.ini (chú ý đây là file hệ thống nên windows sẽ làm ẩn nó, bạn phải đặt options là hiển thị các file ẩn thì mới thấy nó được), thêm vào một hàng như thế nầy: c:\linux.bin="Welcome to my RedHat Linux"
8) reboot lại máy, bạn sẽ thấy một menu với ba hệ điều hành như ý bạn!
Chú ý:
dd: dump disk, nó tương tự như lệnh copy của dos nhưng dd sẽ copy theo kiểu binay có nghĩa là copy một cách chính xác machine data của đĩa.
a2: là đánh dấu mang ý nghĩa ổ dĩa cứng đầu tiên và partition số 2, nhớ thay đổi chỉ số nầy phù hợp với vị trí cái linux của bạn nhé!!!!if: input file, chỉ tên của input file, trong tường hợp nầy là ổ thứ tự của ổ dĩa cứng và partition nơi linux đang nằmof: ouput file, tên của output filebs: boot sector, chỉ số byte của một sector
count: đếm số lần copy
--> toàn bộ ý nghĩa của lệnh dd trên là copy cái Boot Sector (512 bytes) của linux vào floppy disk và đặt tên nó là linux.bin mà thôi!