Tài liệu Linux cho người dùng

pdf 55 trang hapham 480
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu Linux cho người dùng", để 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:

  • pdftai_lieu_linux_cho_nguoi_dung.pdf

Nội dung text: Tài liệu Linux cho người dùng

  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 ˙