Linux cho người dùng - Phan Vĩnh Thịnh

pdf 55 trang hoanguyen 2960
Bạn đang xem 20 trang mẫu của tài liệu "Linux cho người dùng - Phan Vĩnh Thịnh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdflinux_cho_nguoi_dung_phan_vinh_thinh.pdf

Nội dung text: Linux cho người dùng - Phan Vĩnh Thịnh

  1. Linux cho ngu’o`’i dùng Tác gia’: Kostromin V. A. Dich bo’’i: Phan Vı˜nh Thinh ˙ ˙
  2. Muc luc ˙ ˙ 1 HD¯ H Linux: lich su’’ và các ba’n phân pho´ˆi 2 ˙ 2 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows 3 ˙ 2.1 Chuaˆ’n bi cài d¯a˘t 3 ˙ ˙ 2.2 Phòng xa và nhu˜’ng lo`’i khuyên 5 2.3 Phân vùng trên d¯˜ıa và quá trình kho’’i d¯oˆng 6 ˙ 2.3.1 The´ˆ nào là ca´ˆu trúc "hình hoc cu’a d¯˜ıa" 6 ˙ 2.3.2 Phân vùng và ba’ng phân vùng cu’a d¯˜ıa 7 2.3.3 Quá trình kho’’i d¯oˆng HDH công ty Microsoft 8 ˙ ¯ 2.3.4 Va´ˆn d¯eˆ` vo´’i các d¯˜ıa lo´’n 10 2.4 Lu’a chon trình kho’’i d¯oˆng 11 ˙ ˙ ˙ 2.4.1 Trình kho’’i d¯oˆng LILO cu’a HDH Linux 11 ˙ ¯ 2.4.2 Các trình kho’’i d¯oˆng khác 13 ˙ 2.4.3 Các phu’o’ng án kho’’i d¯oˆng 14 ˙ 2.5 Chuaˆ’n bi các phân vùng trên d¯˜ıa 14 ˙ 2.5.1 Lo`’i khuyên khi tao phân vùng 14 ˙ 2.5.2 Chu’o’ng trình d¯eˆ’ phân chia oˆ’ d¯˜ıa 17 2.6 Windows NT và Linux: kho’’i d¯oˆng qua OS Loader cu’a NT 17 ˙ 2.7 Su’’dung trình kho’’i d¯oˆng LILO 20 ˙ ˙ 2.7.1 Cài d¯a˘t và ca´ˆu hình LILO 20 ˙ 2.7.2 Cài d¯a˘t các heˆ d¯ieˆ`u hành khác sau Linux 23 ˙ ˙ 2.7.3 Chuyeˆ’n thu’muc /boot lên phân vùng DOS 23 ˙ 2.8 Kho’’i d¯oˆng Linux tu`’MS-DOS ba˘`ng loadlin.exe 24 ˙ 3 Bash 27 3.1 Heˆ vo’ là gì? 27 ˙ 3.2 Các ký tu’d¯a˘c bieˆt 28 ˙ ˙ ˙ 3.3 Thu’c thi các câu leˆnh 29 ˙ ˙ 3.3.1 Thao tác ; 29 3.3.2 Thao tác & 29 3.3.3 Thao tác && và || 29 3.4¯ Daˆ`u vào/d¯aˆ`u ra tiêu chuaˆ’n 30 3.4.1 Dòng du˜’lieˆu vào-ra 30 ˙ 3.4.2 Leˆnh echo 30 ˙ 3.4.3 Leˆnh cat 31 ˙ 3.5 Chuyeˆ’n hu’o´’ng d¯aˆ`u vào/d¯aˆ`u ra, d¯u’o`’ng o´ˆng và d¯aˆ`u loc 31 ˙ 3.5.1 Su’’dung >, > 31 ˙
  3. MUC LUC iii ˙ ˙ 3.5.2 Su’’dung | 33 ˙ 3.5.3 Daˆ`u loc 34 ¯ ˙ 3.6 Tham bie´ˆn và các bie´ˆn so´ˆ. Môi tru’o`’ng cu’a heˆ vo’ 34 ˙ 3.6.1 Các dang tham bie´ˆn khác nhau 35 ˙ 3.6.2 Da´ˆu nha˘´c cu’a heˆ vo’ 36 ˙ 3.6.3 Bie´ˆn môi tru’o`’ng PATH 38 3.6.4 Bie´ˆn môi tru’o`’ng IFS 38 3.6.5 Thu’muc hieˆn tho`’i và thu’muc cá nhân 38 ˙ ˙ ˙ 3.6.6 Câu leˆnh export 38 ˙ 3.7 Khai trieˆ’n bieˆ’u thu´’c 39 3.7.1 Khai trieˆ’n da´ˆu ngoa˘c 39 ˙ 3.7.2 Thay the´ˆ da´ˆu ngã (Tilde Expansion) 40 3.7.3 Phép the´ˆ các tham bie´ˆn và bie´ˆn so´ˆ 40 3.7.4 Phép the´ˆ các câu leˆnh 41 ˙ 3.7.5 Phép the´ˆ so´ˆ hoc (Arithmetic Expansion) 41 ˙ 3.7.6 Phân chia tu`’(word splitting) 41 3.7.7 Khai trieˆ’n các maˆ˜u tên taˆp tin và thu’muc (Pathname Expansion) 41 ˙ ˙ 3.7.8 Xóa các ký tu’d¯a˘c bieˆt 42 ˙ ˙ ˙ 3.8 Shell - moˆt ngôn ngu˜’laˆp trình 42 ˙ ˙ 3.8.1 Toàn tu’’if và test (hoa˘c [ ]) 42 ˙ 3.8.2 Toán tu’’test và d¯ieˆ`u kieˆn cu’a bieˆ’u thu´’c 43 ˙ 3.8.3 Toán tu’’case 46 3.8.4 Toán tu’’select 46 3.8.5 Toán tu’’for 47 3.8.6 Toán tu’’while và until 48 3.8.7 Các hàm so´ˆ 48 3.8.8 Tham so´ˆ 48 3.9 Script cu’a heˆ vo’ và leˆnh source 49 ˙ ˙ 3.10 Câu leˆnh sh 50 ˙
  4. Danh sách ba’ng 2.1 Ca´ˆu trúc cu’a sector kho’’i d¯oˆng chính 9 ˙ 2.2 Nhu caˆ`u su’’dung không gian d¯˜ıa cu’a HDH 15 ˙ ¯ 3.1 Các câu leˆnh d¯aˆ`u loc 34 ˙ ˙ 3.2 Thay the´ˆ các tham bie´ˆn d¯a˘c bieˆt 36 ˙ ˙ 3.3 Ký tu’xác d¯inh dang da´ˆu nha˘´c 37 ˙ ˙ ˙ 3.4 Các ký tu’tao maˆ˜u 42 ˙ ˙
  5. DANH SÁCH BA’ NG 1 Lo`’i nói d¯aˆ`u Dây là ba’n dich cuo´ˆn "Linux cho ngu’o`’i dùng" (sêri sách tu’ hoc) cu’a Kostromin Victor ¯ ˙ ˙ ˙ Alexeevich coˆng thêm moˆt vài (ra´ˆt ít) kinh nghieˆm su’’ dung Linux cu’a teppi. Ba’n go´ˆc d¯u’o’c ˙ ˙ ˙ ˙ ˙ vie´ˆt trên tie´ˆng Nga. Theo yêu caˆ`u cu’a Kostromin A. V., xin d¯u’o’c d¯u’a ra các liên ke´ˆt to´’i ba’n ˙ go´ˆc d¯ây: Lo`’i ca’m o’n Xin ca’m o’n các bác sau d¯ã giúp d¯o˜’: Kostromin V. A. d¯ã vie´ˆt moˆt cuo´ˆn sách veˆ` Linux cho ˙ ngu’o`’i dùng mo´’i tuyeˆt vo`’i; Tru’o’ng Manh Cu’o`’ng d¯ã dành cho teppi moˆt khoa’ng không trên ˙ ˙ ˙ d¯eˆ’ d¯a˘t cuo´ˆn sách này; hai bác Nguyeˆ˜n¯ Dai Quý và Nguyeˆ˜n¯ Da˘ng ˙ ˙ ˙ Hoàng Tuân d¯ã giúp trong vieˆc su’’ dung LATEX. Bác Nguyeˆ˜n¯ Dai Quý d¯ã d¯oc và su’’a cho ˙ ˙ ˙ ˙ phiên ba’n 0.9. Xin hãy gu’’i thu’nha´˘c teppi tai teppi@vnlinux.org ne´ˆu nhu’teppi có quên ai d¯ó. ˙ Ba’n quyeˆ`n Cuo´ˆn "Bash cho ngu’o`’i dùng" này su’’ dung ba’n quyeˆ`n GPL. Nói moˆt cách nga˘´n gon, ban có ˙ ˙ ˙ ˙ theˆ’làm ba´ˆt ký thu´’gì: in, ta˘ng, bán, d¯o´ˆt, nhu’ng xin hãy thêm hai d¯u’o`’ng daˆ˜n sau vào các ba’n sao cu’a mình: ˙ Tác gia’ Kostromin V. A. cu˜ng nhu’ngu’o`’i dich không chiu trách nhieˆm veˆ` haˆu qua’ do vieˆc su’’ ˙ ˙ ˙ ˙ ˙ dung cuo´ˆn sách này gây ra. ˙ Phiên ba’n và caˆp nhaˆt Phiên ba’n 0.9 ˙ ˙ Caˆp nhaˆt cuo´ˆi cùng Ngày 9 tháng 2 na˘m 2005 ˙ ˙ Moi d¯eˆ` nghi su’’a d¯oˆ’i, thông báo loˆ˜i chính ta’, loˆ˜i kie´ˆn thu´’c cu’a ba’n dich cu˜ng nhu’d¯eˆ` nghi giúp ˙ ˙ ˙ ˙ d¯o˜’ dich xin gu’’i cho Phan Vı˜nh Thinh theo d¯ia chı’ teppi@vnlinux.org. ˙ ˙ ˙
  6. Chu’o’ng 1 HD¯ H Linux: lich su’’ và các ba’n phân pho´ˆi ˙
  7. Chu’o’ng 2 Cài d¯a˘t HD¯ H Linux trên cùng máy tính ˙ vo´’i Windows Van su’kho’’i d¯aˆ`u nan – Trung Quo´ˆc ˙ ˙ Thông thu’o`’ng trên các d¯˜ıa cu’a ba’n phân pho´ˆi Linux d¯ã có hu’o´’ng daˆ˜n nga˘´n gon cách cài d¯a˘t ˙ ˙ Linux. Ngoài ra, trên Internet ban có theˆ’tìm tha´ˆy ra´ˆt nhieˆ`u cuo´ˆn sách nó veˆ` va´ˆn d¯eˆ` này. Và ta´ˆt ˙ ca’ các ba’n phân pho´ˆi lo´’n (Debian, Slackware, Fedora, Mandrake, ) d¯eˆ`u d¯ã có cuo´ˆn hu’o´’ng daˆ˜n cài d¯a˘t ra´ˆt chi tie´ˆt, cho moi tình huo´ˆng su’’ dung. Hãy cho`’ d¯o’i và hy vong trong tu’o’ng lai ˙ ˙ ˙ ˙ ˙ không xa se˜ có ba’n dich Tie´ˆng Vieˆt cu’a nhu˜’ng cuo´ˆn sách này. Chính vì vaˆy trong cuo´ˆn sách ˙ ˙ ˙ này, tác gia’ se˜ không d¯u’a ra các bu’o´’c cu theˆ’ cu’a vieˆc cài d¯a˘t, mà xin ban d¯oc hãy tìm các ˙ ˙ ˙ ˙ ˙ cuo´ˆn hu’o´’ng daˆ˜n tu’o’ng u´’ng. Thay vào d¯ó là nhu˜’ng gì ban caˆ`n bie´ˆt và chuaˆ’n bi tru’o´’c khi cài ˙ ˙ d¯a˘t, d¯oˆ`ng tho`’i, tác gia’ se˜ d¯i cu theˆ’và chi tie´ˆt vào nhu˜’ng gì d¯a˘c bieˆt khi cài d¯a˘t Linux trên máy ˙ ˙ ˙ ˙ ˙ tính d¯ã có moˆt trong các heˆ d¯ieˆ`u hành Windows cu˜ng nhu’vieˆc kho’’i d¯oˆng nhieˆ`u heˆ d¯ieˆ`u hành. ˙ ˙ ˙ ˙ ˙ Va´ˆn d¯eˆ` o’’choˆ˜, phaˆ`n lo´’n ngu’o`’i dùng Vieˆt Nam tru’o´’c khi ba˘´t d¯aˆ`u hoc Linux d¯ã làm quen và ˙ ˙ ra´ˆt có theˆ’ d¯ã có kinh nghieˆm su’’ dung các HDH dòng Windows nhu’ Windows 98, Windows ˙ ˙ ¯ 2000 và Windows XP. Và trên thu’c te´ˆ thì tam tho`’i Linux khó có theˆ’là HDH d¯aˆ`u tiên mà ngu’o`’i ˙ ˙ ¯ dùng làm quen. Nhu’the´ˆ, moˆt cách tu’nhiên, ne´ˆu ngu’o`’i dùng d¯ã làm vieˆc vo´’i HDH Windows ˙ ˙ ˙ ¯ và quye´ˆt d¯inh thu’’ nghieˆm vo´’i Linux, thì ho không muo´ˆn ma´ˆt d¯i môi tru’o`’ng làm vieˆc quen ˙ ˙ ˙ ˙ thuoˆc cu’a mình, cùng vo´’i nhu˜’ng gì d¯ã tao ra và d¯ã ca´ˆu hình du’o´’i du’o´’i Windows. Ra´ˆt may là ˙ ˙ không nha´ˆt thie´ˆt pha’i d¯ánh ma´ˆt ta´ˆt ca’ nhu˜’ng thu´’ d¯ó. Bo’’i vì trên moˆt máy tính có theˆ’ cùng ˙ "chung so´ˆng hòa bình hai HDH và thaˆm chí nhieˆ`u ho’n nu˜’a (ne´ˆu có d¯u’ choˆ˜ trên d¯˜ıa!). Chính ¯ ˙ vì the´ˆ, o’’ phía du’o´’i se˜ nói cách cài d¯a˘t HDH Linux trên máy tính d¯ã cài d¯a˘t moˆt trong các heˆ ˙ ¯ ˙ ˙ ˙ d¯ieˆ`u hành cu’a hãng Microsoft. 2.1 Chuaˆ’n bi cài d¯a˘t ˙ ˙ Có theˆ’ cài d¯a˘t Linux ba˘`ng moˆt trong các cách sau: ˙ ˙ • Tu`’oˆ’ d¯˜ıa CD-ROM • Tu`’ba’n sao chép Linux trên oˆ’ d¯˜ıa cu´’ng • Tu`’máy chu’ taˆp tin cu’a mang noˆi boˆ qua NFS; ˙ ˙ ˙ ˙ • Tu`’máy tính khác trong mang noˆi boˆ qua SMB; ˙ ˙ ˙
  8. 4 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ • Tu`’máy tính o’’ xa (ví du tu`’Internet) qua giao thu´’c FTP; ˙ • Tu`’moˆt máy chu’ WWW qua giao thu´’c HTTP. ˙ Theo ý kie´ˆn cá nhân cu’a tác gia’ thì thuaˆn tieˆn và có tính thu’c te´ˆ nha´ˆt là cài d¯a˘t Linux tu`’ ˙ ˙ ˙ ˙ CD-ROM, ho’n nu˜’a vieˆc mua các d¯˜ıa CD bây gio`’ không gây khó kha˘n gì. ˙ Tru’o´’c khi ba˘´t d¯aˆ`u cài d¯a˘t, hãy thu thaˆp (hãy vie´ˆt lên moˆt to`’ gia´ˆy) ta´ˆt ca’ nhu˜’ng thông tin ˙ ˙ ˙ ca´ˆu hình caˆ`n thie´ˆt cu’a máy tính. Ne´ˆu nhu’ máy tính cu’a ban tam tho`’i vaˆ˜n còn làm vieˆc du’o´’i ˙ ˙ ˙ HDH Windows 95/98/2000/XP, thì ban se˜ tìm tha´ˆy ra´ˆt nhieˆ`u thông tin ne´ˆu nha´ˆn chuoˆt pha’i ¯ ˙ ˙ vào bieˆ’u tu’o’ng My Computer, chon leˆnh Properties. O’’ d¯ây ban có theˆ’ tìm tha´ˆy gaˆ`n he´ˆt ta´ˆt ca’ ˙ ˙ ˙ ˙ thông tin caˆ`n thie´ˆt. Ne´ˆu nhu’ban không tha´ˆy thông tin nào d¯ó, thì caˆ`n tìm kie´ˆm theo các cách ˙ khác, keˆ’ ca’ vieˆc mo’’ vo’ máy và d¯oc nhu˜’ng dòng chu˜’trên thie´ˆt bi. ˙ ˙ ˙ Deˆ’ giúp ban d¯oc, xin d¯u’o’c d¯u’a ra d¯ây danh sách nhu˜’ng thông tin caˆ`n thu thaˆp. Xin d¯u`’ng ¯ ˙ ˙ ˙ ˙ lu’o`’i bie´ˆng và hãy co´ˆ ga˘´ng ghi càng nhieˆ`u du˜’lieˆu veˆ` moˆt thie´ˆt bi càng to´ˆt (ta´ˆt ca’ nhu˜’ng thông ˙ ˙ ˙ tin có theˆ’ tìm tha´ˆy), nhu˜’ng du˜’ lieˆu này se˜ caˆ`n d¯´eˆn khi cài d¯a˘t và ca´ˆu hình, khi mà vieˆc tìm ˙ ˙ ˙ kie´ˆm chúng se˜ khó kha˘n ho’n. • BIOS: – nhà sa’n xua´ˆt; – so´ˆ hieˆu phiên ba’n. ˙ • Controller oˆ’ d¯˜ıa cu´’ng: loai (IDE hay SCSI) và dung lu’o’ng cu’a oˆ’ d¯˜ıa (ne´ˆu nhu’ban d¯oc ˙ ˙ ˙ ˙ dùng d¯˜ıa IDE, thì caˆ`n kieˆ’m tra xem BIOS có hoˆ˜ tro’ vieˆc truy caˆp o’’ che´ˆ d¯oˆ LBA hay không): ˙ ˙ ˙ ˙ – hda (Master trên controller so´ˆ 1 hay Primary Master); – hdb (Slave trên controller so´ˆ 1 hay Primary Slave); – hdc (Master trên controller so´ˆ 2 hay Secondary Master); – hdd (Slave trên controller so´ˆ 2 hay Secondary Slave). – nhà sa’n xua´ˆt và so´ˆ maˆ˜u mã cu’a adapter SCSI (ne´ˆu có). • Dung lu’o’ng cu’a boˆ nho´’ (tính ba˘`ng Kilobyte ˙ ˙ • CD-ROM: – Giao dieˆn (IDE, SCSI, hay giao dieˆn khác); ˙ ˙ – d¯o´ˆi vo´’i các oˆ’ d¯˜ıa CD-ROM không pha’i IDE, cu˜ng nhu’SCSI - nhà sa’n xua´ˆt và so´ˆ maˆ˜u mã. • Chuoˆt: ˙ – loai chuoˆt (serial, PS/2, hay bus mouse); ˙ ˙ – giao thu´’c (Microsoft, Logitech, MouseMan, v.v. . . ); – so´ˆ nút; – d¯o´ˆi vo´’i chuoˆt ca˘´m vào coˆ’ng no´ˆi tie´ˆp thì caˆ`n so´ˆ thu´’tu’cu’a coˆ’ng d¯ó. ˙ ˙ • Cac màn hình ˙
  9. 2.2 Phòng xa và nhu˜’ng lo`’i khuyên 5 – nhà sa’n xua´ˆt; – so´ˆ maˆ˜u mã (hay chipset su’’dung) ˙ – dung lu’o’ng boˆ nho´’; ˙ ˙ • Màn hình – nhà sa’n xua´ˆt – so´ˆ maˆ˜u mã; – các giá tri gio´’i han (min, max) cu’a taˆ`n so´ˆ làm mo´’i theo chieˆ`u doc và theo chieˆ`u ˙ ˙ ˙ ngang (nhu˜’ng giá tri này ban d¯oc chı’ có theˆ’tìm tha´ˆy trong tài lieˆu d¯i kèm vo´’i màn ˙ ˙ ˙ ˙ hình, Windows không hieˆ’n thi nhu˜’ng giá tri này, và chúng ra´ˆt quan trong trong ˙ ˙ ˙ khi ca´ˆu hình giao dieˆn d¯oˆ` hoa). ˙ ˙ • Ne´ˆu nhu’ ban d¯oc muo´ˆn ke´ˆt no´ˆi mang (mà UNIX nói chung là HDH dành cho mang), ˙ ˙ ˙ ¯ ˙ thì hãy ghi lai nhu˜’ng du˜’lieˆu sau: ˙ ˙ – nhà sa’n xua´ˆt và so´ˆ maˆ˜u mã cac mang; ˙ ˙ – d¯ia chı’ IP cu’a mình; ˙ – tên cu’a máy tính trong mang; ˙ – ma˘t na mang con (subnet mask); ˙ ˙ ˙ – d¯ia chı’ IP cu’a gateway; ˙ – d¯ia chı’ IP cu’a các máy chu’ tên mieˆ`n (DNS server); ˙ – d¯ia chı’ IP cu’a máy chu’ WINS(Windows Internet Name Service); ˙ – tên mieˆ`n cu’a công ty ban d¯oc. ˙ ˙ • Loai và nhà sa’n xua´ˆt cac âm thanh và game controller (ne´ˆu nhu’có) ˙ ˙ 2.2 Phòng xa và nhu˜’ng lo`’i khuyên Tru’o´’c khi cài d¯a˘t HDH Linux sau Windows, ra´ˆt nên thu’c hieˆn vài thao tác "phòng xa" ("phòng ˙ ¯ ˙ ˙ cháy ho’n chu˜’a cháy"). Vì ra´ˆt có theˆ’ ban d¯oc se˜ pha’i phân vùng lai oˆ’ d¯˜ıa, thay d¯oˆ’i ba’n ghi ˙ ˙ ˙ kho’’i d¯oˆng (Boot Record) và làm vieˆc vo´’i các taˆp tin kho’’i d¯oˆng cu˜ng nhu’các taˆp tin ca´ˆu hình. ˙ ˙ ˙ ˙ ˙ Các thao tác này không pha’i lúc nào cu˜ng d¯em lai d¯em lai moˆt ke´ˆt qua’ theo ý muo´ˆn, và trong ˙ ˙ ˙ tru’o`’ng ho’p xa´ˆu có theˆ’ máy tính cu’a ban d¯oc se˜ không kho’’i d¯oˆng nu˜’a. Có bie´ˆt cách thoát ra ˙ ˙ ˙ ˙ kho’i tình huo´ˆng này và phuc hoˆ`i du˜’lieˆu caˆ`n thie´ˆt không d¯ó còn là moˆt câu ho’i. Nhu’ng ro’i vào ˙ ˙ ˙ tình huo´ˆng nhu’vaˆy he´ˆt su´’c deˆ˜ dàng nha´ˆt là vo´’i ngu’o`’i dùng laˆ`n d¯aˆ`u tiên cài d¯a˘t Linux. Chính ˙ ˙ vì vaˆy, d¯aˆ`u tiên, caˆ`n tao moˆt d¯˜ıa meˆ`m kho’’i d¯oˆng hay moˆt d¯˜ıa meˆ`m giúp phuc hoˆ`i heˆ tho´ˆng ˙ ˙ ˙ ˙ ˙ ˙ ˙ (ne´ˆu ban d¯oc còn chu’a tao). Thu´’ hai, caˆ`n ghi lai nhu˜’ng du˜’ lieˆu có giá tri (backup). Và thu´’ ˙ ˙ ˙ ˙ ˙ ˙ ba, chuaˆ’n bi các taˆp tin (d¯˜ıa meˆ`m, CD) cài d¯a˘t cho heˆ tho´ˆng cu˜. Moˆt lo`’i khuyên quan trong ˙ ˙ ˙ ˙ ˙ ˙ khác: ne´ˆu có gì d¯ó xa’y ra không theo ý muo´ˆn thì không nên hoang mang. Xin chia se’ moˆt ˙ kinh nghieˆm buoˆ`n: khi laˆ`n d¯aˆ`u tiên tác gia’ cài Linux trên máy tính d¯ã có Windows NT, và ˙ ke´ˆt qua’ là máy tính không theˆ’ kho’’i d¯oˆng d¯u’o’c. Không hieˆ’u he´ˆt va´ˆn d¯eˆ` tác gia’ nghı˜ là không ˙ ˙ còn cách gì khác ngoài d¯inh dang lai oˆ’ d¯˜ıa và cài d¯a˘t lai tu`’d¯aˆ`u. Bây gio`’ thì tác gia’ d¯ã hieˆ’u là ˙ ˙ ˙ ˙ ˙ có theˆ’ phuc hoˆ`i lai ne´ˆu nhu’ không quye´ˆt d¯inh quá voˆi vàng. Vì vaˆy có theˆ’ nói ra˘`ng Werner ˙ ˙ ˙ ˙ ˙ Almesberger d¯úng, khi trong hu’o´’ng daˆ˜n su’’ dung LILO có d¯u’a ra nhu˜’ng lo`’i khuyên sau cho ˙ ngu’o`’i dùng khi ro’i vào tru’o`’ng ho’p khó kha˘n nhu’vaˆy: ˙ ˙
  10. 6 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ • Không hoa’ng ho´ˆt. Ne´ˆu nhu’có gì d¯ó không làm vieˆc, hãy thu’’moi cách d¯eˆ’tìm ra nguyên ˙ ˙ nhân, kieˆ’m tra lai nhieˆ`u laˆ`n thao tác cu’a mình. Chı’ sau khi d¯ó mo´’i thu’c hieˆn các bu’o´’c ˙ ˙ ˙ su’’a loˆ˜i. • Hãy d¯oc tài lieˆu. Da˘c bieˆt trong các tru’o`’ng ho’p, khi heˆ tho´ˆng làm nhu˜’ng gì ban d¯oc ˙ ˙ ¯ ˙ ˙ ˙ ˙ ˙ ˙ không mong d¯o’i. ˙ Xin thêm moˆt lo`’i khuyên phoˆ’ bie´ˆn sau: * Hãy xem các taˆp tin log, tu´’c là các taˆp tin ghi ˙ ˙ ˙ lai su’kieˆn cu’a heˆ tho´ˆng (caˆ`n tìm chúng trong thu’muc /var/log). ˙ ˙ ˙ ˙ ˙ Nhu’ d¯ã nói o’’ trên, quá trình cài d¯a˘t HDH Linux nói riêng không pha’i là d¯eˆ` tài cu’a cuo´ˆn ˙ ¯ sách. Ngu’o`’i dùng caˆ`n tìm các cuo´ˆn hu’o´’ng daˆ˜n tu’o’ng u´’ng. Tuy nhiên, tác gia’ cu˜ng muo´ˆn d¯u’a ra vài lo`’i khuyên d¯eˆ’ giúp ngu’o`’i dùng d¯u’a ra quye´ˆt d¯inh trong khi cài d¯a˘t. ˙ ˙ Thu´’ nha´ˆt, d¯u`’ng voˆi vàng và hãy chú ý d¯oc nhu˜’ng thông báo se˜ hieˆ’n thi trên màn hình, ˙ ˙ ˙ và hãy suy nghı˜ ky˜ khi chon câu tra’ lo`’i. Deˆ’ minh chu´’ng cho lo`’i khuyên này xin d¯u’o’c keˆ’ lai ˙ ¯ ˙ ˙ tru’o`’ng ho’p khi tác gia’ cài Red Hat 7.1, và tu’d¯oˆng nha´ˆn lên nút Next, vì cho ra˘`ng phu’o’ng án ˙ ˙ ˙ theo ma˘c d¯inh là d¯u’. Ke´ˆt qua’ là tác gia’ không theˆ’ truy caˆp d¯u’o’c d¯´eˆn máy này qua các giao ˙ ˙ ˙ ˙ thu´’c mang (telnet, ftp, NFS, Samba), ma˘c dù d¯ã ca´ˆu hình giao dieˆn mang cho máy. Nguyên ˙ ˙ ˙ ˙ nhân là trong phu’o’ng án theo ma˘c d¯inh thì tu’o`’ng lu’’a d¯u’o’c cài d¯a˘t, và tu’o`’ng lu’’a d¯óng he´ˆt các ˙ ˙ ˙ ˙ truy caˆp tu`’mang. Deˆ’ mo’’truy caˆp này, thì trong quá trình cài d¯a˘t caˆ`n chı’ rõ các dich vu d¯u’o’c ˙ ˙ ¯ ˙ ˙ ˙ ˙ ˙ mo’’. Nhu’ng chúng ta quá voˆi vàng! Thu´’ hai, tác gia’ khuyên không nên d¯oˆ`ng ý vo´’i vieˆc tu’ ˙ ˙ ˙ d¯oˆng kho’’i d¯oˆng vào giao dieˆn d¯oˆ` hoa. Vì cuo´ˆi cùng ngu’o`’i dùng không khó kha˘n gì khi gõ ˙ ˙ ˙ ˙ câu leˆnh startx, còn vieˆc ca´ˆu hình giao dieˆn d¯oˆ` hoa (ne´ˆu có gì d¯ó làm vieˆc không d¯úng) ˙ ˙ ˙ ˙ ˙ vo´’i ngu’o`’i dùng mo´’i ra´ˆt khó thành công. Sau khi làm xong các công vieˆc phòng xa, caˆ`n quye´ˆt d¯inh se˜ toˆ’ chu´’c kho’’i d¯oˆng nhieˆ`u ˙ ˙ ˙ HDH nhu’ the´ˆ nào, chuaˆ’n bi các oˆ’ d¯˜ıa (phân vùng) d¯eˆ’ cài d¯a˘t, tu´’c là caˆ`n chia oˆ’ d¯˜ıa thành so´ˆ ¯ ˙ ˙ phân vùng caˆ`n thie´ˆt. Nhu’ng tru’o´’c khi chuyeˆ’n sang các bu’o´’c cu theˆ’ d¯eˆ’ chuaˆ’n bi oˆ’ d¯˜ıa, xin ˙ ˙ d¯u’o’c nói qua moˆt chút veˆ` ca´ˆu trúc cu’a d¯˜ıa và quá trình kho’’i d¯oˆng HDH. Ne´ˆu ai d¯ó không d¯u’ ˙ ˙ ˙ ¯ kiên nhaˆ˜n d¯eˆ’ d¯oc phaˆ`n lý thuye´ˆt này, thì có theˆ’ bo’ qua chúng và chuyeˆ’n tha˘’ng d¯´eˆn va´ˆn d¯eˆ` ˙ chon chu’o’ng trình kho’’i d¯oˆng. ˙ ˙ 2.3 Phân vùng trên d¯˜ıa và quá trình kho’’i d¯oˆng ˙ 2.3.1 The´ˆ nào là ca´ˆu trúc "hình hoc cu’a d¯˜ıa" ˙ Nhu’ ban d¯oc bie´ˆt, d¯˜ıa cu´’ng goˆ`m vài d¯˜ıa có phu’ lo´’p tu`’ tính, na˘`m trên cùng moˆt truc và quay ˙ ˙ ˙ ˙ vo´’i vaˆn to´ˆc lo´’n. Doc/Ghi du˜’ lieˆu d¯u’o’c thu’c hieˆn bo’’i các d¯aˆ`u d¯oc na˘`m giu˜’a các d¯˜ıa này, di ˙ ¯ ˙ ˙ ˙ ˙ ˙ ˙ chuyeˆ’n tu`’ tâm d¯˜ıa ra rìa ngoài cu’a d¯˜ıa. Vòng tròn d¯aˆ`u d¯oc ve˜ ra trên các d¯˜ıa khi quay quanh ˙ chúng goi là rãnh (track), còn taˆp ho’p các rãnh na˘`m choˆ`ng lên nhau goi là cylinder. Moˆ˜i ˙ ˙ ˙ ˙ rãnh lai chia thành các sector, và có theˆ’ ghi vào moˆ˜i sector 512 byte thông tin. Vì the´ˆ d¯a˘c ˙ ˙ d¯ieˆ’m cu’a moˆt oˆ’ d¯˜ıa thu’o`’ng là taˆp ho’p ba sô: so´ˆ cylinder/so´ˆ rãnh trong cylinder/so´ˆ sector trên ˙ ˙ ˙ rãnh hay còn vie´ˆt ta˘´t là C/H/S (ba chu˜’ cái d¯aˆ`u tiên cu’a các thuaˆt ngu˜’ Tie´ˆng Anh tu’o’ng u´’ng: ˙ Cyliner/Head/Sector). Ba so´ˆ này goi là ca´ˆu trúc "hình hoc cu’a d¯˜ıa".D˜ıa vo´’i ca´ˆu trúc hình hoc ˙ ˙ ¯ ˙ C/H/S có dung lu’o’ng C*H*S*512 byte. ˙ D˜ıa cu´’ng là các thie´ˆt bi kho´ˆi, tu´’ là d¯oc và ghi thông tin theo các kho´ˆi, và kích thu’o´’c nho’ ¯ ˙ ˙ nha´ˆt cu’a kho´ˆi ba`˘ng moˆt sector (512 byte). Deˆ’ có theˆ’ ghi thông tin lên d¯˜ıa, caˆ`n d¯a˘t d¯aˆ`u d¯˜ıa ˙ ¯ ˙ d¯úng vi trí, tu´’c là chı’ cho controller bie´ˆt caˆ`n ghi thông tin này vào sector nào. Sector d¯u’o’c ˙ ˙ d¯ánh d¯ia chı’ theo so´ˆ thu´’tu’cylinder, so´ˆ thu´’tu’d¯aˆ`u d¯oc (hay rãnh) và so´ˆ thu´’tu’sector trên rãnh. ˙ ˙ ˙ ˙ ˙
  11. 2.3 Phân vùng trên d¯˜ıa và quá trình kho’’i d¯oˆng 7 ˙ 2.3.2 Phân vùng và ba’ng phân vùng cu’a d¯˜ıa Trong các heˆ tho´ˆng Intel oˆ’ d¯˜ıa thu’o`’ng d¯u’o’c chia thành các phân vùng. Ra´ˆt có theˆ’ nguyên ˙ ˙ nhân cu’a vieˆc phân vùng là nguyên nhân lich su’’: các phiên ba’n MS-DOS d¯aˆ`u tiên không theˆ’ ˙ ˙ su’’ dung d¯u’o’c các d¯˜ıa lo´’n, mà dung lu’o’ng d¯˜ıa lai phát trieˆ’n nhanh ho’n kha’ na˘ng cu’a DOS. ˙ ˙ ˙ ˙ Khi d¯ó d¯ã nghı˜ ra vieˆc chia oˆ’ d¯˜ıa thành các phân vùng. Deˆ’ làm d¯u’o’c d¯ieˆ`u này, trong sector ˙ ¯ ˙ so´ˆ 0 cu’a d¯˜ıa (sector so´ˆ 0 cu’a rãnh d¯aˆ`u tiên trong cylinder so´ˆ 0) ghi nho´’ba’ng chia oˆ’d¯˜ıa thành các phân vùng (partition table). Moˆ˜i phân vùng d¯u’o’c dùng nhu’ moˆt d¯˜ıa vaˆt lý riêng re˜. Moˆt ˙ ˙ ˙ ˙ tru’o`’ng ho’p nói riêng d¯ó là trong các phân vùng khác nhau có theˆ’ cài d¯a˘t các heˆ d¯ieˆ`u hành khác nhau.˙ ˙ ˙ Ba’ng phân vùng chu´’a 4 ba’n ghi 16 byte cho 4 phân vùng chính. Moˆ˜i ba’n ghi có ca´ˆu trúc nhu’sau: kênh giao tác struct partition { char active; /* 0x80: phân vùng kích hoat, 0: không kích hoat */ ˙ ˙ char begin[3]; /* CHS sector d¯aˆ`u tiên, 24 bit char type; /* loai phân vùng (ví du, 83 — LINUX_NATIVE, 82 — LINUX_SWAP) */ ˙ ˙ char end[3]; /* CHS sector cuo´ˆi cùng, 24 bit */ int start; /* so´ˆ cu’a sector d¯aˆ`u tiên (32-bit, tính tu`’ 0) */ int length; /* so´ˆ sector có trong phân vùng (32 bit) */ }; Ba’ng phân vùng d¯˜ıa thu’o`’ng d¯u’o’c tao bo’’i chu’o’ng trình fdisk. Trên HDH Linux ngoài ˙ ˙ ¯ chu’o’ng trình fdisk "truyeˆ`n tho´ˆng" (tuy vaˆy ra´ˆt khác so vo´’i chu’o’ng trình fdisk trong MS-DOS ˙ và Windows), còn có hai chu’o’ng trình d¯eˆ’ làm vieˆc vo´’i phân vùng d¯˜ıa: cfdisk và sfdisk. ˙ Chu’o’ng trình cfdisk, gio´ˆng nhu’ fdisk chı’ dành d¯eˆ’ làm vieˆc vo´’i ba’ng phân vùng d¯˜ıa: nó ˙ không quan tâm chú ý d¯´eˆn thông tin có trên d¯˜ıa. Chı’ khác bieˆt vo´’i fdisk o’’ giao dieˆn thuaˆn ˙ ˙ ˙ tieˆn: chı’ daˆ˜n su’’dung leˆnh và heˆ tho´ˆng trình d¯o’n (thu’c d¯o’n). Chu’o’ng trình sfdisk có vài kha’ ˙ ˙ ˙ ˙ ˙ na˘ng cao ho’n, ví du, cho phép thao tác trên các phân vùng d¯ã có cu’a d¯˜ıa. ˙ DOS su’’dung tru’o`’ng begin và end cu’a ba’ng phân vùng và Interrupt 13 cu’a BIOS (Int 13h) ˙ d¯eˆ’ truy caˆp to´’i d¯˜ıa, vì the´ˆ không theˆ’ su’’ dung d¯˜ıa có dung lu’o’ng lo´’n ho’n 8,4 Gbyte, ngay ca’ ˙ ˙ ˙ vo´’i các BIOS mo´’i (veˆ` va´ˆn d¯eˆ` này se˜ nói d¯´eˆn o’’sau), còn phân vùng thì không theˆ’ lo´’n ho’n 2,1 Gbyte (nhu’ng d¯ây là do han che´ˆ cu’a heˆ tho´ˆng taˆp tin FAT16). ˙ ˙ ˙ Linux thì chı’ su’’ dung tru’o`’ng start và length cu’a ba’ng phân vùng d¯˜ıa và hoˆ˜ tro’ các phân ˙ ˙ vùng chu´’a d¯´eˆn 232 sector, tu´’c là dung lu’o’ng có theˆ’ d¯at 2 Tbyte ˙ ˙ Vì trong ba’ng chia oˆ’ d¯˜ıa chı’ có 4 dòng cho các phân vùng, so´ˆ phân vùng chính trên d¯˜ıa ngay tu`’ d¯aˆ`u dã han che´ˆ: không theˆ’ lo´’n ho’n 4. Khi mà 4 phân vùng tro’’ thành ít, thì ngu’o`’i ta ˙ sáng che´ˆ ra phân vùng lôgíc. Moˆt trong so´ˆ các phân vùng chính tro’’thành mo’’ roˆng (loai phân ˙ ˙ ˙ vùng - 5 hay F hay 85 trong heˆ co’ so´ˆ mu’o`’i sáu). Và trong phân vùng mo’’ roˆng ngu’o`’i ta tao ra ˙ ˙ ˙ các phân vùng lôgíc. Phân vùng mo’’ roˆng không d¯u’o’c su’’ dung tru’c tie´ˆp mà chı’ dùng d¯eˆ’ ghi ˙ ˙ ˙ ˙ các phân vùng lôgíc. Sector d¯aˆ`u tiên cu’a phân vùng mo’’ roˆng ghi nho´’ ba’ng phân vùng vo´’i ˙ bo´ˆn d¯aˆ`u vào: moˆt dùng cho phân vùng lôgíc, moˆt cho phân vùng mo’’ roˆng khác, còn hai cái ˙ ˙ ˙ còn lai không d¯u’o’c su’’dung. Moˆ˜i phân vùng mo’’roˆng có moˆt ba’ng chia cu’a mình, trong ba’ng ˙ ˙ ˙ ˙ ˙ này, cu˜ng gio´ˆng nhu’trong phân vùng mo’’ roˆng chính, chı’ su’’dung có hai dòng d¯eˆ’ d¯u’a ra moˆt ˙ ˙ ˙ phân vùng lôgíc và moˆt phân vùng mo’’ roˆng. Nhu’ vaˆy, thu d¯u’o’c moˆt chuoˆ˜i các ma˘´t xích tu`’ ˙ ˙ ˙ ˙ ˙ ba’ng phân vùng, ma˘´t xích d¯aˆ`u tiên mô ta’ ba phân vùng chính, và moˆ˜i ma˘´t xích tie´ˆp theo – moˆt phân vùng lôgíc và vi trí cu’a ba’ng tie´ˆp theo. ˙ ˙ Chu’o’ng trình sfdisk trên Linux cho tha´ˆy toàn boˆ chuoˆ˜i này: ˙
  12. 8 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ kênh giao tác [root]# sfdisk -l -x /dev/hda Disk /dev/hda: 784 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/hda1 * 0+ 189 190- 1526143+ 6 FAT16 /dev/hda2 190 783 594 4771305 5 Extended /dev/hda3 0 — 0 0 0 Empty /dev/hda4 0 — 0 0 0 Empty /dev/hda5 190+ 380 191- 1534176 6 FAT16 — 381 783 403 3237097+ 5 Extended — 190 189 0 0 0 Empty — 190 189 0 0 0 Empty /dev/hda6 381+ 783 403- 3237066 7 HPFS/NTFS — 381 380 0 0 0 Empty — 381 380 0 0 0 Empty — 381 380 0 0 0 Empty So´ˆ phân vùng lôgíc theo nguyên ta˘´c không han che´ˆ, vì moˆ˜i phân vùng lôgíc có theˆ’ chu´’a ˙ ba’ng phân vùng và các phân vùng lôgíc cu’a mình. Tuy nhiên trên thu’c the´ˆ vaˆ˜n có nhu˜’ng han ˙ ˙ che´ˆ. Ví du, Linux không theˆ’làm vieˆc vo´’i ho’n 15 phân vùng trên các d¯˜ıa SCSI và ho’n 63 phân ˙ ˙ vùng trên d¯˜ıa IDE. Phân vùng mo’’ roˆng trên moˆt d¯˜ıa vaˆt lý, hay trong moˆt phân vùng mo’’ roˆng chu´’a nó (có ˙ ˙ ˙ ˙ ˙ theˆ’ goi là "me") chı’ có theˆ’ làm moˆt: không moˆt chu’o’ng trình phân chia oˆ’ d¯˜ıa nào trong so´ˆ d¯ã ˙ ˙ ˙ ˙ có (fdisk và tu’o’ng tu’) có theˆ’ tao thêm moˆt phân vùng mo’’ roˆng thu´’hai. ’ ˙ ˙ ˙ ˙ Oˆ d¯˜ıa trên Linux nói riêng (oˆ’ d¯˜ıa vaˆt lý) d¯u’o’c truy caˆp qua tên cu’a thie´ˆt bi: /dev/hda, ˙ ˙ ˙ ˙ /dev/hdb, /dev/sda, v.v. . . Các phân vùng chính có thêm so´ˆ 1-4 trong tên thie´ˆt bi: ˙ /dev/hda1, /dev/hda2, /dev/hda3, còn phân vùng lôgíc thì có các tên: /dev/hda5, /dev/hda6, /dev/hda7 . . . (ba˘´t d¯aˆ`u tu`’so´ˆ 5). Tu`’nhu˜’ng gì d¯eˆ` caˆp d¯´eˆn o’’ trên có theˆ’ suy ra tai sao lai có theˆ’ bo’ qua các ˙ ˙ ˙ tên nhu’ /dev/hda3 hay /dev/hda4 (d¯o’n gia’n là phân vùng chính thu´’ ba và thu´’ tu’ không d¯u’o’c tao ra) và ngay sau /dev/hda2 ban d¯oc tha´ˆy /dev/hda5 (phân vùng lôgíc trong phân ˙ ˙ ˙ ˙ vùng mo’’ roˆng /dev/hda2), và sau d¯ó thì vieˆc d¯ánh so´ˆ lai theo thu´’tu’thông thu’o`’ng. ˙ ˙ ˙ ˙ Trong Windows các phân vùng lôgíc nhaˆn d¯u’o’c tên (chu˜’ cái), ba˘´t d¯aˆ`u tu`’ chu˜’ cái cuo´ˆi ˙ ˙ dùng dành cho phân vùng chính. Ví du ne´ˆu moˆt d¯˜ıa cu´’ng có hai phân vùng chính (C: và D:) ˙ ˙ và moˆt phân vùng mo’’ roˆng, trong phân vùng mo’’ roˆng tao ra hai phân vùng lôgíc, thì nhu˜’ng ˙ ˙ ˙ ˙ phân vùng lôgíc này se˜ d¯u’o’c d¯a˘t tên E: và F:. Xin nói thêm, trong Windows NT và 2000/XP ˙ ˙ có theˆ’ thay d¯oˆ’i tên cu’a các phân vùng d¯˜ıa. 2.3.3 Quá trình kho’’i d¯oˆng HD¯ H công ty Microsoft ˙ Dù heˆ d¯ieˆ`u hành có là gì, thì d¯eˆ’ có theˆ’ ba˘´t d¯aˆ`u d¯ieˆ`u khieˆ’n máy tính, caˆ`n nap HDH vào boˆ ˙ ˙ ¯ ˙ nho´’. Vì the´ˆ hãy xem xét qua quá trình kho’’i d¯oˆng cu’a các HDH khác nhau. Chúng ta chı’ quan ˙ ¯ tâm d¯´eˆn vieˆc kho’’i d¯oˆng tu`’oˆ’ d¯˜ıa cu´’ng, nên se˜ không xem xét d¯´eˆn vieˆc kho’’i d¯oˆng tu`’d¯˜ıa meˆ`m, ˙ ˙ ˙ ˙ CD-ROM và qua mang. Hãy ba˘´t d¯aˆ`u tu`’ MS-DOS và MS Windows cu˜ (xin d¯u`’ng quên ra`˘ng, ˙ vieˆc phát trieˆ’n và hoàn thieˆn máy tính cá nhân song song vo´’i su’ phát trieˆ’n cu’a HDH cu’a ˙ ˙ ˙ ¯ Microsoft và nhu˜’ng quye´ˆt d¯inh su’’ dung trong các HDH này có a’nh hu’o’’ng manh d¯´eˆn quye´ˆt ˙ ˙ ¯ ˙ d¯inh cu’a các nhà phát trieˆ’n thie´ˆt bi). ˙ ˙
  13. 2.3 Phân vùng trên d¯˜ıa và quá trình kho’’i d¯oˆng 9 ˙ Nhu’ ban d¯oc bie´ˆt, khi baˆt máy tính d¯aˆ`u tiên se˜ chay chu’o’ng trình POST (Power On Self ˙ ˙ ˙ ˙ Test). Chu’o’ng trình xác d¯inh dung lu’o’ng boˆ nho´’, thu’’ nghieˆm boˆ nho´’, và xác d¯inh các thành ˙ ˙ ˙ ˙ ˙ ˙ phaˆ`n khác (bàn phím, oˆ’ cu´’ng. . . ), kho’’i d¯oˆng các the’ adaptor. Trên màn hình thu’o`’ng xua´ˆt hieˆn ˙ ˙ các thông báo veˆ` dung lu’o’ng boˆ nho´’, veˆ` vieˆc thu’’nghieˆm boˆ nho´’, danh sách các thie´ˆt bi nhaˆn ˙ ˙ ˙ ˙ ˙ ˙ ˙ ra (oˆ’ d¯˜ıa cu´’ng và meˆ`m, boˆ xu’’lý, coˆ’ng COM và v.v. . . ). ˙ Sau khi hoàn thành vieˆc thu’’nghieˆm POST goi Int 19h. Công vieˆc cu’a Int 19h là tìm thie´ˆt ˙ ˙ ˙ ˙ bi kho’’i d¯oˆng. Vieˆc tìm kie´ˆm thu’c hieˆn theo thu´’ tu’ xác d¯inh trong Setup BIOS và theo cách ˙ ˙ ˙ ˙ ˙ ˙ ˙ tha˘m dò sector so´ˆ 0 cu’a các thie´ˆt bi tu’o’ng u´’ng. Ne´ˆu d¯˜ıa có theˆ’ kho’’i d¯oˆng, thì trong sector so´ˆ ˙ ˙ 0 cu’a d¯˜ıa có ba’n ghi kho’’i d¯oˆng chính – Master Boot Record (MBR). Hai byte cuo´ˆi cùng cu’a ˙ MBR – "so´ˆ màu nhieˆm", là da´ˆu hieˆu cho bie´ˆt sector có MBR, và theo d¯ó d¯˜ıa có theˆ’kho’’i d¯oˆng. ˙ ˙ ˙ Ngoài "so´ˆ màu nhieˆm" MBR còn chu´’a ba’ng phân vùng d¯˜ıa d¯ã nói o’’trên, và moˆt chu’o’ng trình ˙ ˙ nho’ – trình kho’’i d¯oˆng chính, kích thu’o´’c chı’ có 446 (0x1BE) byte. ˙ Ba’ng 2.1 cho tha´ˆy ca´ˆu trúc cu’a sector kho’’i d¯oˆng chính sau khi cài d¯a˘t Windows. ˙ ˙ Ba’ng 2.1: Ca´ˆu trúc cu’a sector kho’’i d¯oˆng chính ˙ Dich chuyeˆ’n Noˆi dung ˙ ˙ 0x000 Mã cu’a trình kho’’i d¯oˆng chính ˙ 0x1BE Ba’ng phân vùng oˆ’ d¯˜ıa 0x1FE "So´ˆ màu nhieˆm" (0xAA55) ˙ MS-DOS, Windows95 và NT ghi nho´’DOS MBR trong khi cài d¯a˘t. Ngoài ra cu˜ng có theˆ’ ˙ tao MBR cu’a MS vo´’i câu leˆnh DOS sau: fdisk /mbr. ˙ ˙ Xin tro’’ lai vo´’i quá trình kho’’i d¯oˆng. Int 19h cu’a BIOS nap trình kho’’i d¯oˆng chính vào boˆ ˙ ˙ ˙ ˙ ˙ nho´’ máy tính và chuyeˆ’n quyeˆ`n d¯ieˆ`u khieˆ’n cho chu’o’ng trình này. Nhu’ng chu’o’ng trình "bé nho’" này không d¯u’ kha’ na˘ng kho’’i d¯oˆng HDH; ta´ˆt ca’ nhu˜’ng gì mà nó có theˆ’ làm – d¯ó là nap ˙ ¯ ˙ vào boˆ nho´’ chu’o’ng trình manh ho’n – trình kho’’i d¯oˆng thu´’hai. ˙ ˙ ˙ Deˆ’ làm d¯u’o’c d¯ieˆ`u này, nó tìm trong ba’ng phân vùng kích hoat và d¯oc vào boˆ nho´’ trình ¯ ˙ ˙ ˙ ˙ kho’’i d¯oˆng thu´’ hai, ba˘´t d¯aˆ`u tu`’ sector lôgíc d¯aˆ`u tiên cu’a phân vùng kích hoat. Hãy chú ý d¯´eˆn ˙ ˙ cum tu`’ "ba˘´t d¯aˆ`u tu`’". Vì trình kho’’i d¯oˆng thu´’ hai trên các heˆ tho´ˆng khác nhau có d¯oˆ dài khác nhau.˙ ˙ ˙ ˙ Trong phân vùng d¯u’o’c d¯inh dang du’o´’i heˆ tho´ˆng taˆp tin FAT, trình kho’’i d¯oˆng thu´’hai chie´ˆm ˙ ˙ ˙ ˙ ˙ ˙ moˆt sector (512 byte). Trong phân vùng d¯inh dang du’o´’i heˆ tho´ˆng taˆp tin NTFS, trình kho’’i ˙ ˙ ˙ ˙ ˙ d¯oˆng thu´’hai chie´ˆm vài sector. ˙ Trình kho’’i d¯oˆng thu´’ hai nap lo´’p chu’o’ng trình d¯aˆ`u tiên, caˆ`n thie´ˆt cho vieˆc kho’’i d¯oˆng heˆ ˙ ˙ ˙ ˙ ˙ d¯ieˆ`u hành. Trong tru’o`’ng ho’p MS DOS chu’o’ng trình kho’’i d¯oˆng d¯oˆng nap IO.SYS theo d¯ia chı’ ˙ ˙ ˙ ˙ ˙ 700h, sau d¯ó MSDOS.SYS và chuyeˆ’n quyeˆ`n d¯ieˆ`u khieˆ’n cho SYSINIT cu’a môd¯un IO.SYS. Ne´ˆu vì lý do nào d¯ó không tìm tha´ˆy trên d¯˜ıa phân vùng kích hoat, thì quá trình kho’’ d¯oˆng ˙ ˙ se˜ tie´ˆp tuc vo´’i vieˆc xu’’ lý Int 18h. Tru’o`’ng ho’p này trên thu’c te´ˆ ra´ˆt hie´ˆm khi su’’ dung, nhu’ng ˙ ˙ ˙ ˙ ˙ kha’ na˘ng này có theˆ’ có ích trong tru’o`’ng ho’p nào d¯ó. Trong khi kho’’i d¯oˆng tu`’ xa, khi heˆ d¯ieˆ`u ˙ ˙ ˙ hành kho’’i d¯oˆng tu`’máy chu’, thì Int này d¯u’o’c POST chuyeˆ’n hu’o´’ng lên ROM cu’a cac mang. ˙ ˙ ˙ ˙ Do´ˆi vo´’i các HDH khác cu’a Microsoft thì quá trình kho’’i d¯oˆng dieˆ˜n ra tu’o’ng tu’. ¯ ¯ ˙ ˙ • Windows95 kho’’i d¯oˆng gio´ˆng nhu’ DOS nhu’ng thay the´ˆ IO.SYS và MSDOS.SYS bo’’i ˙ các taˆp tin cu’a mình. Các taˆp tin DOS d¯u’o’c giu˜’lai du’o´’i các tên tu’o’ng u´’ng IO.DOS và ˙ ˙ ˙ ˙ MSDOS.DOS. Khi ban d¯oc chon kho’’i d¯oˆng DOS, Windows95 se˜ d¯oˆ’i tên các taˆp tin ˙ ˙ ˙ ˙ ˙ cu’a mình vo´’i phaˆ`n mo’’ roˆng w40 và phuc hoˆ`i tên ban d¯aˆ`u cu’a các taˆp tin heˆ tho´ˆng cu’a ˙ ˙ ˙ ˙ DOS. Quá trình kho’’i d¯oˆng tie´ˆp tuc vo´’i vieˆc nap IO.SYS. Nhu’the´ˆ, sector kho’’i d¯oˆng cu’a ˙ ˙ ˙ ˙ ˙ DOS và Windows95 là nhu’nhau.
  14. 10 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ • Windows NT4 su’’ dung MBR DOS, nhu’ng thay the´ˆ ba’n ghi kho’’i d¯oˆng cu’a phân vùng ˙ ˙ kích hoat ba˘`ng cách thay the´ˆ NTLDR vào choˆ˜ IO.SYS. Dây là moˆt chu’o’ng trình mang ˙ ¯ ˙ ˙ và có theˆ’ làm d¯u’o’c nhieˆ`u thu´’. Ví du, có theˆ’ tìm taˆp tin boot.ini và ne´ˆu nhu’ tham so´ˆ ˙ ˙ ˙ timeout lo´’n ho’n 0, thì d¯u’a ra trình d¯o’n (thu’c d¯o’n) kho’’i d¯oˆng. ˙ ˙ Moˆ˜i dòng cu’a phaˆ`n [operating systems] trong taˆp tin boot.ini xác d¯inh moˆt ˙ ˙ ˙ phu’o’ng án (moˆt HD¯ H) kho’’i d¯oˆng và d¯u’o’c vie´ˆt theo maˆ˜u sau: d¯ia_chı’˙_trình_kho’’i_d˙ ¯oˆng_thu˙ ´’_hai="tên_goi_cu’a_phu’o’ng_án" ˙ ˙ ˙ Dia chı’ cu’a trình kho’’i d¯oˆng thu´’ hai có theˆ’ là moˆt phân vùng cu theˆ’ nào d¯ó cu’a d¯˜ıa cu˜ng ¯ ˙ ˙ ˙ ˙ nhu’taˆp tin kho’’i d¯oˆng. Du’o´’i d¯ây là moˆt ví du taˆp tin boot.ini: ˙ ˙ ˙ ˙ ˙ [operating systems] multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4.00 VIETNAM" multi(0)disk(0)rdisk(0)partition(3)\WINNT="Windows NT Workstation 4.00 VIETNAM [VGA mode]" /basevideo /sos C:\="Microsoft Windows" C:\BOOTSECT.LNX="Linux" Ne´ˆu ngu’o`’i dùng chon NT, thì se˜ kho’’i d¯oˆng theo d¯ia chı’ phân vùng d¯u’o’c chı’ trên dòng d¯aˆ`u ˙ ˙ ˙ ˙ tiên. Trên dòng tu’o’ng u´’ng vo´’i phu’o’ng án Microsoft Windows, chı’ d¯u’a ra "C:\", vì tên cu’a taˆp tin kho’’i d¯oˆng d¯u’o’c la´ˆy theo ma˘c d¯inh: bootsect.dos. Taˆp tin d¯u’o’c nap vào boˆ nho´’ và quá ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ trình kho’’i d¯oˆng d¯u’o’c tie´ˆp tuc gio´ˆng nhu’khi ba’n ghi kho’’i d¯oˆng d¯u’o’c nap bo’’i mã chu’o’ng trình ˙ ˙ ˙ ˙ ˙ ˙ tu`’MBR. Do´ˆi vo´’i vieˆc kho’’i d¯oˆng các heˆ tho´ˆng khác, có theˆ’ su’’ dung cách d¯ó. Chı’ caˆ`n thêm vào ¯ ˙ ˙ ˙ ˙ boot.ini các dòng chu´’a liên ke´ˆt d¯´eˆn taˆp tin kho’’i d¯oˆng khác. Khi chon các dòng này se˜ kho’’i ˙ ˙ ˙ d¯oˆng HDH tu’o’ng u´’ng. Trong ví du trên Linux cu˜ng d¯u’o’c kho’’i d¯oˆng theo các này. Trong taˆp ˙ ¯ ˙ ˙ ˙ ˙ tin C:\BOOTSECT.LNX caˆ`n ghi noˆi dung cu’a ba’n ghi kho’’i d¯oˆng, tao bo’’i Linux (nói d¯úng ˙ ˙ ˙ ho’n – LILO, trình kho’’i d¯oˆng tiêu chuaˆ’n cu’a Linux). ˙ 2.3.4 Va´ˆn d¯eˆ` vo´’i các d¯˜ıa lo´’n Trên MS-DOS và các phiên ba’n d¯aˆ`u tiên cu’a Windows truy caˆp to´’i d¯˜ıa (trong d¯ó có ca’ bu’o´’c ˙ kho’’i d¯oˆng d¯aˆ`u tiên cu’a HDH) d¯u’o’c toˆ’ chu´’c qua Int 13 (Int 13h) cu’a BIOS. Khi này su’’ dung ˙ ¯ ˙ ˙ su’d¯ánh d¯ia chı’ sector trên d¯˜ıa trên co’ so’’ C/H/S (xem trên). Chính xác ho’n: ˙ ˙ • AH — chon thao tác; ˙ • CH — 8 bit nho’ ho’n cu’a so´ˆ cylinder; • CL — 7-6 bit tu’o’ng u´’ng bit lo´’n cu’a so´ˆ cylinder, 5-0 tu’o’ng u´’ng so´ˆ sector; • DH — so´ˆ cu’a d¯aˆ`u d¯oc; ˙ • DL — so´ˆ cu’a d¯˜ıa(80h hay 81h). (Caˆ`n lu’u ý ra˘`ng vieˆc d¯ánh so´ˆ cylinder vaˆt lý và rãnh thu’o`’ng ba´˘t d¯aˆ`u tu`’ 0, còn sector trên ˙ ˙ rãnh d¯ánh so´ˆ ba˘´t d¯aˆ`u tu`’ 1). Tuy nhiên trên thu’c te´ˆ so´ˆ d¯aˆ`u d¯oc không quá 16, còn so´ˆ sector ˙ ˙ trên rãnh – không quá 63, và dù có dùng 10 bit d¯eˆ’ chı’ ra cylinder, BIOS vaˆ˜n không theˆ’ làm vieˆc vo´’i d¯˜ıa dung lu’o’ng lo´’n ho’n 1024*63*16*512 = 528 Mbyte. ˙ ˙ Deˆ’vu’o’t qua han che´ˆ này, ngu’o`’i ta áp dung nhieˆ`u cách "láu cá" khác nhau. Ví du, Extended ¯ ˙ ˙ ˙ ˙ CHS (ECHS) hay "Large disk support" (d¯ôi khi còn goi là "Large") su’’dung ba bit chu’a dùng ˙ ˙
  15. 2.4 Lu’a chon trình kho’’i d¯oˆng 11 ˙ ˙ ˙ d¯´eˆn cu’a so´ˆ thu´’ tu’ d¯aˆ`u d¯oc d¯eˆ’ ta˘ng so´ˆ cylinder. Cách này cho pehsp su’’ dung ca´ˆu trúc "hình ˙ ˙ ˙ hoc gia’ mao cu’a d¯˜ıa" vo´’i 1024 cylinder, 128 d¯aˆ`u d¯oc và 63 sector/rãnh. Bie´ˆn d¯oˆ’i Extended ˙ ˙ ˙ CHS thành d¯ia chı’ CHS thu’c (có theˆ’chu´’a d¯´eˆn 8192 cylinder) d¯u’o’c BIOS thu’c hieˆn. Cách này ˙ ˙ ˙ ˙ ˙ cho phép làm vieˆc vo´’i d¯˜ıa có dung lu’o’ng d¯´eˆn 8192*16*63*512 = 4 227 858 432 byte hay 4,2 Gbyte. ˙ ˙ Nhu’ng các nhà phát trieˆ’n càng ngày càng ta˘ng maˆt d¯oˆ ghi cu’a d¯˜ıa, so´ˆ d¯˜ıa và so´ˆ rãnh, và ˙ ˙ còn phát minh ra các phu’o’ng pháp khác d¯eˆ’ ta˘ng dung lu’o’ng d¯˜ıa. Ví du, so´ˆ sector trên rãnh ˙ ˙ không còn co´ˆ d¯inh mà tro’’ thành khác nhau trên các rãnh khác nhau (trên các rãnh na˘`m gaˆ`n ˙ rìa ngoài cu’a d¯˜ıa, dài ho’n, so´ˆ sector d¯u’o’c ta˘ng lên). Ke´ˆt qua’ là boˆ ba so´ˆ C/H/S không còn ˙ ˙ pha’n ánh d¯úng ca´ˆu trúc "hình hoc cu’a d¯˜ıa", và các phiên ba’n BIOS cu˜ không theˆ’ hoˆ˜ tro’ truy ˙ ˙ caˆp to´’i toàn boˆ không gian d¯˜ıa. ˙ ˙ Khi d¯ó ngu’o`’i ta nghı˜ ra phu’o’ng pháp khác d¯eˆ’ làm vieˆc vo´’i các d¯˜ıa lên qua Int 13h - d¯ánh ˙ d¯ia chı’ các kho´ˆi theo d¯u’o`’ng tha˘’ng ("Linear Block Addressing" hay LBA). Không d¯i sâu vào ˙ chi tie´ˆt, có theˆ’ nói ra˘`ng ta´ˆt ca’ sector trên d¯˜ıa d¯u’o’c d¯ánh so´ˆ moˆt cách tuaˆ`n tu’, ba˘´t d¯aˆ`u tu`’sector ˙ ˙ ˙ d¯aˆ`u tiên trên rãnh so´ˆ 0 cu’a cylinder so´ˆ 0. Thay vào choˆ˜ d¯ia chı’ CHS moˆ˜i sector nhaˆn d¯u’o’c ˙ ˙ ˙ moˆt d¯ia chı’ lôgíc – so´ˆ thu´’ tu’ cu’a sector trong toˆ’ng so´ˆ ta´ˆt ca’ sector. Vieˆc d¯ánh so´ˆ sector lôgíc ˙ ˙ ˙ ˙ ba˘´t d¯aˆ`u tu`’ 0, trong d¯ó sector so´ˆ 0 chu´’a ba’n ghi kho’’i d¯oˆng chính (MBR). Trong Setup BIOS ˙ hoˆ˜ tro’ bie´ˆn d¯oˆ’i so´ˆ thu´’ tu’ theo d¯u’o`’ng tha˘’ng thành d¯ia chı’ CHS có dang "Hoˆ˜ tro’ LBA". Nhu’ ˙ ˙ ˙ ˙ ˙ vaˆy, trong các phiên ba’n BIOS mo´’i thu’o`’ng có lu’a chon vo´’i ba phu’o’ng án: "Large", "LBA", ˙ ˙ ˙ và "Normal" (phu’o’ng án cuo´ˆi cùng có nghı˜a là không thu’c hieˆn bie´ˆn d¯oˆ’i d¯ia chı’). ˙ ˙ ˙ Tuy nhiên trong che´ˆ d¯oˆ LBA vieˆc su’’ dung d¯˜ıa vaˆt lý vaˆ˜n d¯u’o’c thu’c hieˆn qua Int 13h, mà ˙ ˙ ˙ ˙ ˙ ˙ ˙ Int 13h vaˆ˜n su’’ dung boˆ 3D (C,H,S). Vì nguyên nhân này xua´ˆt hieˆn han che´ˆ lên dung lu’o’ng ˙ ˙ ˙ ˙ ˙ cu’a d¯˜ıa: BIOS, và theo d¯ó, MS-DOS và các phiên ba’n Windows d¯aˆ`u tiên không theˆ’ d¯ánh d¯ia ˙ chı’ các d¯˜ıa có dung lu’o’ng lo´’n ho’n 8,4 Gbyte. ˙ Caˆ`n chú ý ra˘`ng han che´ˆ nói trên chı’ áp dung vo´’i các d¯˜ıa có giao dieˆn IDE. Trong các ˙ ˙ ˙ controller cu’a d¯˜ıa SCSI, so´ˆ cu’a sector d¯u’o’c chuyeˆ’n vào các leˆnh SCSI, và sau d¯ó tu’ d¯˜ıa tìm ˙ ˙ ˙ ra vi trí caˆ`n thie´ˆt, vì the´ˆ han che´ˆ lên dung lu’o’ng d¯˜ıa không xua´ˆt hieˆn. ˙ ˙ ˙ ˙ Moˆt laˆ`n nu˜’a muo´ˆn nha˘´c lai ra˘`ng, ta´ˆt ca’ nhu˜’ng han che´ˆ nói trên chı’ có ý nghı˜a trong giai ˙ ˙ ˙ d¯oan kho’’i d¯oˆng HDH. Bo’’i vì Linux và các phiên ba’n Windows mo´’i nha´ˆt khi làm vieˆc vo´’i d¯˜ıa ˙ ˙ ¯ ˙ d¯ã không còn su’’ dung Int 13 cu’a BIOS, mà su’’ dung driver riêng cu’a mình. Nhu’ng tru’o´’c khi ˙ ˙ có theˆ’su’’dung driver cu’a mình, heˆ tho´ˆng pha’i d¯u’o’c nap. Vì the´ˆ trong giai d¯oan kho’’i d¯oˆng d¯aˆ`u ˙ ˙ ˙ ˙ ˙ ˙ tiên ba´ˆt ky` heˆ tho´ˆng nào cu˜ng caˆ`n su’’ dung BIOS. Dieˆ`u này han che´ˆ vieˆc d¯a˘t nhieˆ`u heˆ tho´ˆng ˙ ˙ ¯ ˙ ˙ ˙ ˙ ra ngoài vùng 8 Gbyte d¯˜ıa d¯aˆ`u tiên: chúng không theˆ’ kho’’i d¯oˆng tu`’ d¯ó, ma˘c dù sau khi kho’’i ˙ ˙ d¯oˆng thì có theˆ’ làm vieˆc vo´’i các d¯˜ıa có dung lu’o’ng lo´’n ho’n nhieˆ`u. Deˆ’ có theˆ’ hieˆ’u cách thoát ˙ ˙ ˙ ¯ kho’i nhu˜’ng han che´ˆ này, chúng ta caˆ`n moˆt chút kie´ˆn thu´’c veˆ` quá trình kho’’i d¯oˆng cu’a HD¯ H Linux. ˙ ˙ ˙ 2.4 Lu’a chon trình kho’’i d¯oˆng ˙ ˙ ˙ 2.4.1 Trình kho’’i d¯oˆng LILO cu’a HD¯ H Linux ˙ Trình kho’’i d¯oˆng LILO d¯u’o’c vie´ˆt bo’’i Werner Almesberber. LILO có theˆ’ kho’’i d¯oˆng nhân ˙ ˙ ˙ Linux tu`’d¯˜ıa meˆ`m, d¯˜ıa cu´’ng, và cu˜ng có theˆ’ kho’’i d¯oˆng các heˆ d¯ieˆ`u hành khác: PC/MS-DOS, DR DOS, OS/2, Windows 95/98, Windows NT/2000/XP,˙ 386BSD,˙ SCO UNIX, Unixware v.v. . . LILO cho phép chon d¯´eˆn 16 heˆ d¯ieˆ`u hành khác nhau d¯eˆ’ kho’’i d¯oˆng. ˙ ˙ ˙ LILO không pha’i là chu’o’ng trình d¯o’n le’ mà là moˆt boˆ goˆ`m nhieˆ`u chu’o’ng trình: trình kho’’i ˙ ˙ d¯oˆng, các chu’o’ng trình su’’dung d¯eˆ’cài d¯a˘t và ca´ˆu hình trình kho’’i d¯oˆng, và các taˆp tin phuc vu: ˙ ˙ ˙ ˙ ˙ ˙ ˙
  16. 12 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ • chu’o’ng trình /sbin/lilo, chay du’o´’i Linux, phuc vu d¯eˆ’ ghi ta´ˆt ca’ thông tin caˆ`n thie´ˆt ˙ ˙ ˙ trong giai d¯oan kho’’i d¯oˆng vào các choˆ˜ tu’o’ng u´’ng. Caˆ`n chay chu’o’ng trình này sau moˆ˜i ˙ ˙ ˙ laˆ`n có thay d¯oˆ’i trong nhân hay trong taˆp tin ca´ˆu hình LILO; ˙ • các taˆp tin phuc vu, caˆ`n cho LILO trong tho`’i gian kho’’i d¯oˆng. Nhu˜’ng taˆp tin này thu’o`’ng ˙ ˙ ˙ ˙ ˙ na˘`m trong thu’ muc /boot. Quan trong nha´ˆt trong so´ˆ chúng – d¯ó là ba’n thân trình ˙ ˙ kho’’i d¯oˆng (xem phía du’o´’i) và taˆp tin map (/boot/map); trong taˆp tin này có chı’ ra ˙ ˙ ˙ vi trí cu’a nhân. Moˆt taˆp tin quan trong khác – taˆp tin ca´ˆu hình LILO; thu’o`’ng có tên ˙ ˙ ˙ ˙ ˙ /etc/lilo.conf; • trình kho’’i d¯oˆng – d¯ây là phaˆ`n LILO d¯u’o’c nap vào boˆ nho´’ d¯aˆ`u tiên qua Int cu’a BIOS; ˙ ˙ ˙ ˙ trình kho’’i d¯oˆng nap nhân Linux hay sector kho’’i d¯oˆng cu’a heˆ d¯ieˆ`u hành khác. Trình ˙ ˙ ˙ ˙ kho’’i d¯oˆng goˆ`m có hai phaˆ`n. Phaˆ`n thu´’ nha´ˆt d¯u’o’c ghi vào sector kho’’i d¯oˆng và phuc vu ˙ ˙ ˙ ˙ ˙ d¯eˆ’ nap phaˆ`n thu´’hai, có kích thu’o´’c lo´’n ho’n ra´ˆt nhieˆ`u. Ca’ hai phaˆ`n thu’o`’ng d¯u’o’c ghi trên ˙ ˙ d¯˜ıa trong taˆp tin /boot/boot.b. ˙ Caˆ`n nho´’ ra˘`ng, d¯inh dang cu’a sector kho’’i d¯oˆng tao ra bo’’i LILO khác vo´’i d¯inh dang MBR ˙ ˙ ˙ ˙ ˙ ˙ cu’a DOS. Vì the´ˆ ne´ˆu ghi sector kho’’i d¯oˆng LILO vào MBR, thì các heˆ d¯ieˆ`u hành d¯ã cài cu’a ˙ ˙ Microsoft se˜ ngu`’ng kho’’i d¯oˆng (ne´ˆu nhu’không có các bieˆn pháp boˆ’ sung). ˙ ˙ Sector kho’’i d¯oˆng cu’a LILO có theˆ’ d¯u’o’c thie´ˆt ke´ˆ d¯eˆ’ su’’ dung nhu’ sector kho’’i d¯oˆng cu’a ˙ ˙ ˙ ˙ phân vùng; trong d¯ó có choˆ˜ cho ba’ng phân vùng. Sector kho’’i d¯oˆng cu’a LILO trong khi cài d¯a˘t có theˆ’ d¯a˘t vào nhu˜’ng choˆ˜ sau: ˙ ˙ ˙ • sector kho’’i d¯oˆng cu’a d¯˜ıa meˆ`m trong d¯inh dang Linux (/dev/fd0, . . . ); ˙ ˙ ˙ • MBR cu’a d¯˜ıa cu´’ng d¯aˆ`u tiên (/dev/hda, /dev/sda, . . . ); • sector kho’’i d¯oˆng cu’a phân vùng chính vo´’i heˆ tho´ˆng taˆp tin Linux trên d¯˜ıa cu´’ng d¯aˆ`u tiên ˙ ˙ ˙ (/dev/hda1, /dev/hda2, . . . ); • sector kho’’i d¯oˆng cu’a phân vùng lôgíc trong phân vùng mo’’ roˆng d¯˜ıa cu´’ng d¯aˆ`u tiên ˙ ˙ (/dev/hda5, . . . ). Su’thaˆt là phaˆ`n lo´’n chu’o’ng trình dang fdisk không d¯eˆ` ra kha’ na˘ng ˙ ˙ ˙ kho’’i d¯oˆng kho’’i d¯oˆng tu`’phân vùng mo’’roˆng và tu`’cho´ˆi vieˆc kích hoat phân vùng này. Vì ˙ ˙ ˙ ˙ ˙ vaˆy trong thành phaˆ`n LILO có chu´’a moˆt chu’o’ng trình d¯a˘c bieˆt (activate) cho phép ˙ ˙ ˙ ˙ vu’o’t qua han che´ˆ này. Tuy nhiên chu’o’ng trình fdisk cu’a ba’n phân pho´ˆi Linux hoˆ˜ tro’ ˙ ˙ ˙ kha’ na˘ng kích hoat phân vùng mo’’ roˆng. Caˆ`n su’’dung tùy chon -b hoa˘c bie´ˆn BOOT. ˙ ˙ ˙ ˙ ˙ Sector kho’’i d¯oˆng cu’a LILO không theˆ’ d¯a˘t vào các choˆ˜ sau: ˙ ˙ • sector kho’’i d¯oˆng cu’a d¯˜ıa meˆ`m hay phân vùng chính, vo´’i d¯inh dang heˆ tho´ˆng taˆp tin khác Linux; ˙ ˙ ˙ ˙ ˙ • trong phân vùng swap cu’a Linux; • trên d¯˜ıa cu´’ng thu´’hai. Ngoài ra, caˆ`n nho´’ ra˘`ng, LILO trong tho`’i gian kho’’i d¯oˆng nhu˜’ng taˆp tin sau: ˙ ˙ • /boot/boot.b; • /boot/map (tao ra bo’’i leˆnh /sbin/lilo); ˙ ˙
  17. 2.4 Lu’a chon trình kho’’i d¯oˆng 13 ˙ ˙ ˙ • ta´ˆt ca’ phiên ba’n nhân kho’’i d¯oˆng (ne´ˆu ban d¯oc chon phiên ba’n nhân khi kho’’i d¯oˆng); ˙ ˙ ˙ ˙ ˙ • sector kho’’i d¯oˆng cu’a các heˆ d¯ieˆ`u hành khác mà ban d¯oc muo´ˆn kho’’i d¯oˆng qua LILO; ˙ ˙ ˙ ˙ ˙ • taˆp tin chu´’a các thông báo d¯u’a ra khi kho’’i d¯oˆng (ne´ˆu d¯u’o’c xác d¯inh). ˙ ˙ ˙ ˙ Nhu’vaˆy, sector kho’’i d¯oˆng LILO cu˜ng nhu’nhu˜’ng taˆp tin d¯ã lieˆt kê (trong so´ˆ d¯ó có các taˆp ˙ ˙ ˙ ˙ ˙ tin ban d¯oc se˜ cài d¯a˘t sau này) caˆ`n na˘`m trong pham vi 1024 cylinder d¯aˆ`u tiên cu’a d¯˜ıa cu´’ng, ˙ ˙ ˙ ˙ bo’’i vì chúng caˆ`n d¯u’o’c truy caˆp qua BIOS. Xem phaˆ`n nói veˆ` han che´ˆ cu’a BIOS o’’ trên. ˙ ˙ ˙ Ba˘´t d¯aˆ`u tu`’ phiên ba’n 21, LILO d¯u’a ra màn hình trình d¯o’n (thu’c d¯o’n) cho phép chon heˆ ˙ ˙ ˙ tho´ˆng d¯eˆ’ kho’’i d¯oˆng (tru’o´’c d¯ây caˆ`n nha´ˆn phím Tab d¯eˆ’ goi trình d¯o’n này). ˙ ˙ 2.4.2 Các trình kho’’i d¯oˆng khác ˙ Ngoài LILO d¯eˆ’ kho’’i d¯oˆng Linux có theˆ’ kho’’i d¯oˆng các trình kho’’i d¯oˆng khác. ˙ ˙ ˙ • Ne´ˆu nhu’tru’o´’c khi cài d¯a˘t Linux d¯ã có HDH Windows NT/2000/XP, thì trình kho’’i d¯oˆng ˙ ¯ ˙ ban d¯oc có theˆ’ su’’ dung là OS Loader cu’a NT. So sánh vo´’i LILO thì trình kho’’i d¯oˆng ˙ ˙ ˙ ˙ OS Loader có ít nha´ˆt hai u’u the´ˆ. Thu´’ nha´ˆt, ta´ˆt ca’ ca´ˆu hình cu˜ không bi ma´ˆt (chúng ta ˙ có theˆ’ chon kho’’i d¯oˆng Windows hay Linux theo lu’a chon), và thu´’ hai, có theˆ’ cài d¯a˘t ˙ ˙ ˙ ˙ ˙ Linux lên d¯˜ıa mà LILO không theˆ’kho’’i d¯oˆng, ví du, oˆ’ d¯˜ıa thu´’hai trên controller thu´’hai (Secondary Slave). ˙ ˙ • Ne´ˆu nhu’tru’o´’c khi cài d¯a˘t Linux ban d¯oc chı’ có HDH Windows 95 hay Windows 98 và ˙ ˙ ˙ ¯ không có Windows NT/2000 hay XP, thì OS Loader không d¯u’o’c cài d¯a˘t. Và ne´ˆu nhu’vì ˙ ˙ moˆt lý do nào d¯ó ban d¯oc không muo´ˆn cài d¯a˘t LILO, thì có theˆ’ su’’ d¯ung chu’o’ng trình ˙ ˙ ˙ ˙ ˙ kho’’i d¯oˆng loadlin.exe (thu’o`’ng d¯i kèm vo´’i ba’n phân pho´ˆi Linux); ˙ • Tho`’i gian gaˆ`n d¯ây trong thành phaˆ`n ba’n phân pho´ˆi Linux thu’o`’ng có chu’o’ng trình kho’’i d¯oˆng GRUB. ˙ • Trong thành phaˆ`n OS/2 cu’a công ty IBM có chu’o’ng trình kho’’i d¯oˆng Boot Manager. ˙ Trong ra´ˆt nhieˆ`u hu’o´’ng daˆ˜n ngu’o`’i ta khuyên dùng chu’o’ng trình này d¯eˆ’ toˆ’i chu´’c kho’’i d¯oˆng nhieˆ`u HDH. ˙ ¯ • Trong các nguoˆ`n thông tin khác nhau còn nha˘´c d¯´eˆn chu’o’ng trình System Commander; • Thêm moˆt trình kho’’i d¯oˆng khác có trong thành phaˆ`n gói PartitionMagic cu’a công ty ˙ ˙ Power Quest. Chúng ta se˜ nói veˆ` chu’o’ng trình này trong phaˆ`n nho’ tie´ˆp theo. Ngoài ra tác gia’ còn tha´ˆy ngu’o`’i ta nói d¯´eˆn moˆt loat trình kho’’i d¯oˆng khác (moˆt so´ˆ có theˆ’ ˙ ˙ ˙ ˙ tìm tha´ˆy trong thu’ muc /public/ftp/pub/Linux/system/boot/loaders trên trang ˙ Nhu’ng vì tác gia’ không su’’ dung nhu˜’ng chu’o’ng trình này, nên không ˙ theˆ’ nói cu theˆ’ cách su’’ dung chúng. Và ta´ˆt ca’ nhu˜’ng lo`’i khuyên dùng sau cu’a tác gia’ se˜ du’a ˙ ˙ ˙ trên vieˆc su’’dung LILO, NT Loader và loadlin.exe. Ne´ˆu nhu’có ý muo´ˆn cài d¯a˘t chu’o’ng trình ˙ ˙ ˙ kho’’i d¯oˆng khác, thì ban d¯oc caˆ`n d¯oc hu’o´’ng daˆ˜n cài d¯a˘t và su’’dung cu’a nó. ˙ ˙ ˙ ˙ ˙ ˙
  18. 14 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ 2.4.3 Các phu’o’ng án kho’’i d¯oˆng ˙ Nhu’vaˆy, theo ý kie´ˆn cu’a tác gia’ có các phu’o’ng án kho’’i d¯oˆng sau: ˙ ˙ • Ne´ˆu d¯ã cài d¯a˘t Windows NT hay Windows 2000/XP, thì hãy su’’dung NT Loader. ˙ ˙ • Ne´ˆu có Windows 95 hay Windows 98 trên FAT16, và ban d¯oc không muo´ˆn cài d¯a˘t ˙ ˙ ˙ chu’o’ng trình kho’’i d¯oˆng nào khác, thì có theˆ’su’’dung LILO, hoa˘c d¯aˆ`u tiên chay DOS và ˙ ˙ ˙ ˙ sau d¯ó kho’’i d¯oˆng Linux nho`’ chu’o’ng trình loadlin.exe (hay moˆt chu’o’ng trình tu’o’ng tu’, ˙ ˙ ˙ có vài chu’o’ng trình nhu’vaˆy, nhu’ng chúng ta se˜ không xét d¯´eˆn). ˙ • Ne´ˆu d¯ã cài d¯a˘t Windows 95 OSR2 hay Windows 98 trên FAT32, và ban d¯oc không ˙ ˙ ˙ muo´ˆn cài d¯a˘t thêm chu’o’ng trình kho’’i d¯oˆng, thì caˆ`n su’’ dung loadlin.exe. Ra´ˆt nhieˆ`u ˙ ˙ ˙ HOWTO kha˘’ng d¯inh ra˘`ng không caˆ`n su’’ d¯ung LILO, ne´ˆu nhu’ phân vùng kích hoat có ˙ ˙ ˙ d¯inh dang FAT32, ma˘c dù tác gia’ không rõ nguyên nhân. Tuy nhiên thí nghieˆm kho’’i ˙ ˙ ˙ ˙ d¯oˆng Linux qua NT Loader, cài d¯a˘t trên phân vùng FAT32, cu’a tác gia’ d¯ã ke´ˆt thúc ˙ ˙ không thành công. Vì the´ˆ, trong tru’o`’ng ho’p này tác gia’ d¯ã pha’i su’’ dung chu’o’ng trình ˙ ˙ loadlin.exe. Chu’o’ng trình này d¯ã hoàn thành to´ˆt nhieˆm vu, và tao cho tác gia’ moˆt´ aˆn ˙ ˙ ˙ ˙ tu’o’ng to´ˆt, vì the´ˆ tác gia’ khuyên ban d¯oc su’’dung loadlin.exe d¯eˆ’ kho’’i d¯oˆng Linux. ˙ ˙ ˙ ˙ ˙ Trong nhu˜’ng phaˆ`n tie´ˆp theo tác gia’ se˜ cho bie´ˆt cách cài d¯a˘t Linux, su’’ dung ta´ˆt ca’ ba ˙ ˙ phu’o’ng án kho’’i d¯oˆng: qua trình kho’’i d¯oˆng NT Loader, trình kho’’i d¯oˆng LILO và trình kho’’i ˙ ˙ ˙ d¯oˆng loadlin.exe. Tuy nhiên tru’o´’c khi cài d¯a˘t trình kho’’i d¯oˆng caˆ`n chuaˆ’n bi các phân vùng ˙ ˙ ˙ ˙ trên d¯˜ıa, hay ít nha´ˆt là nghı˜ cách toˆ’ chu´’c chúng. 2.5 Chuaˆ’n bi các phân vùng trên d¯˜ıa ˙ 2.5.1 Lo`’i khuyên khi tao phân vùng ˙ Du’a ra lo`’i khuyên o’’ d¯ây không pha’i là vieˆc deˆ˜ dàng, vì phân vùng d¯˜ıa phuc thuoˆc ra´ˆt nhieˆ`u ¯ ˙ ˙ ˙ vào ý thích và nhu caˆ`u cu’a chu’ nhân d¯˜ıa. Nhu’ng cu˜ng xin thu’’ d¯u’a ra vài d¯eˆ` nghi sau. Tác ˙ gia’ se˜ d¯a˘t tên d¯˜ıa và phân vùng theo "tiêu chuaˆ’n" cu’a Linux, tu´’c là /dev/hda, /dev/hdb, ˙ v.v. . . d¯o´ˆi vo´’i d¯˜ıa và /dev/hda1, /dev/hda2, v.v. . . – d¯o´ˆi vo´’i các phân vùng. Vieˆc phân chia d¯˜ıa thành các phân vùng là caˆ`n thie´ˆt, bo’’i vì Windows và Linux su’’ dung ˙ ˙ các cách lu’u tru˜’thông tin trên d¯˜ıa và sau d¯ó d¯oc chúng tu`’d¯˜ıa khác nhau. Chính vì the´ˆ to´ˆt ho’n ˙ he´ˆt là dành cho moˆ˜i heˆ d¯ieˆ`u hành moˆt (hoa˘c thaˆm chí moˆt vài nhu’ chúng ta se˜ tha´ˆy o’’ du’o´’i) phân vùng riêng. ˙ ˙ ˙ ˙ ˙ Daˆ`u tiên chúng ta hãy xem xét moˆt tru’o`’ng ho’p d¯o’n gia’n – dung lu’o’ng oˆ’ d¯˜ıa cu’a ban d¯oc ¯ ˙ ˙ ˙ ˙ ˙ không vu’o’t quá 8,4 Gbyte (nói chính xác ho’n – so´ˆ cylinder không vu’o’t quá 1024). Trong ˙ ˙ tru’o`’ng ho’p này moi thu´’ d¯eˆ`u d¯o’n gia’n: ban d¯oc chı’ vieˆc chia d¯˜ıa làm sao d¯eˆ’ d¯u’ choˆ˜ cho heˆ ˙ ˙ ˙ ˙ ˙ ˙ d¯ieˆ`u hành se˜ cài d¯a˘t. Có theˆ’ su’’dung du˜’lieˆu cho bie´ˆt kích thu’o´’c d¯˜ıa nho’ nha´ˆt caˆ`n thie´ˆt d¯eˆ’ cài ˙ ˙ ˙ d¯a˘t heˆ d¯ieˆ`u hành vo´’i ca´ˆu hình co’ ba’n trong ba’ng 2.2. ˙ ˙ Tuy nhiên xin hãy nho´’ ra˘`ng, không nhu˜’ng pha’i tính kích thu’o´’c các taˆp tin cu’a ba’n thân ˙ heˆ d¯ieˆ`u hành, mà còn pha’i tính ca’ kích thu’o´’c cu’a các chu’o’ng trình ban d¯oc du’ tính chay. Và ˙ ˙ ˙ ˙ ˙ còn pha’i dành moˆt phaˆ`n du’tru˜’không nho’ cho các chu’o’ng trình se˜ cài d¯a˘t sau này (không theˆ’ ˙ ˙ ˙ tránh kho’i!). Hãy tính ra˘`ng, 700 Mbyte dành cho Linux o’’ trong ba’ng nói trên chı’ dành cho các chu’o’ng trình cài d¯a˘t cùng vo´’i Linux theo ma˘c d¯inh, trong so´ˆ d¯ó có, ví du, chu’o’ng trình ˙ ˙ ˙ ˙ soan tha’o ra´ˆt manh Lyx. Do´ˆi vo´’i Windows cu˜ng tu’o’ng tu’nhu’vaˆy. ˙ ˙ ¯ ˙ ˙
  19. 2.5 Chuaˆ’n bi các phân vùng trên d¯˜ıa 15 ˙ Ba’ng 2.2: Nhu caˆ`u su’’dung không gian d¯˜ıa cu’a HDH ˙ ¯ Heˆ d¯ieˆ`u hành Yêu caˆ`u ˙ Windows 95 100 Mbyte Windows 98 200 Mbyte Windows NT 200 Mbyte Windows 2000 700 Mbyte Linux Red Hat 6.2 (Worksta- 700 Mbyte tion vo´’i KDE) Theo kinh nghieˆm cu’a tác gia’ thì d¯eˆ’làm vieˆc vo´’i Windows 95/98, Windows NT và Linux ˙ ˙ các phân vùng vo´’i kích thu’o´’c 800-1000 Mbyte là d¯u’ (ta´ˆt nhiên, ne´ˆu ban d¯oc không cài d¯a˘t ˙ ˙ ˙ các gói chu’o’ng trình lo´’n, nhu’OpenOffice.Org), còn d¯o´ˆi vo´’i Windows 200 thì caˆ`n phân vùng lo´’n ho’n. Bây gio`’ chúng ta se˜ xem xét va´ˆn d¯eˆ` chia các phân vùng cho Linux. O’’ d¯ây không theˆ’ chı’ chia moˆt phân vùng. Thu´’ nha´ˆt, caˆ`n chia moˆt phân vùng swap riêng bieˆt cho Linux. Khi xác ˙ ˙ ˙ d¯inh dung lu’o’ng cu’a phân vùng swap Linux caˆ`n tính d¯´eˆn nhu˜’ng ye´ˆu to´ˆ sau: ˙ ˙ • Trong Linux, RAM và không gian swap ho’p lai tao thành boˆ nho´’a’o chung. Ví du, ne´ˆu ˙ ˙ ˙ ˙ ˙ ban d¯oc có 256 MByte RAM và 128 Mbyte không gian swap, thì se˜ có 384 Mbyte boˆ ˙ ˙ ˙ nho´’ a’o. • Deˆ’ làm vieˆc vo´’i Linux caˆ`n ít nha´ˆt 16 Mbyte boˆ nho´’ a’o, vì the´ˆ ne´ˆu ban d¯oc chı’ có 4 ¯ ˙ ˙ ˙ ˙ Mbyte RAM, thì caˆ`n phân vùng swap không nho’ ho’n 12 Mbyte. • Trên Linux kích thu’o´’c moˆt phân vùng swap không theˆ’ vu’o’t quá 128 Mbyte. Nghı˜a là ˙ ˙ phân vùng swap có theˆ’ có kích thu’o´’c lo´’n bao nhiêu tùy thích nhu’ng Linux không theˆ’ su’’dung ho’n 128 Mbyte. Ne´ˆu ban d¯oc muo´ˆn có boˆ nho´’a’o lo´’n ho’n, thì caˆ`n tao hai phân ˙ ˙ ˙ ˙ ˙ vùng swap hoa˘c su’’dung taˆp tin swap. ˙ ˙ ˙ • Khi tính kích thu’o´’c cu’a không gian swapping, caˆ`n nho´’ ra˘`ng kích thu’o´’c quá lo´’n có theˆ’ là vô ích. Trên máy tính vo´’i 16 Mbyte RAM khi cài d¯a˘t Linux vo´’i ca´ˆu hình chuaˆ’n và ˙ các chu’o’ng trình u´’ng dung chuaˆ’n thì 48 Mbyte không gian swapping là d¯u’. Còn ne´ˆu ˙ cài d¯a˘t Linux vo´’i ca´ˆu hình nho’ nha´ˆt, thì không caˆ`n d¯´eˆn không gian swap. Ta´ˆt nhiên, ˙ kích thu’o´’c chính xác cu’a không gian swap phu thuoˆc lo´’n vào chu’o’ng trình se˜ d¯u’o’c cài ˙ ˙ ˙ d¯a˘t. ˙ Nói chung, chı’ nên suy nghı˜ veˆ` va´ˆn d¯eˆ` dung lu’o’ng cu’a phân vùng swap khi có moˆt d¯˜ıa ˙ ˙ nho’ và ít boˆ nho´’RAM. Trong tru’o`’ng ho’p ngu’o’c lai hãy phân chia d¯eˆ’ toˆ’ng so´ˆ dung lu’o’ng cu’a ˙ ˙ ˙ ˙ ˙ boˆ nho´’a’o (goˆ`m RAM và phân vùng swap) không nho’ ho’n 128 Mbyte. Còn ne´ˆu nhu’ban d¯oc ˙ ˙ ˙ có 128 Mbyte RAM hay nhieˆ`u ho’n, thì phân vùng này có theˆ’ không caˆ`n thie´ˆt. Ta´ˆt ca’ các phaˆ`n còn lai cu’a Linux và các chu’o’ng trình hoˆ˜ tro’ theo nguyên ta˘´c có theˆ’ d¯a˘t ˙ ˙ ˙ vào moˆt phân vùng. Tuy nhiên, vieˆc d¯a˘t heˆ tho´ˆng taˆp tin Linux lên vài phân vùng riêng re˜ là ˙ ˙ ˙ ˙ ˙ có ý nghı˜a. Ví du, có nhà chuyên gia khuyên nên dành cho heˆ tho´ˆng taˆp tin Linux ba phân ˙ ˙ ˙ vùng (ne´ˆu tính ca’ swap thì thành 4). Phân vùng thu´’nha´ˆt (theo ý kie´ˆn cá nhân tác gia’, 1 Gbyte là d¯u’) se˜ chu´’a heˆ tho´ˆng taˆp tin go´ˆc (/). Phân vùng thu´’ hai dành cho thu’ muc /home. Còn ˙ ˙ ˙ phân vùng thu´’ ba d¯u’o’c ga˘´n vào thu’ muc /usr. Vieˆc phân chia nhu’ vaˆy du’a trên nhu˜’ng lý le˜ ˙ ˙ ˙ ˙ ˙ sau. Dù HDH Linux có oˆ’n d¯inh và d¯áng tin caˆy d¯´eˆn d¯âu, thì thı’nh thoa’ng cu˜ng caˆ`n cài d¯a˘t lai. ¯ ˙ ˙ ˙ ˙ Ví du, ban d¯oc muo´ˆn caˆp nhaˆt phiên ba’n mo´’i cu’a ba’n phân pho´ˆi, hoa˘c vì ít kinh nghieˆm su’’ ˙ ˙ ˙ ˙ ˙ ˙ ˙
  20. 16 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ dung nên làm ho’ng taˆp tin heˆ tho´ˆng quan trong, hoa˘c d¯o’n gia’n là muo´ˆn cài d¯a˘t moˆt ba’n phân ˙ ˙ ˙ ˙ ˙ ˙ ˙ pho´ˆi khác. Ne´ˆu nhu’ ta´ˆt ca’ d¯u’o’c cài d¯a˘t vào moˆt phân vùng, thì khi cài d¯a˘t lai nhu˜’ng du˜’ lieˆu ˙ ˙ ˙ ˙ ˙ ˙ d¯ã làm ra và ghi nho´’trong thu’muc cá nhân se˜ bi ma´ˆt (ne´ˆu không có ba’n sao chép). Ngoài ra, ˙ ˙ se˜ bi ma´ˆt ca’ nhu˜’ng chu’o’ng trình d¯ã cài tu`’ mã nguoˆ`n, hay cài ba˘`ng phu’o’ng pháp khác. Phaˆ`n ˙ lo´’n nhu˜’ng gói chu’o’ng trình này d¯u’o’c cài vào thu’muc /usr. Ne´ˆu dành cho thu’muc này moˆt ˙ ˙ ˙ ˙ phân vùng riêng và khi cài d¯a˘t không d¯inh dang lai chúng, thì nhu˜’ng chu’o’ng trình nói trên ˙ ˙ ˙ ˙ se˜ d¯u’o’c giu˜’ lai và có theˆ’ se˜ làm vieˆc (ra´ˆt có theˆ’ caˆ`n vài ca´ˆu hình nho’) sau khi cài d¯a˘t lai heˆ ˙ ˙ ˙ ˙ ˙ ˙ tho´ˆng. Trong tiêu chuaˆ’n veˆ` heˆ tho´ˆng taˆp tin cu’a Linux FHS (cu theˆ’ xin xem o’’ chu’o’ng ??) ˙ ˙ ˙ cu˜ng có lo`’i khuyên veˆ` vieˆc d¯a˘t thu’muc /usr lên moˆt phân vùng riêng. ˙ ˙ ˙ ˙ Theo tác gia’ tha´ˆy, nhu˜’ng ý kie´ˆn nói trên d¯ã d¯u’ d¯eˆ’ ban d¯oc tu’tìm ra phu’o’ng án phân chia ˙ ˙ ˙ oˆ’ d¯˜ıa cu’a mình, trong tru’o`’ng ho’p chı’ có moˆt oˆ’ d¯˜ıa nho’. Bây gio`’chúng ta xem xét tru’o`’ng ho’p ˙ ˙ ˙ d¯˜ıa vo´’i so´ˆ cylinder lo´’n ho’n 1024. Tu`’nhu˜’ng gì d¯ã nói d¯´eˆn o’’phaˆ`n tru’o´’c (han che´ˆ dung lu’o’ng d¯˜ıa cu´’ng), caˆ`n d¯a˘t chu’o’ng trình ˙ ˙ ˙ kho’’i d¯oˆng trong pham vi 1024 cylinder d¯aˆ`u tiên. Nhân tieˆn, NT Loader không nha´ˆt thie´ˆt pha’i ˙ ˙ ˙ d¯a˘t vào phân vùng NTFS, cu˜ng nhu’không nha´ˆt thie´ˆt pha’i d¯a˘t vào phân vùng chu´’a các taˆp tin ˙ ˙ ˙ khác cu’a HDH. Nhu’ d¯ã nói o’’ trên, d¯o´ˆi vo´’i Linux có theˆ’ d¯a˘t thu’ muc go´ˆc cùng vo´’i thu’ muc ¯ ˙ ˙ ˙ con /boot vào các cylinder "tha´ˆp" (trong vòng 1024 d¯aˆ`u tiên), còn các thu’muc khác – o’’choˆ˜ nào tùy thích. ˙ Nhu’vaˆy trong tru’o`’ng ho’p này, nhu˜’ng d¯eˆ` nghi cu’a tác gia’ cho ra ba’ng toˆ’ng ke´ˆt sau: ˙ ˙ ˙ • phaˆ`n kho’’i d¯oˆng cu’a ta´ˆt ca’ các heˆ tho´ˆng Microsoft d¯a˘t vào phân vùng chính d¯aˆ`u tiên cu’a ˙ ˙ ˙ d¯˜ıa, vo´’i d¯inh dang FAT16 (DOS); ˙ ˙ • phân vùng chính tie´ˆp theo dành cho thu’muc go´ˆc (/), kích thu’o´’c khoa’ng 1 Gbyte; ˙ • phân vùng chính thu´’ ba dành cho swap cu’a Linux (lo`’i khuyên veˆ` kích thu’o´’c cu’a phân vùng này xem o’’ trên); • phaˆ`n còn lai cu’a d¯˜ıa d¯a˘t thành phân vùng mo’’ roˆng; ˙ ˙ ˙ • trong phân vùng mo’’ roˆng tao các phân vùng lôgíc cho moˆ˜i HDH se˜ cài d¯a˘t: Windows ˙ ˙ ¯ ˙ 98, Windows NT/2000/XP, và d¯oˆ`ng tho`’i cho các heˆ tho´ˆng taˆp tin /home và /usr cu’a ˙ ˙ HDH Linux (trong /home se˜ d¯a˘t các taˆp tin riêng cu’a ngu’o`’i dùng, còn trong /usr – ¯ ˙ ˙ chu’o’ng trình se˜ cài d¯a˘t). ˙ Ta´ˆt nhiên, ne´ˆu nhu’ ban d¯oc chı’ có Windows 95 vo´’i FAT16, thì có theˆ’ d¯eˆ’ Windows trên ˙ ˙ phân vùng d¯aˆ`u tiên. Ne´ˆu nhu’ trên máy d¯ã cài d¯a˘t Windows NT hay có FAT32, thì moˆt phân ˙ ˙ vùng FAT16 cu˜ng không thu`’a. Thu´’nha´ˆt, keˆ’ ca’ trong tru’o`’ng ho’p heˆ tho´ˆng có va´ˆn d¯eˆ`, ban d¯oc ˙ ˙ ˙ ˙ có theˆ’ kho’’i d¯oˆng tu`’ d¯˜ıa meˆ`m DOS (tam tho`’i khi chu’a làm quen vo´’i Linux moˆt cách "tu’o`’ng ˙ ˙ ˙ taˆn") và tha´ˆy d¯u’o’c ra˘`ng d¯˜ıa cu´’ng làm vieˆc bình thu’o`’ng. Thu´’hai, heˆ tho´ˆng taˆp tin FAT16 d¯u’o’c ˙ ˙ ˙ ˙ ˙ ˙ hoˆ˜ tro’ trên moi HDH, trong d¯ó có Linux, vì the´ˆ phân vùng này có theˆ’ phuc vu cho vieˆc trao ˙ ˙ ¯ ˙ ˙ ˙ d¯oˆ’i taˆp tin giu˜’a các heˆ tho´ˆng. Nhu’ng không nên d¯eˆ’ phân vùng này lo´’n, vì FAT16 su’’ dung ˙ ˙ ˙ không gian d¯˜ıa ra´ˆt không ho’p lý. Chính vì vaˆy hãy dành cho phân vùng này khoa’ng 256 hoa˘c 512 Mbyte. ˙ ˙ ˙ Nhu˜’ng lo`’i khuyên này d¯u’a ra vo´’i gia’ thie´ˆt ra˘`ng, ban d¯oc chı’ có moˆt d¯˜ıa cu´’ng. Ne´ˆu nhu’ ˙ ˙ ˙ ban d¯oc có 2, thì vaˆ˜n su’’ dung d¯u’o’c nhu˜’ng lo`’i khuyên này, chı’ có d¯ieˆ`u phân vùng swap to´ˆt ˙ ˙ ˙ ˙ ho’n d¯a˘t trên d¯˜ıa khác vo´’i d¯˜ıa dành cho Linux. Ngu’o`’i ta nói ra˘`ng nhu’vaˆy ta˘ng to´ˆc d¯oˆ làm vieˆc ˙ ˙ ˙ ˙ trong Linux (cu˜ng deˆ˜ hieˆ’u vì d¯aˆ`u d¯oc ít pha’i chay ho’n). ˙ ˙
  21. 2.6 Windows NT và Linux: kho’’i d¯oˆng qua OS Loader cu’a NT 17 ˙ 2.5.2 Chu’o’ng trình d¯eˆ’ phân chia oˆ’ d¯˜ıa Sau khi hoàn thành ke´ˆt hoach chia oˆ’ d¯˜ıa, caˆ`n lu’a chon công cu d¯eˆ’ d¯u’a ke´ˆ hoach này thành ˙ ˙ ˙ ˙ ˙ hieˆn thu’c. Chu’o’ng trình phân chia d¯˜ıa d¯u’o’c bie´ˆt d¯´eˆn nhieˆ`u nha´ˆt là fdisk; trên moi heˆ d¯ieˆ`u ˙ ˙ ˙ ˙ ˙ hành d¯eˆ`u có phiên ba’n riêng cu’a chu’o’ng trình này. Và không caˆ`n gì ho’n ngoài chu’o’ng trình này, ne´ˆu nhu’phân chia oˆ’ d¯˜ıa tra˘´ng, không chu´’a ba´ˆt ký du˜’lieˆu nào. Nhu’ng chúng ta d¯ang xem ˙ xét tru’o`’ng ho’p d¯ã có HDH nào d¯ó trên d¯˜ıa và caˆ`n phân chia oˆ’ d¯˜ıa mà không làm ma´ˆt thông ˙ ¯ tin. fdisk không thích ho’p cho nhu˜’ng muc d¯ích nhu’vaˆy. ˙ ˙ ˙ Trong thành phaˆ`n các ba’n phân pho´ˆi Red Hat và BlackCat (ra´ˆt có theˆ’ trong các ba’n phân pho´ˆi khác) có chu’o’ng trình fips, phuc vu cho phân chia oˆ’ d¯˜ıa. Tuy nhiên, theo ý ˙ ˙ kie´ˆn cu’a ngu’o`’i dùng thì không nên su’’ dung chu’o’ng trình này. Vì the´ˆ lo`’i khuyên cu’a tác ˙ gia’ vo´’i ban d¯oc, nhu˜’ng ngu’o`’i dùng Linux mo´’i – ne´ˆu nhu’ muo´ˆn phân chia lai oˆ’ d¯˜ıa mà ˙ ˙ ˙ không làm ma´ˆt thông tin, thì hãy tìm chu’o’ng trình Partition Magic cu’a công ty Power Quest ( và su’’dung chu’o’ng trình này. ˙ Thu´’nha´ˆt, chu’o’ng trình này cho phép phân chia lai oˆ’ d¯˜ıa mà không làm ma´ˆt thông tin (tu´’c ˙ là, ta´ˆt ca’ nhu˜’ng cài d¯a˘t và ca´ˆu hình tru’o´’c d¯ó se˜ d¯u’o’c ghi lai). Khi này, không chı’ tao d¯u’o’c ˙ ˙ ˙ ˙ ˙ phân vùng mo´’i tu`’ choˆ˜ tro´ˆng trên d¯˜ıa, mà còn có theˆ’ di chuyeˆ’n các phân vùng d¯ã có theo ý muo´ˆn. Thu´’ hai, chu’o’ng trình này (thaˆm chí trong phiên ba’n dành cho DOS) cung ca´ˆp moˆt giao ˙ ˙ dieˆn d¯oˆ` hoa deˆ˜ su’’dung có hoˆ˜ tro’ chuoˆt, và moi thao tác cu˜ng nhu’thay d¯oˆ’i d¯eˆ`u tha´ˆy rõ ràng. ˙ ˙ ˙ ˙ ˙ ˙ Dieˆ`u này ra´ˆt quan trong vo´’i ngu’o`’i dùng mo´’i. ¯ ˙ Khi tao phân vùng caˆ`n d¯eˆ’ ý không cho ranh gio´’i giu˜’a các phân vùng ca˘´t laˆ˜n nhau. ˙ Tác gia’ cho ra˘`ng, nhu˜’ng thông tin d¯ã d¯u’a d¯u’ d¯eˆ’ ban d¯oc laˆp ke´ˆ hoach và thu’c hieˆn vieˆc ˙ ˙ ˙ ˙ ˙ ˙ ˙ phân chia oˆ’ d¯˜ıa thành các phân vùng. Vì the´ˆ tie´ˆp theo chúng ta se˜ xem xét các phu’o’ng án cài d¯a˘t hai HDH trên moˆt máy tính. ˙ ¯ ˙ 2.6 Windows NT và Linux: kho’’i d¯oˆng qua OS Loader cu’a NT ˙ Trong phaˆ`n này, khi nói veˆ` Windows NT xin ngaˆ`m hieˆ’u ca’ Windows 2000 và NT, vì "quan heˆ" cu’a chúng d¯o´ˆi vo´’i vieˆc cài d¯a˘t Linux hoàn toàn gio´ˆng nhau. Chúng ta gia’ thie´ˆt là Windows ˙ ˙ ˙ NT d¯ã d¯u’o’c cài vào phân vùng /dev/hda2 (ne´ˆu nhu’ban d¯oc nho´’, /dev/hda1 se˜ dành cho ˙ ˙ ˙ phân vùng FAT16). Ne´ˆu HDH Windows NT d¯ã d¯u’o’c cài d¯a˘t, nghı˜a là trình kho’’i d¯oˆng OS ¯ ˙ ˙ ˙ Loader cu˜ng d¯ã d¯u’o’c cài d¯a˘t. Và nhu’the´ˆ có theˆ’su’’dung chu’o’ng trình này d¯eˆ’kho’’i d¯oˆng Linux. ˙ ˙ ˙ ˙ Tác gia’ hy vong ra˘`ng ban d¯oc d¯ã sao lu’u nhu˜’ng thông tin có giá tri cu’a mình. Các bu’o´’c cài ˙ ˙ ˙ ˙ d¯a˘t có theˆ’ mô ta’ nhu’sau: ˙ 1. Ne´ˆu nhu’ ban d¯oc chu’a cài d¯a˘t Linux bao gio`’, thì tru’o´’c khi ba˘´t d¯aˆ`u caˆ`n chuaˆ’n bi d¯˜ıa ˙ ˙ ˙ ˙ meˆ`m kho’’i d¯oˆng và phuc hoˆ`i Windows NT. Deˆ’ tao d¯˜ıa meˆ`m kho’’i d¯oˆng chı’ caˆ`n d¯inh ˙ ˙ ¯ ˙ ˙ ˙ dang lai d¯˜ıa meˆ`m, roˆ`i sao chép lên d¯ó các taˆp tin ntldr, ntdetect.com và boot.ini tu`’ thu’ ˙ ˙ ˙ muc go´ˆc cu’a oˆ’ d¯˜ıa kho’’i d¯oˆng NT. Chu’o’ng trình tao d¯˜ıa phuc hoˆ`i Windows 2000/XP có ˙ ˙ ˙ ˙ theˆ’ chay tu`’trình d¯o’n heˆ tho´ˆng (leˆnh Backup trong Start/Program/Accessories). ˙ ˙ ˙ 2. Dùng chu’o’ng trình Partition Magic d¯eˆ’la´ˆy moˆt phaˆ`n d¯˜ıa tro´ˆng và tu`’d¯ó tao ra phân vùng ˙ ˙ vo´’i dang ext2(3) (heˆ tho´ˆng taˆp tin Linux) và phân vùng swap. Cách tính kích thu’o´’c cu’a ˙ ˙ ˙ chúng d¯ã nói o’’ trên. 3. Cài d¯a˘t Linux theo chı’ daˆ˜n cu’a ba’n phân pho´ˆi. Trong khi cài d¯a˘t caˆ`n chú ý d¯´eˆn nhu˜’ng ˙ ˙ d¯ieˆ’m sau:
  22. 18 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ • thu´’ nha´ˆt, trong quá trình cài d¯a˘t nha´ˆt d¯inh pha’i tao ra các d¯˜ıa meˆ`m kho’’i d¯oˆng ˙ ˙ ˙ ˙ Linux. Tu´’c là caˆ`n tra’ lo`’i "Yes, make a BOOT DISK" (hay tu’o’ng tu’the´ˆ, tùy thuoˆc ˙ ˙ vào ba’n phân pho´ˆi) khi d¯u’o’c ho’i có tao d¯˜ıa meˆ`m kho’’i d¯oˆng hay không. D˜ıa meˆ`m ˙ ˙ ˙ ¯ này se˜ d¯u’o’c dùng d¯´eˆn o’’ sau. Ngoài ra, có theˆ’ su’’dung d¯˜ıa meˆ`m này d¯eˆ’ kho’’i d¯oˆng ˙ ˙ ˙ Linux. Dây cu˜ng là moˆt phu’o’ng án kho’’i d¯oˆng, và ho’n nu˜’a khác vo´’i d¯˜ıa meˆ`m kho’’i ¯ ˙ ˙ d¯oˆng DOS, sau khi kho’’i d¯oˆng heˆ tho´ˆng không còn yêu caˆ`u d¯˜ıa meˆ`m nu˜’a, có theˆ’ ˙ ˙ ˙ bo’ nó ra kho’i oˆ’, su’’ dung oˆ’ d¯eˆ’ d¯oc các d¯˜ıa meˆ`m khác. Tuy nhiên cách kho’’i d¯oˆng ˙ ˙ ˙ này cu˜ng có d¯ieˆ`u tieˆn, vì the´ˆ không nên su’’dung thu’o`’ng xuyên. Chı’ su’’dung trong ˙ ˙ ˙ tru’o`’ng ho’p "ba´ˆt d¯a˘´c dı˜". D˜ıa meˆ`m này còn caˆ`n thie´ˆt cho ca´ˆu hình d¯eˆ’ kho’’i d¯oˆng ˙ ¯ ˙ nhieˆ`u HD¯ H. • thu´’ hai, khi cài d¯a˘t Linux caˆ`n cài LILO vào sector d¯aˆ`u tiên cu’a phân vùng dành ˙ cho thu’ muc go´ˆc (/) cu’a Linux, chu´’ không pha’i vào sector kho’’i d¯oˆng chính cu’a ˙ ˙ d¯˜ıa (MBR). Chúng ta gia’ thie´ˆt Linux d¯u’o’c cài vào phân vùng /dev/hda3. Nhu’ ˙ vaˆy LILO se˜ d¯u’o’c cài vào sector d¯aˆ`u tiên cu’a /dev/hda3 ˙ ˙ Theo nguyên ta˘´c, ne´ˆu nhu’ban d¯oc cài LILO vào MBR, thì không pha’i moi thu´’d¯ã ho’ng ˙ ˙ ˙ he´ˆt. Ke´ˆt qua’ cuo´ˆi cùng (kho’’i d¯oˆng qua NT Loader) vaˆ˜n có theˆ’ d¯at d¯u’o’c nhu’ng caˆ`n bo’ ˙ ˙ ˙ ra moˆt chút công su´’c. Va´ˆn d¯eˆ` o’’choˆ˜, d¯inh dang MBR tao bo’’i LILO và Windows (DOS) ˙ ˙ ˙ ˙ khác nhau. Vì the´ˆ ne´ˆu ban d¯oc cài LILO vào MBR, thì caˆ`u phuc hoˆ`i lai MBR cu’a ˙ ˙ ˙ ˙ Windows. Tác gia’ cu˜ng se˜ nói cách phuc hoˆ`i, nhu’ng to´ˆt ho’n he´ˆt là ban d¯oc cài LILO ˙ ˙ ˙ ngay laˆp tu´’c vào sector d¯aˆ`u tiên cu’a phân vùng d¯ã cài Linux. ˙ 4. Sau khi cài d¯a˘t xong, kho’’i d¯oˆng Linux ba˘`ng d¯˜ıa meˆ`m (ne´ˆu nhu’ ban d¯oc cài LILO vào ˙ ˙ ˙ ˙ phân vùng cu’a Linux và không d¯oˆng gì d¯´eˆn MBR, thì d¯ây là kha’ na˘ng duy nha´ˆt). ˙ 5. Sao chép sector kho’’i d¯oˆng cu’a Linux vào moˆt taˆp tin; taˆp tin này se˜ caˆ`n d¯eˆ’ trình kho’’i ˙ ˙ ˙ ˙ d¯oˆng Windows NT/2000 có theˆ’kho’’i d¯oˆng Linux. Vieˆc sao chép thu’c hieˆn nhu’sau: d¯aˆ`u ˙ ˙ ˙ ˙ ˙ tiên ga˘´n moˆt d¯˜ıa meˆ`m tra˘´ng (mo´’i mua thì càng to´ˆt), ˙ kênh giao tác [root]# mount -t vfat /dev/fd0 /mnt/floppy chuyeˆ’n vào thu’muc /mnt/floppy ˙ kênh giao tác [root]# cd /mnt/floppy và thu’c hieˆn câu leˆnh ˙ ˙ ˙ kênh giao tác [root]# dd if=/dev/hda3 of=/mnt/floppy/bootsect.lnx bs=512 count=1 d¯eˆ’ghi noˆi dung sector kho’’i d¯oˆng cu’a d¯˜ıa /dev/hda3 vào taˆp tin /mnt/floppy/bootsect.lnx. 1 ˙ ˙ ˙ 6. Tie´ˆp theo caˆ`n kho’’i d¯oˆng lai d¯eˆ’ vào Windows NT, ba˘`ng câu leˆnh: ˙ ˙ ˙ 1Ghi chú: ne´ˆu d¯˜ıa C: (/dev/hda1) có d¯inh dang FAT, thì có theˆ’tao taˆp tin bootsect.lnx trong thu’muc go´ˆc cu’a ˙ ˙ ˙ ˙ ˙ d¯˜ıa C:. Tác gia’ không bie´ˆt (chu’a thu’’) có theˆ’ kho’’i d¯oˆng không caˆ`n d¯˜ıa meˆ`m không, ne´ˆu phân vùng chính d¯aˆ`u ˙ tiên có d¯inh dang NTFS. Tuy nhiên o’’ d¯ây cu˜ng không có va´ˆn d¯eˆ` gì, chı’ caˆ`n sao chép sector kho’’i d¯oˆng qua d¯˜ıa ˙ ˙ ˙ meˆ`m nhu’d¯ang trình bày. Tam tho`’i nhân Linux còn chu’a hoˆ˜ tro’ to´ˆt vieˆc ghi lên phân vùng NTFS. ˙ ˙ ˙
  23. 2.6 Windows NT và Linux: kho’’i d¯oˆng qua OS Loader cu’a NT 19 ˙ kênh giao tác [root]# shutdown -h now Vì MBR chu’a có gì thay d¯oˆ’i, nên Windows NT se˜ kho’’i d¯oˆng. Trong NT caˆ`n sao chép ˙ taˆp tin bootsect.lnx vào thu’muc go´ˆc cu’a d¯˜ıa C:, hay chính xác ho’n là vào thu’muc go´ˆc ˙ ˙ ˙ cu’a phân vùng mà tu`’d¯ó kho’’i d¯oˆng Windows NT. Dây có theˆ’ là phân vùng FAT16 hay ˙ ¯ phân vùng NTFS. Da˘c d¯ieˆ’m d¯eˆ’ nhaˆn ra phân vùng này là hai taˆp tin ntldr và boot.init ¯ ˙ ˙ ˙ chu´’a trong d¯ó (nhu˜’ng taˆp tin này có theˆ’ aˆ’n!). Taˆp tin bootsect.lnx có theˆ’ d¯a˘t thuoˆc tính ˙ ˙ ˙ ˙ chı’ d¯oc (read-only). ˙ 7. Sau d¯ó tìm taˆp tin boot.ini và thêm vào dòng sau: ˙ C:\bootsect.lnx="LINUX" (ta´ˆt nhiên, trong da´ˆu ngoa˘c kép ban d¯oc có theˆ’ d¯a˘t tên ba´ˆt ky`.) ˙ ˙ ˙ ˙ 8. Vieˆc còn lai là kho’’i d¯oˆng lai máy tính moˆt laˆ`n nu˜’a, và trong trình d¯o’n chon heˆ d¯ieˆ`u ˙ ˙ ˙ ˙ ˙ ˙ ˙ hành se˜ có LINUX. Ne´ˆu chon LINUX, thì LILO se˜ d¯u’o’c chay và sau d¯ó nó (LILO) se˜ nap Linux. ˙ ˙ ˙ ˙ Còn bây gio`’ chúng ta se˜ xem xét tru’o`’ng ho’p ban d¯oc (do vô tình hay co´ˆ ý) cài d¯a˘t LILO ˙ ˙ ˙ ˙ vào ba’n ghi kho’’i d¯oˆng chính cu’a d¯˜ıa (Master Boot Record, MBR). Trong tru’o`’ng ho’p này ba’n ˙ ˙ ghi kho’’i d¯oˆng Windows NT (hay 2000) se˜ bi xóa, và vieˆc kho’’i d¯oˆng Windows NT (bu’o´’c thu´’ ˙ ˙ ˙ ˙ 6 o’’ trên) là không theˆ’. Ne´ˆu nhu’ ban d¯oc vaˆ˜n còn muo´ˆn su’’ dung trình kho’’i d¯oˆng OS Loader ˙ ˙ ˙ ˙ cu’a NT, chu´’ không muo´ˆn dùng LILO, thì nhu˜’ng bu’o´’c trên có thay d¯oˆ’i moˆt chút: thay cho ˙ bu’o´’c thu´’6 caˆ`n làm các thao tác sau. 1. Kho’’i d¯oˆng Windows NT tu`’ d¯˜ıa meˆ`m kho’’i d¯oˆng (d¯ã tao tru’o´’c khi cài d¯a˘t Linux, ne´ˆu ˙ ˙ ˙ ˙ không có thì ban d¯oc caˆ`n tìm moˆt máy khác d¯ang chay Windows NT roˆ`i tao). Trong ˙ ˙ ˙ ˙ ˙ trình d¯o’n (thu’c d¯o’n) cu’a trình kho’’i d¯oˆng caˆ`n chon leˆnh Recover, roˆ`i chon che´ˆ d¯oˆ ˙ ˙ ˙ ˙ ˙ ˙ Command mode. Sau d¯ó d¯a˘ng nhaˆp vào tài khoa’n nhà qua’n tri (administrator). ˙ ˙ 2. Phuc hoˆ`i lai ba’n ghi kho’’i d¯oˆng chính cu’a d¯˜ıa. Su’’ dung câu leˆnh fdisk /mbr. Tác gia’ ˙ ˙ ˙ ˙ ˙ dùng leˆnh này thành công, ma˘c dù trong moˆt so´ˆ bài báo nói cách phuc hoˆ`i MBR nhu’ ˙ ˙ ˙ ˙ vaˆy không pha’i lúc nào cu˜ng làm vieˆc. Trong Windows 2000 có các leˆnh chuyên dùng ˙ ˙ ˙ fixboot và fixmbr (chay tu`’ console phuc hoˆ`i heˆ tho´ˆng). Chay hai leˆnh này theo thu´’ tu’ ˙ ˙ ˙ ˙ ˙ ˙ d¯ã chı’ ra. Sau d¯ó Windows 2000 se˜ kho’’i d¯oˆng bình thu’o`’ng. ˙ 3. Kho’’i d¯oˆng lai máy tính tu`’ d¯˜ıa meˆ`m kho’’i d¯oˆng Linux và d¯a˘ng nhaˆp vào heˆ tho´ˆng vo´’i ˙ ˙ ˙ ˙ ˙ quyeˆ`n ngu’o`’i dùng root. 4. Nhaˆp leˆnh cd /etc và mo’’taˆp tin lilo.conf.O’’ d¯aˆ`u taˆp tin này có liên ke´ˆt d¯´eˆn phân ˙ ˙ ˙ ˙ vùng kho’’i d¯oˆng theo ma˘c d¯inh, ví du, /dev/hda. ˙ ˙ ˙ ˙ 5. Dùng ba´ˆt ky` trình soan tha’o nào, ví du, CoolEdit cu’a Midnight Commander, d¯eˆ’ thay ˙ ˙ the´ˆ giá tri này thành phân vùng d¯ã cài Linux lên (chính xác ho’n là thành phân vùng ˙ d¯u’o’c ga˘´n nhu’ go´ˆc (/) cu’a Linux). Ne´ˆu Linux d¯u’o’c cài vào phân vùng /dev/hda3, thì ˙ ˙ caˆ`n ghi cái d¯ó, tu´’c là thay the´ˆ /dev/hda thành /dev/hda3. Ne´ˆu nhu’ ban d¯oc không ˙ ˙ nho´’ d¯ã cài Linux vào d¯âu, thì hãy chay câu leˆnh mount và tìm ke´ˆt qua’ tu’o’ng tu’ nhu’ sau2: ˙ ˙ ˙ 2có nghı˜a là tìm phân vùng d¯ã ga˘´n vào thu’muc go´ˆc /, trong ví du này là /dev/hda3 ˙ ˙
  24. 20 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ kênh giao tác /dev/hda3 on / type reiserfs (rw) 6. Chay leˆnh /sbin/lilo d¯eˆ’ ghi trình kho’’i d¯oˆng vào phân vùng /dev/hda3 (caˆ`n chay ˙ ˙ ˙ ˙ leˆnh lilo không có tham so´ˆ). Se˜ có ca’nh báo veˆ` vieˆc phân vùng không pha’i là d¯aˆ`u ˙ ˙ tiên trên d¯˜ıa.¯ Dây chính là d¯ieˆ`u chúng ta caˆ`n, ba’n ghi kho’’i d¯oˆng cu’a Windows d¯u’o’c giu˜’ nguyên ven. ˙ ˙ ˙ 7. Thu’c hieˆn các bu’o´’c 6-8 nhu’o’’ trên. ˙ ˙ Deˆ˜ dàng d¯oán ra ra˘`ng, "quy trình" phu´’c tap vo´’i hai laˆ`n kho’’i d¯oˆng lai chı’ d¯eˆ’chuyeˆ’n sector ˙ ˙ ˙ kho’’i d¯oˆng Linux tu`’ MBR vào sector d¯aˆ`u tiên cu’a phân vùng dành cho Linux, và phuc hoˆ`i MBR cu˙’a Windows. ˙ Quá trình cài d¯a˘t Linux ke´ˆt thúc o’’d¯ây. Ban d¯oc d¯ã có theˆ’chon HDH se˜ kho’’i d¯oˆng và d¯ieˆ`u ˙ ˙ ˙ ˙ ¯ ˙ khieˆ’n máy tính cu’a mình. 2.7 Su’’ dung trình kho’’i d¯oˆng LILO ˙ ˙ 2.7.1 Cài d¯a˘t và ca´ˆu hình LILO ˙ Nhu’ d¯ã nói trong phaˆ`n lu’a chon chu’o’ng trình kho’’i d¯oˆng, ne´ˆu trên máy d¯ã cài Windows 98 ˙ ˙ ˙ vo´’i heˆ tho´ˆng taˆp tin FAT16, thì lu’a chon to´ˆt ho’n cho trình kho’’i d¯oˆng là chu’o’ng trình có trong ˙ ˙ ˙ ˙ ˙ thành phaˆ`n cu’a moi ba’n phân pho´ˆi HDH Linux – LILO (LInux LOader). ˙ ¯ Gio´ˆng nhu’tru’o`’ng ho’p Windows NT, chúng ta se˜ d¯u’a ra các bu’o´’c caˆ`n thu’c hieˆn d¯eˆ’ có theˆ’ ˙ ˙ ˙ kho’’i d¯oˆng nhieˆ`u HDH. ˙ ¯ 1. Tru’o´’c khi cài d¯a˘t Linux hãy chuaˆ’n bi d¯˜ıa meˆ`m kho’’i d¯oˆng Windows. ˙ ˙ ˙ 2. Dùng chu’o’ng trình Partition Magic d¯eˆ’ la´ˆy phaˆ`n không gian d¯˜ıa còn tro´ˆng và trên d¯ó tao ra moˆt phân vùng ext2(3) (heˆ tho´ˆng taˆp tin Linux) và moˆt phân vùng swap. Cách ˙ ˙ ˙ ˙ ˙ chia oˆ’ d¯˜ıa d¯ã nói o’’ trên. Ne´ˆu dung lu’o’ng oˆ’ d¯˜ıa cu´’ng vu’o’t quá 8,4 Gbyte thì hãy d¯oc ky˜ ˙ ˙ ˙ các phaˆ`n 2.3 và 2.5. 3. Cài d¯a˘t Linux theo chı’ daˆ˜n d¯i kèm vo´’i ba’n phân pho´ˆi. Caˆ`n nho´’ ra˘`ng, ne´ˆu ban muo´ˆn su’’ ˙ ˙ dung trình kho’’i d¯oˆng LILO, thì trong quá trình cài da˘t Linux caˆ`n chon phu’o’ng án cài ˙ ˙ ˙ ˙ LILO vào ba’n ghi kho’’i d¯oˆng chính (Master Boot Record). Tao các d¯˜ıa meˆ`m kho’’i d¯oˆng ˙ ˙ ˙ theo nguyên ta˘´c là không ba˘´t buoˆc, nhu’ng tác gia’ khuyên ban d¯oc nên làm.3 ˙ ˙ ˙ 4. Bu’o´’c tie´ˆp theo caˆ`n ca´ˆu hình LILO d¯eˆ’ có theˆ’ kho’’i d¯oˆng các HDH theo lu’a chon. LILO ˙ ¯ ˙ ˙ d¯u’o’c ca´ˆu hình ba˘`ng taˆp tin /etc/lilo.conf và câu leˆnh /sbin/lilo. Câu leˆnh này ˙ ˙ ˙ ˙ dùng d¯eˆ’ cài d¯a˘t (hay cài d¯a˘t lai) LILO. ˙ ˙ ˙ Chúng ta xem xét moˆt ví du nho’ cu’a taˆp tin ca´ˆu hình LILO. Trong ví du này chúng ˙ ˙ ˙ ˙ ta se˜ coi nhu’ thie´ˆt bi /dev/hda1 là phân vùng vo´’i DOS/Windows, còn phân vùng ˙ 3Ghi chú. Trình kho’’i d¯oˆng LILO không ba˘´t buoˆc pha’i cài d¯a˘t vào ba’n ghi kho’’i d¯oˆng chính cu’a d¯˜ıa, LILO ˙ ˙ ˙ ˙ có theˆ’ na˘`m o’’ba’n ghi kho’’i d¯oˆng cu’a phân vùng chính d¯u’o’c kích hoat và chu´’a thu’muc go´ˆc cu’a Linux hoa˘c thaˆm ˙ ˙ ˙ ˙ ˙ ˙ chí trên phân vùng lôgíc trong phân vùng mo’’roˆng. Trong tru’o`’ng ho’p d¯ó MBR caˆ`n pha’i có kha’ na˘ng nap LILO, ˙ ˙ ˙ ví du khi MBR là trình kho’’i d¯oˆng cu’a MS-DOS hay Windows. Tuy nhiên tác gia’ chu’a nhìn tha´ˆy su’ caˆ`n thie´ˆt ˙ ˙ ˙ cu’a u´’ng dung này (ne´ˆu d¯ã chon LILO làm trình kho’’i d¯oˆng chính thì hãy su’’dung cho "tron boˆ"), vì the´ˆ chúng ta ˙ ˙ ˙ ˙ ˙ ˙ se˜ không xem xét d¯´eˆn.
  25. 2.7 Su’’ dung trình kho’’i d¯oˆng LILO 21 ˙ ˙ /dev/hda2 chu´’a Linux. Trong tru’o`’ng ho’p d¯ó /etc/lilo.conf có dang gaˆ`n nhu’ sau: ˙ ˙ kênh giao tác boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg.txt root = current image = /boot/vmlinuz-2.4.22 label = linux read-only other = /dev/hda1 table = /dev/hda label = dos Vài lo`’i gia’i thích cho ví du: Dòng boot cho bie´ˆt thie´ˆt bi kho’’i d¯oˆng. ˙ ˙ ˙ Dòng compact baˆt che´ˆ d¯oˆ nén taˆp tin map – taˆp tin chu´’a d¯a˘c tính cu’a nhân d¯u’o’c kho’’i ˙ ˙ ˙ ˙ ˙ ˙ d¯oˆng; tính na˘ng (nén) này ta˘ng to´ˆc d¯oˆ cu’a kho’’i d¯oˆng d¯aˆ`u. ˙ ˙ ˙ Câu leˆnh message dùng d¯eˆ’ d¯u’a ra thông báo theo ý muo´ˆn khi kho’’i d¯oˆng. ˙ ˙ Ba˘´t d¯aˆ`u tu`’ dòng image là các phaˆ`n nho’ cu’a taˆp tin ca´ˆu hình, moˆ˜i phaˆ`n tu’o’ng u´’ng vo´’i ˙ moˆt heˆ d¯ieˆ`u hành se˜ kho’’i d¯oˆng theo lu’a chon cu’a ngu’o`’i dùng. Trong moˆ˜i phaˆ`n nhu’vaˆy ˙ ˙ ˙ ˙ ˙ ˙ có moˆt dòng label. Trên dòng này ghi tên caˆ`n nhaˆp vào da´ˆu nha˘´c LILO hay tên se˜ ˙ ˙ hieˆ’n thi trong trình d¯o’n cu’a LILO d¯eˆ’ có theˆ’ chon HDH muo´ˆn kho’’i d¯oˆng. Ne´ˆu nhu’ tên ˙ ˙ ¯ ˙ không d¯u’o’c nhaˆp sau khoa’ng tho`’i gian chı’ trên dòng delay (tính theo phaˆ`n mu’o`’i giây ˙ ˙ – caˆ`n nhân vo´’i 0,1 giây), thì se˜ kho’’i d¯oˆng HDH theo ma˘c d¯inh. Trong ví du này, se˜ ˙ ¯ ˙ ˙ ˙ kho’’i d¯oˆng Linux theo ma˘c d¯inh, vì phaˆ`n ca´ˆu hình tu’o’ng u´’ng vo´’i Linux na˘`m d¯aˆ`u tiên ˙ ˙ ˙ trong taˆp tin. Có theˆ’ chı’ ra heˆ d¯ieˆ`u hành d¯u’o’c kho’’i d¯oˆng theo ma˘c d¯inh khi thêm moˆt ˙ ˙ ˙ ˙ ˙ ˙ ˙ dòng có dang default=dos, tu´’c là su’’dung tên d¯ã d¯a˘t trên dòng label. ˙ ˙ ˙ Dòng table= cho bie´ˆt tên thie´ˆt bi chu´’a ba’ng phân chia d¯˜ıa. LILO se˜ không ˙ d¯u’a thông tin veˆ` phân chia d¯˜ıa cho heˆ d¯ieˆ`u hành d¯u’o’c kho’’i d¯oˆng ne´ˆu bie´ˆn này không ˙ ˙ ˙ d¯u’o’c d¯u’a ra. (Moˆt so´ˆ heˆ d¯ieˆ`u hành có công cu khác d¯eˆ’ xác d¯inh là d¯ã d¯u’o’c kho’’i d¯oˆng ˙ ˙ ˙ ˙ ˙ ˙ ˙ tu`’phân vùng nào.) Du`’ng quên ra˘`ng, caˆ`n thu’c hieˆn câu leˆnh /sbin/lilo, sau khi thay ¯ ˙ ˙ ˙ d¯oˆ’i chı’ daˆ˜n d¯´eˆn ba’ng phân chia d¯˜ıa, tu´’c là thay d¯oˆ’i bie´ˆn table. Ne´ˆu d¯a˘t dòng (goi ˙ ˙ là phaˆ`n nho’ thì to´ˆt ho’n) other = /dev/hda1 trong taˆp tin /etc/lilo.conf, thì ˙ trong thu’muc go´ˆc cu’a d¯˜ıa /dev/hda1 (d¯˜ıa C: trong heˆ tho´ˆng thuaˆt ngu˜’Microsoft) caˆ`n ˙ ˙ ˙ có trình kho’’i d¯oˆng phu (không pha’i là chính). Trên moˆt máy cu’a tác gia’ o’’d¯ó na˘`m trình ˙ ˙ ˙ kho’’i d¯oˆng NT Loader (vì Windows NT d¯u’o’c cài d¯a˘t tru’o´’c Linux), và LILO kho’’i d¯oˆng ˙ ˙ ˙ ˙ thành công Windows NT. Chı’ caˆ`n d¯a˘t tho`’i gian cho`’ kho’’i d¯oˆng trong taˆp tin boot.ini ˙ ˙ ˙ ba˘`ng không, d¯eˆ’ không tha´ˆy trình d¯o’n kho’’i d¯oˆng cu’a NT Loader. Tuy nhiên, ne´ˆu vì moˆt ˙ ˙ lý do nào d¯ó ban muo´ˆn tha´ˆy trình d¯o’n này thì giá tri timeout trong taˆp tin boot.ini caˆ`n ˙ ˙ ˙ d¯a˘t khác không (tho`’i gian cho`’d¯u’o’c tính theo giây). Dieˆ`u này có theˆ’caˆ`n thie´ˆt khi muo´ˆn ˙ ˙ ¯ kho’’i d¯oˆng ca’ Windows 98 tu`’ trình d¯o’n cu’a NT Loader (trong tru’o`’ng ho’p này se˜ có 3 ˙ ˙ HDH: Linux, Windows NT và Windows 98, trong trình d¯o’n cu’a LILO ne´ˆu chon dos ¯ ˙ thì se˜ hieˆn ra trình d¯o’n cu’a NT Loader roˆ`i tu`’d¯ó chon moˆt trong hai HDH Windows d¯eˆ’ ˙ ˙ ˙ ¯ kho’’i d¯oˆng). ˙ Ne´ˆu ban d¯oc muo´ˆn kho’’i d¯oˆng Windows tru’c tie´ˆp tu`’ LILO, thì hãy thêm phaˆ`n nho’ sau ˙ ˙ ˙ ˙ vào /etc/lilo.conf:
  26. 22 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ kênh giao tác other = /boot/bootsect.dos label = win trong d¯ó bootsect.dos la´ˆy tu`’thu’muc go´ˆc cu’a oˆ’ d¯˜ıa chu´’a NT Loader. ˙ 5. Sau khi su’’a xong taˆp tin /etc/lilo.conf theo ý muo´ˆn, caˆ`n chay câu leˆnh /sbin/lilo ˙ ˙ ˙ d¯eˆ’ nhu˜’ng thay d¯oˆ’i có hieˆu lu’c. Câu leˆnh này (trong tài lieˆu hu’o´’ng daˆ˜n goi là map- ˙ ˙ ˙ ˙ ˙ installer) cài d¯a˘t trình kho’’i d¯oˆng phu, mà se˜ d¯u’o’c kích hoat trong laˆ`n kho’’i d¯oˆng tie´ˆp ˙ ˙ ˙ ˙ ˙ ˙ theo. Tru’o´’c khi chay /sbin/lilo d¯eˆ’thay d¯oˆ’i bu’o´’c kho’’i d¯oˆng, hãy thu’c hieˆn câu leˆnh ˙ ˙ ˙ ˙ ˙ này vo´’i tham so´ˆ -t. Khi có tham so´ˆ này se˜ thu’c hieˆn ta´ˆt ca’ các thu’ tuc cài d¯a˘t trình ˙ ˙ ˙ ˙ kho’’i d¯oˆng, tru`’vieˆc thay d¯oˆ’i taˆp tin map, ba’n ghi sector kho’’i d¯oˆng, và ba’ng phân chia oˆ’ ˙ ˙ ˙ ˙ d¯˜ıa, tu´’c là chı’ chay thu’’ ca´ˆu hình mo´’i. Ne´ˆu cho thêm tùy chon -v, thì ban d¯oc se˜ d¯u’o’c ˙ ˙ ˙ ˙ ˙ bie´ˆt thêm thông tin chi tie´ˆt veˆ` nhu˜’ng gì leˆnh /sbin/lilo se˜ thu’c hieˆn. ˙ ˙ ˙ Khi /sbin/lilo ghi d¯è noˆi dung mo´’i lên sector kho’’i doˆng, thì noˆi dung cu˜ cu’a ˙ ˙ ˙ sector này se˜ tu’ d¯oˆng d¯u’o’c ghi nho´’ vào moˆt taˆp tin. Theo ma˘c d¯inh d¯ó là taˆp tin ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ /boot/boot.NNNN, trong d¯ó NNNN tu’o’ng u´’ng vo´’i so´ˆ cu’a thie´ˆt bi, ví du, 0300 – ˙ ˙ tu’o’ng u´’ng /dev/hda, 0800 – /dev/sda, v.v. . . Ne´ˆu taˆp tin này d¯ã có trên d¯˜ıa, thì nó ˙ không bi ghi d¯è lên. Tuy nhiên có theˆ’ d¯a˘t moˆt tên khác d¯e’ ghi sector kho’’i d¯oˆng, không ˙ ˙ ˙ ˙ nha´ˆt thie´ˆt pha’i dùng /boot/boot.NNNN. Taˆp tin /boot/boot.NNNN có theˆ’ su’’ dung d¯eˆ’ phuc hoˆ`i noˆi dung cu˜ cu’a sector kho’’i ˙ ˙ ˙ ˙ d¯oˆng, ne´ˆu không còn cách phuc hoˆ`i nào khác d¯o’n gia’n ho’n. Câu leˆnh d¯eˆ’ thu’c hieˆn có da˙ng: ˙ ˙ ˙ ˙ ˙ kênh giao tác [root:~#] dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1 hay kênh giao tác [root:~#] dd if=/boot/boot.0800 of=/dev/hda bs=446 count=1 (bs=446 vì chı’ phuc hoˆ`i chu’o’ng trình kho’’i d¯oˆng, và không d¯oˆng gì d¯´eˆn ba’ng phân chia ˙ ˙ ˙ d¯˜ıa). Cu˜ng có theˆ’ phuc hoˆ`i MBR cu˜ khi caˆ`n thie´ˆt ba˘`ng câu leˆnh /sbin/lilo vo´’i tùy chon ˙ ˙ ˙ -u. Nhu’ng caˆ`n bie´ˆt ra˘`ng, câu leˆnh này chı’ làm vieˆc d¯úng vo´’i d¯ieˆ`u kieˆn là thu’muc LILO ˙ ˙ ˙ ˙ (tu´’c là /boot) không thay d¯oˆ’i keˆ’ tu`’khi cài d¯a˘t. ˙ MBR cu’a MS-DOS có theˆ’ d¯u’o’c phuc hoˆ`i ba˘`ng cách kho’’i d¯oˆng vào DOS tu`’ d¯˜ıa meˆ`m ˙ ˙ ˙ (CD) roˆ`i chay câu leˆnh fdisk /mbr (xem trên). Leˆnh này chı’ thay d¯oˆ’i mã chu’o’ng trình ˙ ˙ ˙ kho’’i d¯oˆng na˘`m trong MBR, mà không thay d¯oˆ’i ba’ng phân chia d¯˜ıa. ˙ 6. Sau khi cài d¯a˘t lai trình kho’’i d¯oˆng caˆ`n kho’’i d¯oˆng lai máy tính và thu’’ các phu’o’ng án ˙ ˙ ˙ ˙ ˙ kho’’i d¯oˆng khác nhau d¯eˆ’ kieˆ’m tra. ˙ Deˆ’ ke´ˆt thúc phaˆ`n nói veˆ` LILO này chúng ta se˜ xem xét vài khó kha˘n có theˆ’ xua´ˆt hieˆn khi ¯ ˙ su’’dung LILO, và cách kha˘´c phuc (ne´ˆu có theˆ’). ˙ ˙ Khi LILO d¯u’o’c nap, nó d¯u’a ra màn hình tu`’ "LILO". Khi này moˆ˜i chu˜’ cái bieˆ’u thi su’ ke´ˆt ˙ ˙ ˙ ˙ thúc moˆt hành d¯oˆng nào d¯ó hay ke´ˆt thúc moˆt bu’o´’c nap LILO. Ne´ˆu kho’’i d¯oˆng bi bi ngu’ng ˙ ˙ ˙ ˙ ˙ ˙ ˙ giu˜’a chu`’ng, thì qua so´ˆ chu˜’cái d¯u’a ra có theˆ’ nhaˆn d¯inh veˆ` nguyên nhân xua´ˆt hieˆn va´ˆn d¯eˆ`. ˙ ˙ ˙
  27. 2.7 Su’’ dung trình kho’’i d¯oˆng LILO 23 ˙ ˙ • Không chu˜’cái nào hieˆn ra – không có phaˆ`n nào cu’a LILO d¯u’o’c nap. Hoa˘c LILO không ˙ ˙ ˙ ˙ d¯u’o’c cài d¯a˘t, hoa˘c phân vùng chu´’a LILO chu’a d¯u’o’c kích hoat. ˙ ˙ ˙ ˙ ˙ • L [mã loˆ˜i] – trình kho’’i d¯oˆng chính d¯ã d¯u’o’c nap và d¯ã chay (tu´’c là d¯ã nhaˆn d¯u’o’c quyeˆ`n ˙ ˙ ˙ ˙ ˙ ˙ d¯ieˆ`u khieˆ’n), nhu’ng nó không theˆ’ nap trình kho’’i d¯oˆng phu. Mã loˆ˜i hai ký tu’ cho bie´ˆt ˙ ˙ ˙ ˙ nguyên nhân cu theˆ’cu’a va´ˆn d¯eˆ` (cách gia’i mã caˆ`n tìm trong tài lieˆu ky˜ thuaˆt cu’a LILO). ˙ ˙ ˙ Thông thu’o`’ng thì va´ˆn d¯eˆ` na’y sinh do oˆ’ d¯˜ıa xa´ˆu (có khuye´ˆt taˆt) hay không d¯a˘t d¯úng ca´ˆu ˙ ˙ trúc hình hoc cu’a d¯˜ıa. Ne´ˆu LILO không du`’ng lai o’’ d¯ây, mà tie´ˆp tuc d¯u’a ra moˆt chuoˆ˜i ˙ ˙ ˙ ˙ vô taˆn các mã loˆ˜i, thì va´ˆn d¯eˆ` thu’o`’ng deˆ˜ gia’i quye´ˆt. ˙ • LI – trình kho’’i d¯oˆng chính d¯ã nap d¯u’o’c trình kho’’i d¯oˆng phu, nhu’ng không chay d¯u’o’c ˙ ˙ ˙ ˙ ˙ ˙ ˙ nó. Có theˆ’là loˆ˜i d¯u’a ca´ˆu trúc hình hoc cu’a d¯˜ıa, hoa˘c taˆp tin boot/boot.b bi di chuyeˆ’n ˙ ˙ ˙ ˙ mà ngu’o`’i dùng quên không chay /sbin/lilo. ˙ • LIL — trình kho’’i d¯oˆng phu d¯ã d¯u’o’c chay, nhu’ng nó không theˆ’ nap ba’ng mô ta’ tu`’ taˆp ˙ ˙ ˙ ˙ ˙ ˙ tin map. Nguyên nhân thu’o`’ng do khuye´ˆt taˆt cu’a oˆ’ d¯˜ıa hoa˘c không d¯u’a d¯úng ca´ˆu trúc ˙ ˙ hình hoc cu’a d¯˜ıa. ˙ • LIL? – trình kho’’i d¯oˆng phu d¯ã d¯u’o’c nap vào d¯ia chı’ không d¯úng. Thông thu’o`’ng do loˆ˜i ˙ ˙ ˙ ˙ ˙ d¯u’a ra ca´ˆu trúc hình hoc cu’a d¯˜ıa hoa˘c taˆp tin /boot/boot.b bi di chuyeˆ’n mà ngu’o`’i ˙ ˙ ˙ ˙ dùng quên không chay /sbin/lilo. ˙ • LIL- – ba’ng mô ta’ trong taˆp tin map bi phá hu’y. Thông thu’o`’ng do loˆ˜i d¯u’a ra ca´ˆu trúc ˙ ˙ hình hoc cu’a d¯˜ıa hoa˘c taˆp tin /boot/boot.b bi di chuyeˆ’n mà ngu’o`’i dùng quên không ˙ ˙ ˙ ˙ chay /sbin/lilo. ˙ • LILO – ta´ˆt ca’ các phaˆ`n cu’a LILO d¯u’o’c nap thành công. ˙ ˙ 2.7.2 Cài d¯a˘t các heˆ d¯ieˆ`u hành khác sau Linux ˙ ˙ Khi cài d¯a˘t MS-DOS và Windows 95/98, trình kho’’i d¯oˆng cu’a chúng (không phu thuoˆc vào ý ˙ ˙ ˙ ˙ muo´ˆn cu’a ban d¯oc) d¯u’o’c ghi vào Master Boot Record (MBR), và da´ˆu kích hoat trong ba’ng ˙ ˙ ˙ ˙ phân vùng se˜ d¯u’o’c chuyeˆ’n sang phân vùng MS-DOS (Windows 95/98). Mà trình kho’’i d¯oˆng ˙ ˙ MS-DOS và Windows 95/98 chı’ "bie´ˆt" chuyeˆ’n quyeˆ`n d¯ieˆ`u khieˆ’n cho sector d¯aˆ`u tiên cu’a phân vùng kích hoat. Nhu’the´ˆ, ne´ˆu nhu’ban d¯oc d¯aˆ`u tiên cài d¯a˘t Linux, và sau d¯ó mo´’i cài d¯a˘t ˙ ˙ ˙ ˙ ˙ Windows 95/98 hay MS-DOS, thì Linux se˜ không theˆ’ kho’’i d¯oˆng. Có theˆ’ phuc hoˆ`i lai LILO ˙ ˙ ˙ ba˘`ng cách chay leˆnh /sbin/lilo (ne´ˆu LILO d¯u’o’c cài vào MBR), hoa˘c kích hoat phân vùng ˙ ˙ ˙ ˙ ˙ chu´’a LILO (ne´ˆu LILO d¯u’o’c cài vào phân vùng chính). ˙ Khi có va´ˆn d¯eˆ` sau khi cài d¯a˘t moˆt heˆ d¯ieˆ`u hành khác sau Linux, thu’o`’ng có theˆ’ gia’i quye´ˆt ˙ ˙ ˙ ba˘`ng cách kho’’i d¯oˆng vào Linux ba˘`ng d¯˜ıa meˆ`m kho’’i d¯oˆng, su’’a lai taˆp tin ca´ˆu hình LILO (thêm ˙ ˙ ˙ ˙ phaˆ`n nho’ cho HDH mo´’i), roˆ`i chay /sbin/lilo. ¯ ˙ 2.7.3 Chuyeˆ’n thu’ muc /boot lên phân vùng DOS ˙ Nhu˜’ng phiên ba’n nhân Linux mo´’i nha´ˆt hoˆ˜ tro’kha’ na˘ng d¯a˘t các taˆp tin caˆ`n thie´ˆt trên giai d¯oan ˙ ˙ ˙ ˙ kho’’i d¯oˆng vào heˆ tho´ˆng taˆp tin MS-DOS (hay UMSDOS). Vì trong phaˆ`n lo´’n các tru’o`’ng ho’p ˙ ˙ ˙ ˙ phân vùng DOS chie´ˆm các vùng d¯˜ıa o’’ d¯aˆ`u (không có han che´ˆ cu’a BIOS), nên cho phép gia’i ˙ quye´ˆt nhieˆ`u va´ˆn d¯eˆ` cu’a oˆ’ d¯˜ıa lo´’n, khi mà thu’muc /boot không theˆ’na˘`m trên phân vùng dành cho Linux. ˙
  28. 24 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ Deˆ’ thu’c hieˆn phu’o’ng án kho’’i d¯oˆng này, caˆ`n phân vùng DOS o’’ che´ˆ d¯oˆ d¯oc/ghi, tao trong ¯ ˙ ˙ ˙ ˙ ˙ ˙ d¯ó moˆt thu’ muc (ví du, /dos/linux), và chuyeˆ’n ta´ˆt ca’ các taˆp tin tu`’ thu’ muc /boot vào ˙ ˙ ˙ ˙ ˙ d¯ó; thu’muc /boot d¯u’o’c chuyeˆ’n thành liên ke´ˆt tu’o’ng tru’ng d¯´eˆn thu’muc /dos/linux; vi trí ˙ ˙ ˙ ˙ ˙ mo´’i cu’a thu’ muc /boot caˆ`n chı’ ra trong taˆp tin /etc/lilo.conf, và cuo´ˆi cùng chay leˆnh ˙ ˙ ˙ ˙ /sbin/lilo. 2.8 Kho’’i d¯oˆng Linux tu`’ MS-DOS ba˘`ng loadlin.exe ˙ Không chı’ các taˆp tin kho’’i d¯oˆng và nhân có theˆ’ na˘`m trong phân vùng DOS, mà ca’ tie´ˆn trình ˙ ˙ kho’’i d¯oˆng Linux nói chung có theˆ’d¯u’o’c toˆ’ chu´’c tu`’DOS. Kha’ na˘ng này thu’c hieˆn nho`’chu’o’ng ˙ ˙ ˙ ˙ trình d¯a˘c bieˆt loadlin.exe, do Hans Lermen (lermen@elserv.ffm.fgan.de) vie´ˆt. Chu’o’ng trình ˙ ˙ này thu’o`’ng có trên các d¯˜ıa cu’a ba’n phân pho´ˆi.4 Loadlin.exe cung ca´ˆp cách kho’’i d¯oˆng Linux tu`’ oˆ’ cu´’ng an toàn nha´ˆt, khi có phân vùng ˙ kích hoat là DOS hay Windows. Phu’o’ng án kho’’i d¯oˆng này d¯u’o’c khuyên su’’ dung cho ngu’o`’i ˙ ˙ ˙ ˙ dùng Linux mo´’i. Phaˆ`n lo´’n ngu’o`’i dùng mo´’i (và không chı’ ho) không d¯u’ kiên nhaˆ˜n d¯eˆ’ d¯oc tài ˙ ˙ lieˆu ra´ˆt hay nhu’ng ra´ˆt dài (và lai vie´ˆt trên tie´ˆng Anh nu˜’a) cu’a LILO. Vì the´ˆ ho thu’o`’ng su’’dung ˙ ˙ ˙ ˙ LILO không d¯úng cách, và ke´ˆt qua’ là không theˆ’ kho’’i d¯oˆng d¯u’o’c ba´ˆt ky` heˆ d¯ieˆ`u hành nào (tác ˙ ˙ ˙ gia’ cu˜ng d¯ã ro’i vào tru’o`’ng ho’p nhu’vaˆy). Do´ˆi vo´’i nhu˜’ng ngu’o`’i dùng mo´’i thì se˜ thuaˆn tieˆn ho’n ˙ ˙ ¯ ˙ ˙ khi su’’dung loadlin.exe d¯eˆ’kho’’i d¯oˆng và ba˘´t d¯aˆ`u tìm hieˆ’u Linux. Tuy nhiên, "không vào hang ˙ ˙ cop sao ba˘´t d¯u’o’c cop". ˙ ˙ ˙ Chu’o’ng trình loadlin.exe không yêu caˆ`u pha’i cài d¯a˘t, chı’ caˆ`n d¯a˘t chu’o’ng trình – taˆp tin ˙ ˙ ˙ loadlin.exe và nhân (a’nh cu’a nhân) lên moˆt trong các d¯˜ıa mà DOS nhaˆn ra. Có theˆ’ dùng ˙ ˙ chu’o’ng trình này d¯eˆ’ kho’’i d¯oˆng Linux tu`’CD hoa˘c tu`’oˆ’ d¯˜ıa trong mang mà không caˆ`n su’’dung ˙ ˙ ˙ ˙ d¯˜ıa meˆ`m kho’’i d¯oˆng. Kha’ na˘ng này bie´ˆn loadlin.exe thành moˆt công cu tuyeˆt vo`’i d¯eˆ’kho’’i d¯oˆng ˙ ˙ ˙ ˙ ˙ Linux khi có va´ˆn d¯eˆ` vo´’i LILO. Phiên ba’n 1.6 cu’a loadlin.exe làm vieˆc vo´’i moi ca´ˆu hình DOS và có ra´ˆt ít han che´ˆ. Phiên ˙ ˙ ˙ ba’n này có theˆ’ su’’ dung boˆ nho´’ mo’’ roˆng; có theˆ’ nap các nhân lo´’n (các bzImage) và các a’nh ˙ ˙ ˙ ˙ d¯˜ıa a’o (initrd) tru’c tie´ˆp vào vùng boˆ nho´’ na˘`m trên. ˙ ˙ Vieˆc su’’ dung loadlin.exe không có nghı˜a là Linux làm vieˆc du’o´’i DOS, vì chu’o’ng trình ˙ ˙ ˙ này hoˆ˜ tro’ "kho’’i d¯oˆng lôgíc" cu’a máy tính, và sau d¯ó DOS d¯u’o’c thay the´ˆ hoàn toàn ba˘`ng ˙ ˙ ˙ Linux. Ne´ˆu nhu’ban d¯oc muo´ˆn quay tro’’lai DOS, thì pha’i kho’’i d¯oˆng lai máy tính, ví du, ba˘`ng ˙ ˙ ˙ ˙ ˙ ˙ câu leˆnh reboot. ˙ Nhu’vaˆy, caˆ`n làm gì d¯eˆ’ có theˆ’ su’’dung chu’o’ng trình loadlin.exe. ˙ ˙ • Trên máy tính cu’a ban (ta´ˆt nhiên vo´’i boˆ xu’’lý 386 hoa˘c cao ho’n) caˆ`n cài d¯a˘t DOS hay WINDOWS 95. ˙ ˙ ˙ ˙ • Caˆ`n có a’nh nén cu’a nhân Linux (zImage, bzImage)5. • Chu’o’ng trình loadlin.exe. Có theˆ’tìm tha´ˆy trên d¯˜ıa phân pho´ˆi o’’dang không nén hay trong ˙ gói LOADLIN16.TGZ. Gói nén này còn chu´’a hu’o´’ng daˆ˜n su’’dung DOC\MANUAL.TXT, ˙ taˆp tin tham so´ˆ ví du DOC\TEST.PAR,và hu’o´’ng daˆ˜n cách d¯u’a các tham so´ˆ DOC\PARAMS.DOC ˙ ˙ (d¯u`’ng quên ra˘`ng chúng là nhu˜’ng taˆp tin DOS). ˙ 4moˆt so´ˆ ba’n phân pho´ˆi còn có gói cài d¯a˘t cho chu’o’ng trình này, thông thu’o`’ng ghi taˆp tin loadlin.exe vào thu’ ˙ ˙ ˙ muc cu’a ngu’o`’i dùng root ˙ 5Ghi chú. zImage là d¯inh dang nhi phân cu˜ cu’a nhân, bzImage là d¯inh dang mo´’i ho’n (so´ˆ phiên ba’n nhân lo´’n ˙ ˙ ˙ ˙ ˙ ho’n 1.3.73) có kích thu’o´’c lên to´’i 1 Mbyte, do d¯ó, nhân khi gia’i nén có kích thu’o´’c lên to´’i 2 Mbyte. Tie´ˆp theo chúng ta se˜ chı’ nói veˆ` các taˆp tin zImage, ma˘c dù ban d¯oc có theˆ’ thay the´ˆ zImage thành bzImage ˙ ˙ ˙ ˙
  29. 2.8 Kho’’i d¯oˆng Linux tu`’ MS-DOS ba˘`ng loadlin.exe 25 ˙ Ne´ˆu ban chay loadlin.exe không có tham so´ˆ C:\LOADLIN>˙ ˙ loadlin thì se˜ nhaˆn d¯u’o’c hu’o´’ng daˆ˜n su’’dung nga˘´n gon. Thuaˆn tieˆn ho’n d¯eˆ’ d¯oc hu’o´’ng daˆ˜n này, khi ˙ ˙ ˙ ˙ ˙ ˙ ˙ chay chu’o’ng trình vo´’i tham so´ˆ more (gio´ˆng trong Linux) ˙ C:\LOADLIN> loadlin | more Bây gio`’ chúng ta có theˆ’ xem xét các bu’o´’c cài d¯a˘t Linux khi su’’ dung loadlin.exe d¯eˆ’ kho’’i ˙ ˙ d¯oˆng. ˙ 1. Chia các phân vùng cho Linux (cách làm xem phaˆ`n 2.5) 2. Cài d¯a˘t Linux vào phân vùng d¯ã chia. LILO caˆ`n cài d¯a˘t vào sector d¯aˆ`u tiên cu’a phân ˙ ˙ vùng Linux d¯eˆ’ không ghi d¯è lên MBR và không bi ma´ˆt kha’ na˘ng kho’’i d¯oˆng vào Windows. ˙ ˙ 3. Sau khi ke´ˆt thúc phaˆ`n cài d¯a˘t hãy kho’’i d¯oˆng Linux (ne´ˆu không có cách nào khác, hãy ˙ ˙ su’’dung d¯˜ıa meˆ`m kho’’i d¯oˆng). Ga˘´n phân vùng DOS (gia’ thie´ˆt là /dev/hda1, còn phân ˙ ˙ vùng Linux là /dev/hda3): kênh giao tác [root]# mount -t vfat /dev/hda1 /mnt/C Tao thu’ muc /mnt/C/loadlin và gia’i nén taˆp tin LOADLIN16.TGZ vào d¯ó. Ngoài ˙ ˙ ˙ ra sao chép tu`’thu’muc /boot vào thu’muc d¯ó ca’ taˆp tin chu´’a a’nh cu’a nhân Linux. Có ˙ ˙ ˙ theˆ’ tìm taˆp tin chu´’a a’nh cu’a nhân caˆ`n thie´ˆt nho`’ taˆp tin /etc/lilo.conf: tìm trong ˙ ˙ taˆp tin ca´ˆu hình dòng "image= " và ban d¯oc se˜ tha´ˆy tên caˆ`n thie´ˆt o’’ phía bên pha’i da´ˆu ˙ ˙ ˙ ba˘`ng. Ví du tên cu’a taˆp tin này là vmlinuz-2.4.22. Sao chép taˆp tin vmlinuz-2.4.22 tu`’ ˙ ˙ ˙ /boot vào /mnt/C/loadlin và d¯oˆ’i tên thành vmlinuz (vieˆc d¯oˆ’i tên là không nha´ˆt ˙ thie´ˆt, và chı’ có ý nghı˜a thuaˆn tieˆn cho su’’dung): ˙ ˙ ˙ kênh giao tác [root]# cp /boot/vmlinuz-2.4.22 /mnt/C/loadlin/vmlinuz 4. Bây gio`’i kho’’i d¯oˆng lai máy tính vào DOS tru’c tie´ˆp (ne´ˆu ban d¯oc có Windows 95/98 thì ˙ ˙ ˙ ˙ ˙ caˆ`n nha´ˆn phím khi kho’’i d¯oˆng d¯eˆ’ hieˆ’n thi trình d¯o’n cho phép chon DOS), hoa˘c ˙ ˙ ˙ ˙ qua hoˆp thoai lu’a chon khi nha´ˆn leˆnh ta´˘t máy (shutdown) Windows 95/98. ˙ ˙ ˙ ˙ ˙ Sau khi vào DOS hãy chuyeˆ’n sang thu’ muc C:\LOADLIN (leˆnh CD \LOADLIN) và ˙ ˙ thu’c hieˆn leˆnh ˙ ˙ ˙ C:\LOADLIN> LOADLIN vmlinuz /dev/hda3 ro vga=ask hoa˘c, ne´ˆu ban d¯oc muo´ˆn nap nhân cùng vo´’i oˆ’ d¯˜ıa RAM: ˙ ˙ ˙ ˙ C:\LOADLIN> LOADLIN vmlinuz /dev/ram rw initrd=diskimage Còn có theˆ’ghi ta´ˆt ca’ các tham so´ˆ cu’a leˆnh loadlin.exe vào taˆp tin (ví du vo´’i tên params) ˙ ˙ ˙ và goi câu leˆnh d¯ó o’’ dang sau: ˙ ˙ ˙ C:\LOADLIN> LOADLIN @params Kha’ na˘ng này d¯a˘c bieˆt có ích khi d¯u’a nhieˆ`u tham so´ˆ dòng leˆnh và khi d¯oˆ dài ˙ ˙ ˙ ˙ cu’a dòng leˆnh lo´’n ho’n 127 ký tu’. Mô ta’ d¯aˆ`y d¯u’ ta´ˆt ca’ các tham so´ˆ cu’a câu leˆnh ˙ ˙ ˙ loadlin.exe có theˆ’ tìm tha´ˆy trong taˆp tin PARAMS.DOC hoa˘c Internet trên trang ˙ ˙ và gpg109/BootPrompt- HOWTO.html
  30. 26 Cài d¯a˘t HD¯ H Linux trên cùng máy tính vo´’i Windows ˙ Bây gio`’ ban d¯oc có theˆ’ su’’ dung cách này d¯eˆ’ kho’’i d¯oˆng Linux. Công vieˆc duy nha´ˆt còn ˙ ˙ ˙ ˙ ˙ lai là làm sao d¯eˆ’ không pha’i gõ leˆnh loadlin vo´’i ta´ˆt ca’ các tham so´ˆ sau moˆ˜i laˆ`n kho’’i d¯oˆng ˙ ˙ ˙ lai. Có theˆ’ vie´ˆt thêm leˆnh goi loadlin vào taˆp tin autoexec.bat hoa˘c tao moˆt taˆp tin leˆnh (ví ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ du, linux.bat), và khi chay taˆp tin này, máy tính se˜ chuyeˆ’n vào che´ˆ d¯oˆ DOS tru’o´’c, sau d¯ó thì ˙ ˙ ˙ ˙ chay Linux. Tác gia’ cho ra˘`ng nhu˜’ng thông tin d¯ã d¯u’a ra o’’ trên d¯u’ d¯eˆ’ tao taˆp tin bat caˆ`n thie´ˆt. ˙ ˙ ˙ Caˆ`n nói thêm ra˘`ng, không d¯u’o’c kho’’i d¯oˆng Linux tu`’ giao dieˆn d¯oˆ` hoa DOS/Windows và caˆ`n ˙ ˙ ˙ ˙ ta˘´t moˆt vài tùy chon trong taˆp tin aˆ’n C:\MSDOS.SYS (d¯ây là taˆp tin va˘n ba’n thông thu’o`’ng), ˙ ˙ ˙ ˙ ba˘`ng cách thêm vào hai dòng sau (ne´ˆu chu’a có): BootGUI=0 Logo=0 Dòng d¯aˆ`u tiên ta˘´t giao dieˆn d¯oˆ` hoa, và DOS se˜ d¯u’o’c kho’’i d¯oˆng thay cho Windows 95/98. ˙ ˙ ˙ ˙ (Deˆ’ chay giao dieˆn d¯oˆ` hoa, caˆ`n nhaˆp câu leˆnh C:> win). ¯ ˙ ˙ ˙ ˙ ˙ Logo=0 ta˘´t vieˆc hieˆ’n thi bieˆ’u tu’o’ng Windows (cu’’a soˆ’). Va´ˆn d¯eˆ` o’’ choˆ˜, d¯o´ˆi vo´’i moˆt so´ˆ cac ˙ ˙ ˙ ˙ ˙ màn hình Linux se˜ d¯u’a ra moˆt màn hình tro´ˆng roˆ˜ng sau khi kho’’i d¯oˆng, ne´ˆu nhu’ có hieˆ’n thi ˙ ˙ ˙ bieˆ’u tu’o’ng Windows. ˙
  31. Chu’o’ng 3 Bash To´ˆt goˆ˜ ho’n to´ˆt nu’o´’c so’n – ca dao tuc ngu˜’Vieˆt Nam ˙ ˙ Trong phaˆ`n này chúng ta se˜ d¯eˆ` caˆp d¯´eˆn va´ˆn d¯eˆ` làm vieˆc vo´’i Linux o’’ che´ˆ d¯oˆ text, hay còn ˙ ˙ ˙ d¯u’o’c goi là console hoa˘c terminal. Nhu˜’ng ngu’o`’i dùng Linux mo´’i (newbie) thu’o`’ng nghı˜ se˜ ˙ ˙ ˙ cha˘’ng bao gio`’ làm vieˆc o’’ che´ˆ d¯oˆ này, vì d¯ã có giao dieˆn d¯oˆ` hoa. Tuy nhiên d¯ây là moˆt ý kie´ˆn ˙ ˙ ˙ ˙ ˙ sai laˆ`m, bo’’i vì ra´ˆt nhieˆ`u công vieˆc có theˆ’ thu’c hieˆn nhanh và thuaˆn tieˆn trong che´ˆ d¯oˆ này ho’n ˙ ˙ ˙ ˙ ˙ ˙ là su’’dung giao dieˆn d¯oˆ` hoa. Và dù sao thì che´ˆ d¯oˆ text cu’a HDH Linux không pha’i là che´ˆ d¯oˆ ˙ ˙ ˙ ˙ ¯ ˙ text moˆt tie´ˆn trình cu’a MS-DOS. Vì Linux là HDH d¯a tie´ˆn trình, nên ngay trong che´ˆ d¯oˆ text ˙ ¯ ˙ d¯ã có kha’ na˘ng làm vieˆc trong vài cu’’a soˆ’. Và d¯eˆ’ soan tha’o moˆt taˆp tin va˘n ba’n không nha´ˆt ˙ ˙ ˙ ˙ thie´ˆt pha’i chay các trình soan tha’o lo´’n và chaˆm chap (d¯a˘c bieˆt trên các máy có ca´ˆu hình phaˆ`n ˙ ˙ ˙ ˙ ˙ ˙ cu´’ng tha´ˆp) cu’a môi tru’o`’ng d¯oˆ` hoa. ˙ 3.1 Heˆ vo’ là gì? ˙ Chúng ta thu’o`’ng nói "ngu’o`’i dùng làm vieˆc vo´’i heˆ d¯ieˆ`u hành". Dieˆ`u này không hoàn toàn ˙ ˙ ¯ d¯úng, vì trên thu’c te´ˆ "liên heˆ" vo´’i ngu’o`’i dùng d¯u’o’c thu’c hieˆn bo’’i moˆt chu’o’ng trình d¯a˘c bieˆt. ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ Có hai dang cu’a chu’o’ng trình d¯ã d¯eˆ` caˆp - heˆ vo’, hay shell, d¯eˆ’ làm vieˆc trong che´ˆ d¯oˆ text ˙ ˙ ˙ ˙ ˙ (giao dieˆn dòng leˆnh) và giao dieˆn d¯oˆ` hoa GUI (Graphical User Interface), thu’c hieˆn "liên ˙ ˙ ˙ ˙ ˙ ˙ heˆ" vo´’i ngu’o`’i dùng trong môi tru’o`’ng d¯oˆ` hoa. Caˆ`n nói ngay ra˘`ng, ba´ˆt ky` chu’o’ng trình nào ˙ ˙ trong Linux có theˆ’ kho’’i d¯oˆng tu`’ dòng leˆnh cu’a heˆ vo’ (ne´ˆu máy chu’ X d¯ã chay), cu˜ng nhu’ ˙ ˙ ˙ ˙ qua giao dieˆn d¯oˆ` hoa. Chay chu’o’ng trình tu`’ dòng leˆnh cu’a heˆ vo’ tu’o’ng d¯u’o’ng vo´’i vieˆc nháy ˙ ˙ ˙ ˙ ˙ ˙ (d¯úp) chuoˆt lên bieˆ’u tu’o’ng cu’a chu’o’ng trình trong GUI. Du’a các tham so´ˆ cho chu’o’ng trình ˙ ˙ ¯ trên dòng leˆnh tu’o’ng d¯u’o’ng vo´’i vieˆc chúng ta kéo và tha’ cái gì d¯ó lên bieˆ’u tu’o’ng chu’o’ng trình ˙ ˙ ˙ trong môi tru’o`’ng d¯oˆ` hoa. Nhu’ng ma˘t khác, moˆt so´ˆ chu’o’ng trình không theˆ’chay o’’GUI và chı’ ˙ ˙ ˙ ˙ có theˆ’ thu’c hieˆn tu`’ dòng leˆnh. Nói ngoài leˆ` moˆt chút, tên goi "heˆ vo’" bi pha’n d¯o´ˆi ra´ˆt nhieˆ`u. ˙ ˙ ˙ ˙ ˙ ˙ ˙ Theo ý kie´ˆn cu’a moˆt so´ˆ chuyên gia ngôn ngu˜’cu˜ng nhu’chuyên gia Linux thì nên goi chu’o’ng ˙ ˙ trình này moˆt cách d¯úng ho’n là "trình xu’’ lý leˆnh" hay "trình biên dich leˆnh". Tuy nhiên, tên ˙ ˙ ˙ ˙ goi "heˆ vo’" (shell) d¯u’o’c dùng cho các chu’o’ng trình dùng d¯eˆ’ biên dich leˆnh trong che´ˆ d¯oˆ text ˙ ˙ ˙ ˙ ˙ ˙ trên moi heˆ tho´ˆng UNIX. Trên các heˆ tho´ˆng UNIX d¯aˆ`u tiên có moˆt chu’o’ng trình, goi là sh, ˙ ˙ ˙ ˙ ˙ vie´ˆt ta˘´t cu’a shell. Sau d¯ó, vài bie´ˆn theˆ’ cu’a sh d¯u’o’c phát trieˆ’n và làm to´ˆt ho’n, trong d¯ó có ˙ Bourne shell - phiên ba’n mo’’ roˆng cu’a sh, vie´ˆt bo’’i Steve Bourne. Du’ án GNU (du’ án ˙ ˙ ˙ phát trieˆ’n chu’o’ng trình u´’ng dung cu’a Stollman, xem sau d¯ó cho ra d¯o`’i ˙ heˆ vo’ bash, tên goi cu’a nó d¯u’o’c gia’i mã ra là Bourne-again shell, tu´’c là "lai là heˆ vo’ ˙ ˙ ˙ ˙ ˙
  32. 28 Bash cu’a Bourne". Trên tie´ˆng Anh d¯ây là moˆt cách cho’i chu˜’, vì tu`’ Bourne d¯oc gio´ˆng vo´’i tu`’ borne ˙ ˙ (sinh ra, d¯e’ ra), và nhu’ the´ˆ bash còn có theˆ’ gia’i mã là "shell d¯u’o’c sinh ra laˆ`n hai". Tie´ˆp theo ˙ chúng ta se˜ chı’ xem xét bash, vì the´ˆ o’’ du’o´’i khi nói d¯´eˆn heˆ vo’, xin ngaˆ`m hieˆ’u d¯ó là bash ˙ Tu’moˆt mình bash không thu’c hieˆn moˆt công vieˆc u´’ng dung nào. Nhu’ng nó hoˆ˜ tro’vieˆc thu’c ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ thi moi chu’o’ng trình khác, tu`’ vieˆc tìm kie´ˆm chu’o’ng trình d¯u’o’c goi, chay chúng d¯´eˆn vieˆc toˆ’ ˙ ˙ ˙ ˙ ˙ ˙ chu´’c du˜’lieˆu d¯aˆ`u vào/d¯aˆ`u ra. Ngoài ra, heˆ vo’ chiu trách nhieˆm veˆ` công vieˆc vo´’i các bie´ˆn môi ˙ ˙ ˙ ˙ ˙ tru’o`’ng và thu’c hieˆn moˆt vài bie´ˆn d¯oˆ’i (the´ˆ, hoán d¯oˆ’i vi trí) các tham so´ˆ leˆnh. Nhu’ng tính cha´ˆt ˙ ˙ ˙ ˙ ˙ chính cu’a heˆ vo’, nho`’ d¯ó d¯u’a heˆ vo’ tro’’ thành moˆt công cu manh cu’a ngu’o`’i dùng, d¯ó là nó ˙ ˙ ˙ ˙ ˙ bao goˆ`m moˆt ngôn ngu˜’ laˆp trình d¯o’n gia’n. Trong toán hoc tu`’ lâu d¯ã d¯u’o’c chu´’ng minh ra˘`ng, ˙ ˙ ˙ ˙ ba´ˆt ky` moˆt thuaˆt toán nào cu˜ng có theˆ’ d¯u’o’c xây du’ng tu`’hai (ba) thao tác co’ ba’n và moˆt toán ˙ ˙ ˙ ˙ ˙ tu’’ d¯ieˆ`u kieˆn. Heˆ vo’ cung ca´ˆp các toán tu’’ d¯ieˆ`u kieˆn và toán tu’’ vòng la˘p. Nó su’’ dung các tieˆn ˙ ˙ ˙ ˙ ˙ ˙ ích và chu’o’ng trình khác (có trong thành phaˆ`n heˆ d¯ieˆ`u hành, hay d¯u’o’c cài d¯a˘t riêng) d¯eˆ’ làm ˙ ˙ ˙ các thao tác co’ ba’n cho ngôn ngu˜’ laˆp trình mà nó hoˆ˜ tro’.Doˆ`ng tho`’i cho phép d¯u’a các tham ˙ ˙ ¯ so´ˆ cu˜ng nhu’ ke´ˆt qua’ làm vieˆc cu’a moˆt chu’o’ng trình to´’i các chu’o’ng trình khác hay to´’i ngu’o`’i ˙ ˙ dùng. Ke´ˆt qua’ thu d¯u’o’c là moˆt ngôn ngu˜’ laˆp trình manh. Dây cu˜ng là su´’c manh và là moˆt ˙ ˙ ˙ ˙ ¯ ˙ ˙ trong các chu´’c na˘ng chính cu’a heˆ vo’. Tru’o´’c khi ba˘´t d¯aˆ`u phaˆ`n này, ban d¯oc nên bie´ˆt các toˆ’ ho’p ˙ ˙ ˙ ˙ phím chính, su’’dung d¯eˆ’ d¯ieˆ`u khieˆ’n vieˆc nhaˆp du˜’lieˆu trên dòng leˆnh. Nên nho´’ ít nha´ˆt cách su’’ ˙ ˙ ˙ ˙ ˙ dung cu’a các (toˆ’ ho’p) phím + , + , và các phím có mu˜i tên. ˙ ˙ 3.2 Các ký tu’ d¯a˘c bieˆt ˙ ˙ ˙ Heˆ vo’ bash su’’ dung moˆt vài ký tu’ tu`’ boˆ 256 ký tu’ ASCII cho các muc d¯ính riêng, hoa˘c d¯eˆ’ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ bieˆ’u thi các thao tác nào d¯ó, hoa˘c d¯eˆ’ bie´ˆn d¯oˆ’i bieˆ’u thu´’c. Các ký tu’này bao goˆ`m: ˙ ˙ ˙ ‘~!@#$%^&*()_ []{}:;’"/\> ) và ký tu’khoa’ng tra˘´ng. Phu ˙ ˙ ˙ ˙ ˙ thuoˆc vào tình huo´ˆng các ký tu’ d¯a˘c bieˆt này có theˆ’ su’’ dung vo´’i ý nghı˜a d¯a˘c bieˆt cu’a nó hay ˙ ˙ ˙ ˙ ˙ ˙ ˙ su’’dung nhu’moˆt ký tu’thông thu’o`’ng. Nhu’ng trong d¯a so´ˆ các tru’o`’ng ho’p không khuyên dùng ˙ ˙ ˙ ˙ các ký tu’vo´’i giá tri thu´’hai. Tru’o´’c he´ˆt d¯ó là vieˆc su’’dung chúng trong tên taˆp tin và thu’muc. ˙ ˙ ˙ ˙ ˙ ˙ Tuy nhiên các ký tu’_, - và . (da´ˆu gach du’o´’i, gach ngang và da´ˆu cha´ˆm) thu’o`’ng d¯u’o’c su’’dung ˙ ˙ ˙ ˙ ˙ trong tên taˆp tin, và d¯ây là moˆt ví du cho tha´ˆy không pha’i lúc nào chúng cu˜ng có giá tri d¯a˘c ˙ ˙ ˙ ˙ ˙ bieˆt. Trong tên taˆp tin chı’ da´ˆu cha´ˆm (.) và gach chéo (/) có giá tri d¯a˘c bieˆt. Ký hieˆu gach chéo ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ dùng d¯eˆ’ phân chia tên các thu’muc trong d¯u’o`’ng daˆ˜n, còn da´ˆu cha´ˆm có giá tri d¯a˘c bieˆt khi nó ˙ ˙ ˙ ˙ là ký tu’ d¯aˆ`u tiên trong tên taˆp tin (cho bie´ˆt taˆp tin là "aˆ’n"). Vieˆc d¯u’a ngay ta´ˆt ca’ ý nghı˜a d¯a˘c ˙ ˙ ˙ ˙ ˙ bieˆt cu’a nhu˜’ng ký tu’ này và các tình huo´ˆng su’’ dung chúng tam tho`’i không có ích. Chúng ta ˙ ˙ ˙ ˙ se˜ xem xét chúng daˆ`n daˆ`n trong các phaˆ`n sau, khi caˆ`n su’’ dung d¯´eˆn. Tuy nhiên, 3 ký hieˆu có ˙ ˙ ý nghı˜a lo´’n và caˆ`n d¯eˆ` caˆp d¯´eˆn d¯aˆ`u tiên. Ký hieˆu \ (gach chéo ngu’o’c) có theˆ’ goi là "ký hieˆu ˙ ˙ ˙ ˙ ˙ ˙ xóa bo’ ý nghı˜a d¯a˘c bieˆt" cho ba´ˆt ky` ký tu’ d¯a˘c bieˆt nào, d¯u´’ng ngay sau \. Ví du, ne´ˆu muo´ˆn ˙ ˙ ˙ ˙ ˙ ˙ su’’dung khoa’ng tra˘´ng trong tên taˆp tin, thì chúng ta caˆ`n d¯a˘t tru’o´’c ký tu’khoa’ng tra˘´ng d¯ó moˆt ˙ ˙ ˙ ˙ ˙ da´ˆu Ví˙ du, câu leˆnh sau: ˙ ˙ kênh giao tác teppi82@teppi:~$ cp lennon_imagine lennon\ imagine Các ký tu’ ’ và " (ngoa˘c d¯o’n và ngoa˘c kép) có theˆ’ goi là "các ký tu’ trích daˆ˜n". Moˆ˜i ký tu’ ˙ ˙ ˙ ˙ ˙ ˙ này luôn luôn d¯u’o’c su’’dung trong moˆt ca˘p vo´’i ba’n sao cu’a chính nó d¯eˆ’d¯óng khung moˆt bieˆ’u ˙ ˙ ˙ ˙ ˙ thu´’c nào d¯ó, gio´ˆng nhu’ trong các va˘n ba’n, sách báo, . . . thông thu’o`’ng. Ne´ˆu nhu’ moˆt d¯oan ˙ ˙
  33. 3.3 Thu’c thi các câu leˆnh 29 ˙ ˙ va˘n ba’n nào d¯ó d¯a˘t trong ngoa˘c d¯o’n, thì ta´ˆt ca’ các ký tu’ na˘`m trong ngoa˘c d¯o’n này có giá ˙ ˙ ˙ ˙ tri nhu’ các ký tu’ thông thu’o`’ng, khôn moˆt ký tu’ nào có ý nghı˜a d¯a˘c bieˆt. Tro’’ lai vo´’i ví du su’’ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ dung khoa’ng tra˘´ng trong tên taˆp tin o’’ trên, có theˆ’ nói, ne´ˆu muo´ˆn d¯a˘t taˆp tin cái tên "lennon ˙ ˙ ˙ ˙ imagine" caˆ`n d¯u’a tên d¯ó vào da´ˆu ngoa˘c: ˙ kênh giao tác teppi82@teppi:~$ cp lennon_imagine ’lennon imagine’ Su’khác nhau trong cách su’’dung ký tu’’ và " d¯ó là, trong ngoa˘c d¯o’n ma´ˆt ý nghı˜a d¯a˘c bieˆt ˙ ˙ ˙ ˙ ˙ ˙ ta´ˆt ca’ các ký tu’, còn trong ngoa˘c kép - ta´ˆt ca’ chúng ngoai tru`’ $, ’ và \ (da´ˆu d¯ô la, ngoa˘c ˙ ˙ ˙ ˙ d¯o’n và da´ˆu gach ngu’o’c). ˙ ˙ 3.3 Thu’c thi các câu leˆnh ˙ ˙ Nhu’d¯ã nói o’’trên, moˆt trong các chu´’c na˘ng chính cu’a heˆ vo’ là toˆ’ chu´’c vieˆc thu’c hieˆn các câu ˙ ˙ ˙ ˙ ˙ leˆnh mà ngu’o`’i dùng d¯u’a vào trên dòng leˆnh. Heˆ vo’, nói riêng, cung ca´ˆp cho ngu’o`’i dùng hai ˙ ˙ ˙ thao tác d¯a˘c bieˆt d¯eˆ’ toˆ’ chu´’c vieˆc d¯u’a các câu leˆnh trên dòng leˆnh: ; và &. ˙ ˙ ˙ ˙ ˙ 3.3.1 Thao tác ; Ma˘c dù ngu’o`’i dùng thu’o`’ng chı’ nhaˆp trên dòng leˆnh tu`’ng câu leˆnh moˆt, nhu’ng còn có theˆ’ d¯u’a ˙ ˙ ˙ ˙ ˙ vào dòng leˆnh d¯ó ngay laˆp tu´’c vài câu leˆnh, và chúng se˜ thu’c hieˆn laˆ`n lu’o’t tu`’ câu leˆnh này ˙ ˙ ˙ ˙ ˙ ˙ ˙ d¯´eˆn câu leˆnh khác. Deˆ’ làm d¯u’o’c d¯ieˆ`u này caˆ`n su’’dung ký tu’d¯a˘c bieˆt - ;. Ne´ˆu dùng ký tu’này ˙ ¯ ˙ ˙ ˙ ˙ ˙ ˙ d¯eˆ’phân chia các câu leˆnh, thì câu leˆnh tie´ˆp theo se˜ d¯u’o’c coi nhu’tham so´ˆ cu’a leˆnh phía tru’o´’c. ˙ ˙ ˙ ˙ Nhu’vaˆy, ne´ˆu nhaˆp vào dòng leˆnh cái gì d¯ó gio´ˆng nhu’sau: ˙ ˙ ˙ kênh giao tác teppi82@teppi:~$ command1 ; command2 thì heˆ vo’ d¯aˆ`u tiên se˜ thu’c hieˆn câu leˆnh command1, cho`’ cho leˆnh d¯ó hoàn thành, sau d¯ó ˙ ˙ ˙ ˙ ˙ chay command2, cho`’leˆnh hoàn thành, sau d¯ó lai d¯u’a ra dòng nhaˆp leˆnh và cho`’các hành d¯oˆng ˙ ˙ ˙ ˙ ˙ ˙ tie´ˆp theo cu’a ngu’o`’i dùng. 3.3.2 Thao tác & Thao tác & d¯u’o’c dùng d¯eˆ’ toˆ’ chu´’c vieˆc thu’c hieˆn các câu leˆnh trong che´ˆ d¯oˆ neˆ`n sau. Ne´ˆu d¯a˘t ˙ ˙ ˙ ˙ ˙ ˙ ˙ da´ˆu & ngay sau câu leˆnh, thì heˆ vo’ se˜ tra’ lai quyeˆ`n d¯ieˆ`u khieˆ’n cho ngu’o`’i dùng ngay sau khi ˙ ˙ ˙ chay câu leˆnh, mà không d¯o’i cho câu leˆnh d¯ó hoàn thành. Ví du, ne´ˆu nhaˆp vào dòng leˆnh ˙ ˙ ˙ ˙ ˙ ˙ ˙ "command1 & command2 &", thì heˆ vo’ chay câu leˆnh command1, ngay laˆp tu´’c chay leˆnh ˙ ˙ ˙ ˙ ˙ ˙ command2, và sau d¯ó không chaˆm treˆ˜ tra’ lai dòng nhaˆp leˆnh cho ngu’o`’i dùng. ˙ ˙ ˙ ˙ 3.3.3 Thao tác && và || Các thao tác && và || lá nhu˜’ng thao tác d¯ieˆ`u khieˆ’n. Ne´ˆu trên dòng leˆnh là command1 && command2, ˙ thì command2 se˜ thu’c hieˆn và chı’ thu’c hieˆn trong tru’o`’ng ho’p trang thái thoát ra cu’a leˆnh ˙ ˙ ˙ ˙ ˙ ˙ ˙ command1 ba˘`ng không (0), tu´’c là leˆnh d¯ó thu’c hieˆn thành công. Moˆt cách tu’o’ng tu’, ne´ˆu dòng ˙ ˙ ˙ ˙ ˙ leˆnh có dang command1 || command2, thì command2 se˜ thu’c hieˆn và chı’ thu’c hieˆn khi ˙ ˙ ˙ ˙ ˙ ˙ trang thái thoát cu’a leˆnh command1 khác không. Chúng ta se˜ không xem xét ma˘t ky˜ thuaˆt cu’a ˙ ˙ ˙ ˙
  34. 30 Bash vieˆc thu’c hieˆn moˆt câu leˆnh nào d¯ó. Chı’ có theˆ’ nói nga˘´n gon ra˘`ng, heˆ vo’ pha’i tìm mã (code) ˙ ˙ ˙ ˙ ˙ ˙ ˙ chu’o’ng trình, nap mã d¯ó vào boˆ nho´’, chuyeˆ’n các tham so´ˆ d¯ã nhaˆp trên dòng leˆnh vào cho câu ˙ ˙ ˙ ˙ leˆnh, và sau khi thu’c hieˆn xong thì theo moˆt cách nào d¯ó tra’ lai ke´ˆt qua’ thu’c hieˆn leˆnh này ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ cho ngu’o`’i dùng hay tie´ˆn trình khác. Chúng ta se˜ xem xét qua các bu’o´’c này. Bu’o´’c d¯aˆ`u tiên - tìm kie´ˆm câu leˆnh. Các câu leˆnh chia thành hai loai: noˆi trú (mã cu’a chúng có trong mã cu’a ˙ ˙ ˙ ˙ chính heˆ vo’) và ngoai trú (mã cu’a chúng na˘`m trong moˆt taˆp tin riêng le’ trên d¯˜ıa). Heˆ vo’ luôn ˙ ˙ ˙ ˙ ˙ luôn tìm tha´ˆy leˆnh noˆi trú, còn d¯eˆ’ tìm các leˆnh ngoai trú ngu’o`’i dùng, theo nguyên ta˘´c, pha’i ˙ ˙ ˙ ˙ chı’ cho heˆ vo’ d¯u’o`’ng daˆ˜n d¯aˆ`y d¯u’ to´’i taˆp tin tu’o’ng u´’ng. Tuy nhiên d¯eˆ’go˜’"gánh na˘ng" cho ngu’o`’i ˙ ˙ ˙ dùng heˆ vo’ bie´ˆt cách tìm leˆnh ngoai trú trong các thu’muc, mà d¯u’o’c lieˆt kê trong d¯u’o`’ng daˆ˜n ˙ ˙ ˙ ˙ ˙ ˙ tìm kie´ˆm. Chı’ khi (heˆ vo’) không theˆ’ tìm tha´ˆy taˆp tin caˆ`n thie´ˆt trong các thu’ muc d¯ó, nó mo´’i ˙ ˙ ˙ quye´ˆt d¯inh ra˘`ng ngu’o`’i dùng d¯ã nhaˆ`m khi nhaˆp tên leˆnh. Veˆ` cách thêm thu’ muc vào d¯u’o`’ng ˙ ˙ ˙ ˙ daˆ˜n tìm kie´ˆm chúng ta se˜ nói d¯´eˆn o’’du’o´’i, còn bây gio`’chúng ta se˜ xem xét cách heˆ vo’ toˆ’ chu´’c ˙ vieˆc d¯u’a du˜’lieˆu vào cho câu leˆnh d¯ang thu’c hieˆn và vieˆc d¯u’a ke´ˆt qua’ to´’i cho ngu’o`’i dùng. ˙ ˙ ˙ ˙ ˙ ˙ ’ 3.4¯ Daˆ`u vào/d¯aˆ`u ra tiêu chuaˆn 3.4.1 Dòng du˜’ lieˆu vào-ra ˙ Khi moˆt chu’o’ng trình d¯u’o’c thu’c hieˆn, nó d¯u’o’c cung ca´ˆp ba dòng du˜’ lieˆu (hay còn goi là kênh): ˙ ˙ ˙ ˙ ˙ ˙ ˙ • d¯aˆ`u vào tiêu chuaˆ’n (standard input hay stdin). Qua kênh này du˜’lieˆu d¯u’o’c d¯u’a vào cho ˙ ˙ chu’o’ng trình; • d¯aˆ`u ra tiêu chuaˆ’n (standard output hay stdout). Qua kênh này chu’o’ng trình d¯u’a ra ke´ˆt qua’ làm vieˆc cu’a mình; ˙ • kênh thông báo loˆ˜i tiêu chuaˆ’n (standard error hay stderr). Qua kênh này chu’o’ng trình d¯u’a ra thông tin veˆ` loˆ˜i. Tu`’ d¯aˆ`u vào tiêu chuaˆ’n chu’o’ng trình chı’ có theˆ’ d¯oc, còn hai d¯aˆ`u ra và kênh thông báo loˆ˜i ˙ d¯u’o’c chu’o’ng trình su’’dung chı’ d¯eˆ’ ghi. Theo ma˘c d¯inh d¯aˆ`u vào có liên ke´ˆt1 vo´’i bàn phím, còn ˙ ˙ ˙ ˙ d¯aˆ`u ra và kênh báo loˆ˜i hu’o´’ng d¯´eˆn terminal cu’a ngu’o`’i dùng. Nói cách khác, toàn boˆ thông tin ˙ cu’a leˆnh hay chu’o’ng trình mà ngu’o`’i dùng d¯ã chay, và ta´ˆt ca’ nhu˜’ng thông báo loˆ˜i, d¯u’o’c d¯u’a ˙ ˙ ˙ ra cu’’a soˆ’ terminal. Tuy nhiên, chúng ta se˜ tha´ˆy o’’ du’o´’i, có theˆ’ chuyeˆ’n hu’o´’ng thông báo d¯aˆ`u ra (ví du, vào taˆp tin). Deˆ’ cho tha´ˆy kênh thông báo loˆ˜i tiêu chuaˆ’n làm vieˆc nhu’ the´ˆ nào, hãy ˙ ˙ ¯ ˙ thu’c hieˆn câu leˆnh ls vo´’i moˆt tham so´ˆ không d¯úng, ví du dùng tham so´ˆ là moˆt tên taˆp tin ˙ ˙ ˙ ˙ ˙ ˙ ˙ không toˆ`n tai. Trong tru’o`’ng ho’p này, ls d¯u’a moˆt tin nha˘´n báo loˆ˜i ra kênh thông báo loˆ˜i tiêu ˙ ˙ ˙ chuaˆ’n. Tuy nhiên, d¯o´ˆi vo´’i ngu’o`’i dùng thì trong tru’o`’ng ho’p này kênh thông báo loˆ˜i tiêu chuaˆ’n ˙ không khác gì vo´’i d¯aˆ`u ra tiêu chuaˆ’n, bo’’i vì chúng ta cu˜ng tha´ˆy thông báo loˆ˜i d¯ó trên cu’’a soˆ’ terminal. Làm vieˆc vo´’i d¯aˆ`u vào và d¯aˆ`u ra tiêu chuaˆ’n d¯u’o’c minh hoa to´ˆt nha´ˆt qua ví du các ˙ ˙ ˙ ˙ leˆnh echo và cat. ˙ 3.4.2 Leˆnh echo ˙ Câu leˆnh echo dùng d¯eˆ’ chuyeˆ’n to´’i d¯aˆ`u ra tiêu chuaˆ’n dòng ký tu’, mà d¯u’o’c d¯u’a vào làm tham ˙ ˙ ˙ so´ˆ cho nó. Sau d¯ó leˆnh này d¯u’a ra tín hieˆu chuyeˆ’n dòng và hoàn ta´ˆt công vieˆc. Hãy thu’’ thu’c ˙ ˙ ˙ ˙ hieˆn câu leˆnh sau: ˙ ˙ 1gio´ˆng liên ke´ˆt hóa hoc ˙