Nội dungI.Khái niệm:3II.Cơ chế Boot:7III.Cài đặt multiBoot:111.Các khái niệm chung:112.Khái niệm về File System133.Đặc điểm phân vùng để cài hệ điều hành:184.Xác định số lượng hệ điều hành để thực hiện multiBoot:205.Cách cài đặt multiBoot:24IV.Tài liệu tham khảo:27
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
oOo
MÔN HỌC: HỆ ĐIỀU HÀNH
TÊN TIỂU LUẬN:
Nhóm thực hiện:
Cơ chế Boot và cách cài đặt
MultiBoot nhiều hệ điều hành trên
cùng một máy đơn
Trang 3TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
Cơ chế Boot và cách cài đặt
MultiBoot nhiều hệ điều hành trên
Trang 4Nội dung
Nhóm 1 | Học kì 2 |
Trang 5Một trình tự khởi động (boot sequence) là một tập hợp các lệnh
ban đầu được máy tính thực hiện khi nó được khởi động
Trình tự khởi động, thường được gọi là thứ tự khởi động, là thứ tựcủa các thiết bị được liệt kê trong BIOS mà máy tính sẽ tìm kiếm thông tin
về hệ điều hành
Ổ đĩa cứng, ổ đĩa quang, ổ đĩa mềm, ổ đĩa flash, và các nguồn tàinguyên mạng là tất cả các thiết bị tiêu biểu được liệt kê như là lựa chọnthứ tự khởi động trong BIOS
Trình tự khởi động cũng đôi khi được gọi là trình tự khởi độngtrong BIOS hoặc thứ tự khởi động trong BIOS
Trình khởi động (boot loader) sẽ nạp hệ điều hành chính vào máytính để hoạt động
1.2. Boot loader
Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm (haymột tập hợp các bộ xử lý), chỉ có thể thực thi các đoạn mã ở bộ nhớ điềuhành, được biết đến với tên gọi là bộ nhớ hệ thống, với nhiều loại tùythuộc vào công nghệ sản xuất như: ROM (Read-Only Memory - bộ nhớ chỉđọc), hay RAM (Random Access Memory - bộ nhớ truy cập ngẫu nhiên)
Mã của các hệ điều hành, các chương trình ứng dụng và dữ liệu hiện naythường được lưu trữ trên các bộ nhớ bền, bộ nhớ ngoại vi, hay bộ nhớthứ cấp Các ví dụ của các loại bộ nhớ đó là: hard disk (ổ cứng), CD, USB,đĩa mềm Khi một máy tính được bật, ban đầu nó dựa hoàn toàn vào các
mã và dữ liệu nằm trên những phần có sẵn của bản đồ bộ nhớ hệ thống,như ROM, NVRAM hay CMOS RAM Các đoạn mã và dữ liệu "cứng" được
Trang 6lưu trữ trên bản đồ bộ nhớ hệ thống này là những hướng dẫn cần thiết tốithiểu để truy nhập vào những thiết bị cứng ngoại vi và nạp vào bộ nhớ hệthống tất cả những phần cần thiết của hệ điều hành Có thể nói trongkhoảng thời gian khởi động máy tính, hệ thống máy tính không có hệ điềuhành nào trong bộ nhớ trong Tuy nhiên, nếu chỉ có phần cứng máy tínhkhông thôi (vi xử lý hay bộ nhớ hệ thống) thì không thể thực hiện đượcnhững thao tác phức tạp để nạp các tệp tin chương trình từ hệ thống lưutrữ vào bộ nhớ, mà đây vốn là một trong những tác vụ quan trọng nhất.
Chương trình giúp bắt đầu một chuỗi các lệnh được kết thúc bằngviệc toàn bộ hệ điều hành được nạp vào hệ thống gọi là "bootstrap loader".Những nhà thiết kế máy tính thời kỳ đầu đã từng có ý tưởng: trước khimột máy tính ở trạng thái hoạt động hoạt động, nó phải trải qua một giaiđoạn khởi động hay "mồi" Do đó, để thiết lập trạng thái hoạt động cho hệthống máy tính, một chương trình đặc biệt, dung lượng nhỏ, gọi là "trìnhnạp khởi động" (tiếng Anh: "bootstrap loader" hay "bootstrap" hay "bootloader"), sẽ được thực thi trước tiên Chương trình này chỉ có nhiệm vụduy nhất là nạp các phần mềm khác để hệ điều hành có thể bắt đầu hoạtđộng Thường thì trình nạp khởi động gồm nhiều giai đoạn, mỗi giai đoạn
là một chương trình nhỏ hơn được thực hiện tuần tự, sau khi chươngtrình này kết thúc sẽ gọi tiếp đến chương trình kia, cho đến khi chươngtrình cuối cùng nạp hệ điều hành
Những máy tính thời kỳ đầu có một dãy công tắc chuyển mạch (toggleswitch) ở bảng điều khiển cho phép người điều hành có thể nhập bằng taynhững lệnh khởi động bằng dưới dạng các số hệ nhị phân vào bộ nhớtrước khi chuyển tiếp điều khiển cho CPU Trình nạp khởi động sau đó sẽđọc hệ điều hành từ một bộ nhớ ngoài như băng đục lỗ, thẻ đục lỗ, hayđĩa nhớ
Mã giả với ngôn ngữ Assembly mô tả một quá trình nạp hệ thống đơn giảngồm 8 bước:
0: Đặt thanh ghi P là 8
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Nếu kết thúc băng, nhảy đến 8
5: Lưu bộ lưu vào địa chỉ trong thanh ghi P
6: Tăng thanh ghi P lên
7: Nhảy đến 1
Trang 7Một ví dụ liên quan dựa trên một trình nạp hệ thống trong một máy tính
cá nhân của tập đoàn Nicolet Instrumet vào những năm 1970 Lưu ý: các
byte trong bước thứ hai (bước số 1) được đọc từ băng đục lỗ theo chiều
ngược
0: Đặt thanh ghi P là 106
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Lưu bộ lưu vào địa chỉ trong thanh ghi P
5: Giảm thanh ghi P
6: Nhảy đến 1
Boot loader (bộ nạp khởi động) là một chương trình máy tính nạpmột hệ điều hành hoặc một số phần mềm hệ thống khác cho máy tính saukhi hoàn thành việc tự kiểm tra điện trên; nó là bộ nạp cho hệ điều hànhriêng của mình Trong quá trình khởi động lại cứng, nó chạy sau khi hoànthành việc tự kiểm tra, sau đó tải và chạy phần mềm Một bộ nạp khởiđộng được nạp vào bộ nhớ chính từ bộ nhớ dai dẳng, chẳng hạn như một
ổ đĩa cứng hoặc, trong một số máy tính cũ, từ một phương tiện như thẻđục lỗ, băng đục lỗ, hoặc băng từ Bộ nạp khởi động sau đó tải và thựchiện các quá trình hoàn tất khởi động Giống như quá trình POST, mã bộnạp khởi động xuất phát từ một vị trí "cứng có dây" và dai dẳng; nếu vị trí
đó quá giới hạn đối với một số lý do, mà bộ nạp khởi động chính gọi một
bộ nạp khởi động giai đoạn thứ hai hoặc một bộ nạp chương trình trunghọc
Trên các máy tính mục đích chung hiện đại, quá trình khởi động cóthể mất vài chục giây, và thường liên quan đến việc thực hiện một power-
on self-test, định vị và khởi tạo các thiết bị ngoại vi, và sau đó tìm kiếm, tải
và bắt đầu một hệ thống điều hành Quá trình ngủ đông hoặc ngủ khôngliên quan đến khả năng khởi động Tối thiểu, một số hệ thống nhúngkhông đòi hỏi một trình tự khởi động đáng chú ý để bắt đầu hoạt động vàkhi bật chỉ đơn giản là có thể chạy các chương trình hoạt động được lưutrữ trong ROM Tất cả các hệ thống máy tính là những cỗ máy nhà nước,
và khởi động lại có thể là phương pháp duy nhất để trở về một định nhà nước từ một trạng thái ngoài ý muốn, bị khóa
Trang 8zero-Boot là viết tắt bootstrap hoặc bootstrap load và xuất phát từ cụm từ
để kéo mình lên nhờ nỗ của mình Việc sử dụng gọi sự chú ý đến các yêucầu đó, nếu hầu hết các phần mềm được tải lên một máy tính bằng phầnmềm khác đang chạy trên máy tính, một số cơ chế phải tồn tại để tải cácphần mềm ban đầu vào máy tính [4] máy tính sớm sử dụng một loạt cácphương pháp ad-hoc để có được một chương trình nhỏ vào bộ nhớ để giảiquyết vấn đề này Việc phát minh ra bộ nhớ chỉ đọc (ROM) của nhiều loạihình giải quyết nghịch lý này bằng cách cho phép các máy tính sẽ đượcxuất xưởng với một chương trình bắt đầu lên mà không thể bị xóa Tăngtrưởng trong khả năng của ROM đã cho phép hơn bao giờ hết xây dựngbắt đầu các thủ tục để được thực hiện
2. MultiBoot:
MultiBoot là hành vi cài đặt nhiều hệ điều hành trên một máy tính, và
có thể chọn cái nào để khởi động Thuật ngữ dual-booting đề cập đến cấuhình chung của riêng hai hệ điều hành MultiBoot có thể yêu cầu một tùychỉnh bộ nạp khởi động ( boot loader.)
Multi-boot cho phép nhiều hơn một hệ điều hành nằm trên một máytính, ví dụ nếu bạn có một hệ điều hành chính và một hệ thống thay thế
mà bạn sử dụng thường xuyên Một lý do khác cho đa khởi động có thểđược để điều tra hoặc thử nghiệm một hệ điều hành mới mà không cầnchuyển đổi hoàn toàn Multi-boot cho phép một hệ điều hành mới để cấuhình tất cả các ứng dụng cần thiết, và di chuyển dữ liệu trước khi gỡ bỏ hệđiều hành cũ, nếu muốn Một lựa chọn có thể để đa khởi động là ảo, nơi
mà một hypervisor được sử dụng để lưu trữ một hoặc nhiều máy ảo chạy
hệ điều hành khách Multi-khởi động cũng rất hữu ích trong các tìnhhuống mà các ứng dụng phần mềm khác nhau đòi hỏi các hệ thống điềuhành khác nhau Một cấu hình đa khởi động cho phép người dùng sửdụng tất cả các phần mềm này trên một máy tính Điều này thường đượcthực hiện bằng cách sử dụng một bộ nạp khởi động như NTLDR, LILO, vsGRUB có thể khởi động nhiều hệ điều hành Multi-khởi động cũng đãđược sử dụng bởi các nhà phát triển phần mềm, nơi nhiều hệ điều hành
đã được yêu cầu cho mục đích phát triển hoặc thử nghiệm Có những hệthống trên một máy là một cách để giảm chi phí phần cứng
Trong một máy tính đa khởi động từng nhiều hệ điều hành có thể cưtrú trên thiết bị lưu trữ riêng của mình, hoặc một số thiết bị lưu trữ có thểchứa nhiều hơn một hệ điều hành trong các phân vùng khác nhau
Trang 9Một ví dụ về một máy tính với một hệ điều hành trên thiết bị lưu trữ làmột máy tính dual-boot mà các cửa hàng Windows trên ổ đĩa một đĩa vàLinux trên ổ đĩa khác Trong trường hợp này một bộ nạp khởi động đanăng khởi động là không thực sự cần thiết bởi vì người dùng có thể chọn
để vào cấu hình BIOS ngay lập tức sau khi mở điện và làm cho ổ đĩa mongmuốn đầu tiên trong danh sách khởi động theo thứ tự Tuy nhiên, nó làthuận tiện hơn để có một bộ nạp khởi động đa năng khởi động vào mộttrong các ổ đĩa, thiết lập BIOS một lần để luôn luôn bắt đầu khởi động từ(ví dụ, tải bộ nạp khởi động từ) ổ đĩa, và sau đó cho phép người dùng lựachọn một hệ điều hành từ menu boot loader của Không có phân vùng đĩađặc biệt là cần thiết khi mỗi hệ điều hành có ổ đĩa chuyên dụng riêng củamình
Một ví dụ của một máy tính với nhiều hệ điều hành trên thiết bị lưu trữ
là một máy tính dual-boot mà các cửa hàng cả Windows và Linux trên ổ đĩacùng một đĩa Trong trường hợp này một bộ nạp khởi động đa năng khởiđộng là cần thiết Ngoài ra, đĩa phải được phân chia cho mỗi hệ điều hànhphân vùng riêng trên ổ đĩa
II Cơ chế Boot:
Dưới đây là một phác thảo của quá trình boot:
Mọi thứ bắt đầu hoạt độngkhi bạn nhấn nút nguồn trên máy Mộtkhi các bo mạch chủ được cung cấp cho nó firmware riêng của mình - cácchipset và rẻ quạt khác - và cố gắng để cho CPU chạy Nếu cólỗi vào thờiđiểm này (ví dụ, các CPU bị hư) sau đó bạn có thể sẽ có một hệ thốngkhông hoạt động ngoài trừ quạt gió Một vài bo mạch quản lý phát ra tiếng
Trang 10bíp cho một CPU vắng mặt hoặc bị lỗi Đôi khi USB hoặc các thiết bị khác
có thể gây ra điều này: rút tất cả các thiết bị không cần thiết là một cách có
thể sửa lỗi hệ thống ngưng hoạt động thế này Sau đó bạn có thể loại ra cácthiết bị thủ phạm bằng cách loại bỏ
Nếu tất cả đều ổn định thì CPU bắt đầu chạy Trong một đa xử lýhoặc đa lõi hệ thống một CPU được tự động chọn là bộ vi xử lý bootstrap(BSP) mà chạy tất cả các BIOS và mã kernel khởi tạo Các bộ vi xử lý, đượcgọi là application processors (AP) còn lại vào thời điểm này, vẫn dừng lạicho đến sau này khi được kích hoạt một cách rõ ràng bởi kernel CPU củaIntel đã được phát triển trong những năm qua nhưng chúng hoàn toàn
tương thích ngược, vì vậy các CPU hiện đại có thểxử lý như bản gốc
1978 Intel 8086 , đó là chính xác những gì chúng làm sau khi bậtnguồn Trong điện lên trạng thái nguyên thủy này, các bộ vi xử lý làtrong chế độ thực với bộ nhớ phân trangbị vô hiệu hóa Điều này cũnggiống như cổ MS-DOS, nơi chỉ có 1 MB bộ nhớ có thể được giải quyết vàcác mã có thể viết thư cho bất cứ nơi nào trong bộ nhớ - không có kháiniệm về bảo vệ hoặc đặc quyền
Hầu hết các thanh ghi trong CPU có giá trị được xác định rõ sau khibật nguồn, bao gồm cả các con trỏ chỉ dẫn (EIP) mà giữ địa chỉ bộ nhớ chocác hướng dẫn được thực hiện bởi CPU CPU của Intel sử dụng một hacktheo đó mặc dù chỉ có 1MB bộ nhớ có thể được giải quyết tại điện lên, mộtđịa chỉ cơ sở ẩn (một bù đắp, về cơ bản) được áp dụng cho EIP để hướngdẫn đầu tiên thực hiện là tại địa chỉ 0xFFFFFFF0 (16 byte ngắn cuối cùng 4đồng biểu diễn của bộ nhớ và cũng ở trên một megabyte) Địa chỉ mathuật này được gọi là vector reset và là tiêu chuẩn cho các CPU Intel hiệnđại
Bo mạch chủ này đảm bảo rằng các hướng dẫn tại vector thiết lập lại
là một bước nhảy đến vị trí bộ nhớ ánh xạ tới các điểm vào BIOS Nhảy
này mặc nhiên xóa địa chỉ cơ sở ẩn hiện tại điện lên.Tất cả các vị trí bộ nhớ
có các nội dung cần thiết ngay bởi CPU nhờ vào bản đồ bộ nhớ lưu giữbởi chipset Tất cả chúng được ánh xạ vào bộ nhớ flash có chứa BIOS kể từthời điểm này các mô-đun bộ nhớ RAM có tào lao ngẫu nhiên trong
đó Một ví dụ về các vùng bộ nhớ có liên quan được hiển thị dưới đây:
Trang 11Các CPU sau đó bắt đầu thực thi mã BIOS, khởi tạo một số các phầncứng trong máy Sau đó BIOS đá ra khỏi Power-on Self Test (POST) màkiểm tra các thành phần khác nhau trong máy tính Thiếu một card mànhình làm việc không POST và gây BIOS để ngăn chặn và phát ra tiếng bíp
để cho bạn biết những gì là sai, vì tin nhắn trên màn hình không phải làmột lựa chọn Một card màn hình làm việc đưa chúng ta đến một giai đoạn
mà các máy tính trông còn sống: logo nhà sản xuất được in, bộ nhớ bắtđầu được thử nghiệm, thiên thần thổi kèn sừng Thất bại POST khác,giống như một bàn phím mất tích, dẫn đến ngừng với một thông báo lỗitrên màn hình.POST bao gồm một hỗn hợp của các thử nghiệm và khởitạo, bao gồm phân loại ra tất cả các nguồn lực - ngắt, những dãy bộ nhớ,
I / O ports - cho các thiết bị PCI BIOS hiện đại theo các cấu hình nâng cao
và giao tiếp điện xây dựng một số bảng dữ liệu mô tả các thiết bị trong máytính;các bảng này sau đó được sử dụng bởi các kernel
Sau khi POST BIOS muốn khởi động một hệ điều hành, trong đóphải được tìm thấy ở đâu đó: ổ đĩa cứng, ổ đĩa CD-ROM, đĩa mềm, vv tựthực tế mà BIOS tìm kiếm một thiết bị khởi động là người dùng có thể cấuhình Nếu không có thiết bị khởi động phù hợp BIOS ngừng với mộtkhiếu nại như "Non-System đĩa hoặc đĩa lỗi." Một ổ đĩa cứng chết có thể
Trang 12gây ra với triệu chứng này Hy vọng rằng điều này không xảy ra, BIOS tìmthấy một đĩa làm việc cho phép khởi động để tiến hành.
BIOS bây giờ đọc 512 byte đầu tiên khu vực (khu vực không) của đĩacứng Đây được gọi làMaster Boot Record và nó thường có chứa hai thànhphần quan trọng: một chương trình bootstrapping hệ điều hành cụ nhỏvào đầu MBR theo sau là một bảng phân vùng cho đĩa BIOS tuy nhiênkhông quan tâm đến bất cứ điều này: nó chỉ đơn giản là tải các nội dungcủa MBR vào vị trí bộ nhớ 0x7c00 và nhảy đến vị trí đó để bắt đầu thựchiện bất cứ điều gì đang ở MBR
Các mã cụ thể trong MBR có thể là một bộ nạp Windows MBR, mã
từ bộ tải Linux như LILO hay GRUB, hoặc thậm chí là một virus Ngượclại bảng phân vùng là chuẩn: nó là một khu vực 64-byte với bốn mục 16-byte mô tả làm thế nào đĩa đã được chia ra (do đó bạn có thể chạy nhiều hệđiều hành hoặc có khối lượng riêng biệt trong cùng một đĩa) Theo truyềnthống, Microsoft MBR đang có một cái nhìn tại các bảng phân vùng, tìm
(chỉ) phân vùng đánh dấu là hoạt động, load các boot sector cho rằng phân
vùng, và chạy mã lệnh đó Các khu vực khởi động là khu vực đầu tiên
của một phân vùng, như trái ngược với các khu vực đầu tiên cho toàn bộđĩa Nếu có gì là sai với các bảng phân vùng mà bạn sẽ nhận được tin nhắnnhư "Bảng phân vùng không hợp lệ" hoặc "Thiếu hệ điều hành." Thông
điệp này không đến từ BIOS mà là từ mã MBR nạp từ đĩa Vì vậy, các
thông điệp cụ thể phụ thuộc vào các hương vị MBR
Boot tải đã nhận được tinh vi hơn và linh hoạt theo thời gian Các
bộ tải khởi động Linux Lilo và GRUB có thể xử lý một loạt các hệ điềuhành, hệ thống tập tin, và các cấu hình khởi động Mã MBR của họ không
Trang 13nhất thiết phải làm theo "khởi động phân vùng hoạt động" cách tiếp cậnđược mô tả ở trên Nhưng chức năng quá trình đi như thế này:
1. MBR chính nó chứa giai đoạn đầu tiên của bộ nạp khởi động GRUBgọi giai đoạn này 1
2. Do kích thước nhỏ bé của nó, các mã trong MBR không chỉ đủ để tảikhu vực khác từ đĩa có chứa thêm đang boostrap Khu vực này có thể
là khu vực khởi động cho một phân vùng, nhưng cũng có thể là mộtlĩnh vực đã được mã hóa cứng vào mã MBR khi MBR đã được càiđặt
3. Mã MBR cộng với mã nạp trong bước 2 sau đó đọc một tập tin cóchứa các giai đoạn thứ hai của bộ nạp khởi động.Trong GRUB này làGRUB Giai đoạn 2, và trong Windows Server này là c: \ NTLDR Nếubước 2 bị lỗi trong Windows, bạn sẽ nhận được một tin nhắn như
"NTLDR is missing" Mã giai đoạn 2 sau đó đọc một tập tin cấu hìnhkhởi động (ví dụ, grub.conf trong GRUB, boot.ini trongWindows) sau đó nó thể hiện sự lựa chọn khởi động cho người sửdụng hoặc chỉ đơn giản là đi trước trong một hệ thống đơn khởiđộng
4. Tại thời điểm này mã bộ nạp khởi động cần phải cháy lên mộtkernel Nó phải biết đủ về hệ thống tập tin để đọc kernel từ phânvùng khởi động Trong Linux này có nghĩa là đọc một tập tin như
"vmlinuz-2.6.22-14-server" có chứa các kernel, tải các tập tin vào bộnhớ và nhảy đến mã kernel bootstrap Trong Windows Server 2003một số các kernel đang bắt đầu-up là tách biệt với hình ảnh kernelchính nó và thật sự nhúng vào NTLDR Sau khi thực hiện một sốkhởi tạo, NTDLR tải hình ảnh kernel từ tập tin c: \ Windows \System32 \ ntoskrnl.exe và, giống như GRUB không, nhảy đến điểmvào kernel
Có một biến chứng đáng nói (tức là, tôi đã nói với bạn điều này làhacky) Các hình ảnh cho một kernel Linux hiện nay, thậm chí nén, khôngphù hợp với 640K RAM có sẵn trong chế độ thực.Kernel vani Ubuntu củatôi là 1,7 MB nén Tuy nhiên, các bộ nạp khởi động phải chạy trong chế độthực để kêu gọi các thói quen BIOS để đọc từ đĩa, vì kernel rõ ràng là
Trang 14không có sẵn tại thời điểm đó Giải pháp là đáng kính chế độ khôngthật Đây không phải là một chế độ thực sự xử lý (Tôi muốn các kỹ sư củaIntel đã được cho phép để vui chơi như thế), mà là một kỹ thuật mà mộtchương trình chuyển qua lại giữa chế độ thực và chế độ bảo vệ để truy cậpvào bộ nhớ trên 1MB trong khi vẫn sử dụng BIOS Nếu bạn đọc mã nguồnGRUB, bạn sẽ thấy những chuyển khắp nơi (nhìn dưới stage2 / cho cáccuộc gọi đến và real_to_prot prot_to_real).Vào cuối quá trình dính nàyloader đã nhồi kernel trong bộ nhớ, bằng móc hoặc bởi kẻ gian, nhưng nó
để lại các bộ xử lý trong chế độ thực khi nó được thực hiện
Chúng ta đang ở bước nhảy từ "Boot Loader" đến " Early KernelInitialization" như thể hiện trong sơ đồ đầu tiên Đó là khi mọi thứ nónglên như kernel bắt đầu mở ra và thiết lập những chuyển động
III Cài đặt multiBoot:
1. Các khái niệm chung:
- Ổ đĩa cứng - HDD
HDD (Hard Disk Drive) là ổ cứng truyền thống, nguyên lý hoạt
động cơ bản là có một đĩa tròn làm bằng nhôm (hoặc thủy tinh, hoặc gốm)được phủ vật liệu từ tính Giữa ổ đĩa có một động cơ quay để để đọc/ghi
dữ liệu, kết hợp với những thiết bị này là những bo mạch điện tử nhằm điều khiển đầu đọc/ghi đúng vào vị trí của cái đĩa từ lúc nãy khi đang quay
để giải mã thông tin Vì vậy mà các thao tác của bạn như chép nhạc, phim hay dữ liều (Cài đặt phần mềm, game) nào đó từ máy tính ra thiết bị khác (USB, Ổ cứng) nhanh hay chậm cũng phụ thuộc vào phần này, hơn nữa chất liệu của các linh kiện trong ổ cứng này càng tốt thi dữ liệu bạn lưu trên này sẽ an toàn hơn
Trang 15HDD có tốc độ quay 5400 rpm hoặc cao hơn là 7200 rpm (số vòng quay càng cao thì ổ cứng hoạt động nhanh hơn đôi chút), ngoài ra HDD cũng có nhiều thế hệ để đánh giá khả năng xử lý như trước thì có Sata 1, cao hơn có Sata 2 (tốc độ đọc/ghi 200 MB/s), Sata 3 (tốc độ đọc/ghi 6 Gbp/s).
- File System:FileSystem của ổ đĩa cứng hay một phân vùng nói lên cách lưu trữ, giao tiếp của hệ thống với dữ liệu có trên ổ đĩa hay phân vùng đó Các hang công nghệ đưa ra nhiều File System khác nhau để phục vụ cho từng mục đích lưu trữ riêng của họ
- Ổ đĩa cứng thông thường có 2 dạng:
• MBR: sử dụng MBR-Master Boot Record để quản lý toàn bộ ổ đĩa , là định dạng phổ biến hiện nay
Trang 16• GPT:(GUIDPartitionTable) là định dạng tối ưu hơn, tuy nhiên lại hơi khó hình dung cũng như sử dụng, được xem là định dạng ổ đĩa cứng trong tương lai.
- Trong đề tài này, các đĩa cứng được đề cập đều ở dạng MBR Trong một ổ đĩa định dạng MBR, chỉ cho phép tồn tại tối đa 4 phân vùng Primary, hoặc 3 phân vùng Primary-1 phân vùng Extended Phân vùng Primary phải được Set Active mới khởi động được
- Đây cũng là 2 lỗi rất thường gặp của người dùng khi tự phân vùng ổ đĩa
2. Khái niệm về File System
- Journaling:
Điểm trước tiên cần tìm hiểu ở đây chính là Journaling trước khichúng ta nghiên cứu kỹ hơn về vấn đề này Điều duy nhất các bạncần nhớ về journaling là tất cả các loại file hệ thống ngày nay đềuphải sử dụng journaling theo nhiều dạng khác nhau trên nền tảnglaptop hoặc desktop với Linux
Journaling chỉ được sử dụng khi ghi dữ liệu lên ổ cứng và đóng vaitrò như những chiếc đục lỗ để ghi thông tin vào phân vùng Đồng thời, nócũng khắc phục vấn đề xảy ra khi ổ cứng gặp lỗi trong quá trình này, nếukhông có journal thì hệ điều hành sẽ không thể biết được file dữ liệu cóđược ghi đầy đủ tới ổ cứng hay chưa
Chúng ta có thể hiểu nôm na như sau: trước tiên file sẽ được ghivào journal, đẩy vào bên trong lớp quản lý dữ liệu, sau đó journal sẽ ghi file
Trang 17đó vào phân vùng ổ cứng khi đã sẵn sàng Và khi thành công, file sẽ đượcxóa bỏ khỏi journal, đẩy ngược ra bên ngoài và quá trình hoàn tất Nếu xảy
ra lỗi trong khi thực hiện thì file hệ thống có thể kiểm tra lại journal và tất
cả các thao tác chưa được hoàn tất, đồng thời ghi nhớ lại đúng vị trí xảy ralỗi đó
Tuy nhiên, nhược điểm của việc sử dụng journaling là phải “đánh đổi” hiệu
suất trong việc ghi dữ liệu với tính ổn định Bên cạnh đó, còn có nhiềucông đoạn khác để ghi dữ liệu vào ổ cứng nhưng với journal thì quá trìnhkhông thực sự là như vậy Thay vào đó thì chỉ có file metadata, inode hoặc
vị trí của file được ghi lại trước khi thực sự ghi vào ổ cứng
- File System trong Linux:
-• Ext – Extended file system: là định dạng file hệ thống đầu tiên
được thiết kế dành riêng cho Linux Có tổng cộng 4 phiên bản
và mỗi phiên bản lại có 1 tính năng nổi bật Phiên bản đầu tiên
của Ext là phần nâng cấp từ file hệ thống Minixđược sử dụng
tại thời điểm đó, nhưng lại không đáp ứng được nhiều tính năng phổ biến ngày nay Và tại thời điểm này, chúng ta không nên sử dụng Ext vì có nhiều hạn chế, không còn được hỗ trợ trên nhiều distribution
• xExt2 thực chất không phải là file hệ thống journaling, được phát triển để kế thừa các thuộc tính của file hệ thống cũ, đồng
thời hỗ trợ dung lượng ổ cứng lên tới 2 TB Ext2 không sử
dụng journal cho nên sẽ có ít dữ liệu được ghi vào ổ đĩa hơn
Do lượng yêu cầu viết và xóa dữ liệu khá thấp, cho nên rất phù hợp với những thiết bị lưu trữ bên ngoài như thẻ nhớ, ổ USB Còn đối với những ổ SSD ngày nay đã được tăng tuổi
Trang 18thọ vòng đời cũng như khả năng hỗ trợ đa dạng hơn, và chúnghoàn toàn có thể không sử dụng file hệ thống không theo chuẩn journaling.
• Ext3 về căn bản chỉ là Ext2 đi kèm với journaling Mục đích
chính của Ext3 là tương thích ngược với Ext2, và do vậy
những ổ đĩa, phân vùng có thể dễ dàng được chuyển đổi giữa 2chế độ mà không cần phải format như trước kia Tuy nhiên,
vấn đề vẫn còn tồn tại ở đây là những giới hạn của Ext2 vẫn còn nguyên trong Ext3, và ưu điểm của Ext3 là hoạt động
nhanh, ổn định hơn rất nhiều Không thực sự phù hợp để làm file hệ thống dành cho máy chủ bởi vì không hỗ trợ tính năng
tạo disk snapshot và file được khôi phục sẽ rất khó để xóa bỏ
sau này
• Ext4: cũng giống như Ext3, lưu giữ được những ưu điểm và tính tương thích ngược với phiên bản trước đó Như vậy, chúng ta có thể dễ dàng kết hợp các phân vùng định dạng
Ext2, Ext3 và Ext4 trong cùng 1 ổ đĩa trong Ubuntu để tăng hiệu suất hoạt động Trên thực tế, Ext4 có thể giảm bớt hiện
tượng phân mảnh dữ liệu trong ổ cứng, hỗ trợ các file và phân
vùng có dung lượng lớn Thích hợp với ổ SSD so với Ext3, tốc độ hoạt động nhanh hơn so với 2 phiên bản Ext trước đó,
cũng khá phù hợp để hoạt động trên server, nhưng lại không
bằng Ext3.
• BtrFS – thường phát âm là Butter hoặc Better FS, hiện tại vẫn đang trong giai đoạn phát triển bởi Oracle và có nhiều tínhnăng giống với ReiserFS Đại diện choB-Tree File System, hỗ trợ tính năng pool trên ổ cứng, tạo và lưu trữ snapshot, nén
dữ liệu ở mức độ cao, chống phân mảnh dữ liệu nhanh
chóng được thiết kế riêng biệt dành cho các doanh nghiệp cóquy mô lớn
Mặc dù BtrFS không hoạt động ổn định trên 1 số nền tảng
distro nhất định, nhưng cuối cùng thì nó vẫn là sự thay thế mặc định của Ext4 và cung cấp chế độ chuyển đổi định dạng
nhanh chóng từ Ext3/4 Do vậy, BtrFS rất phù hợp để hoạt
động với server dựa vào hiệu suất làm việc cao, khả năng tạo snapshot nhanh chóng cũng như hỗ trợ nhiều tính năng đa dạng khác
Bên cạnh đó, Oracle cũng đang cố gắng phát triển 1 nền tảng
công nghệ nhằm thay thế cho NFS và CIFS gọi là CRFS với
nhiều cải tiến đáng kể về mặt hiệu suất và tính năng hỗ trợ