GRUB
Hoạt động > Khởi động

Khi một máy tính được bật, BIOS của máy tính sẽ tìm thiết bị được cấu hình khởi động chính (thường là ổ cứng) tải và thực thi chương trình bootstrap đầu tiên từ master boot record (MBR). MBR là những sector đầu tiên của ổ cứng, với số 0 là offset của nó(các sector bắt đầu đếm từ 0). Trong một thời gian dài, kích thước của sector là 512 byte, nhưng từ năm 2009 có nhiều ổ cứng có kích thước một sector là 4096 byte, được gọi là ổ cứng Advanced Format.  Tính đến tháng 10/2013, những ổ cứng như thế vẫn được truy cập những sector 512-byte, bằng cách sử dung mô phỏng 512e.
Boot record MBR legacy hỗ trợ tối đa 4 phân vùng primary và chiếm 64 byte. Cùng với tùy chọn chữ ký đĩa (4 byte) và nhãn đĩa (6 byte), chuỗi dữ liệu này chiếm từ 434 đến 446 byte mã máy của boot loader. Mặc dù một kích thước nhỏ có thể chứa đủ một boot loader đơn giản, nó không đủ lớn để chứa một boot loader hỗ trợ một hệ thống tập tin lớn và phức tạp, menu điều khiển các lựa chọn khởi động hệ thống là ví dụ. Boot loader với footprints lớn hơn do đó được chia thành nhiều phần, nơi những phần nhỏ nhất được tích hợp bên trong MBR, trong khi những phần lớn hơn chứa trong các khu vực khác (ví dụ,trong một sector trống ở giữa MBR phân vùng đầu tiên) và được gọi đến bởi mã MBR của boot loader.
Ảnh nhân hệ điều hành trong phần lớn các trường hợp các tập tin nằm trên hệ thống tập tin thích hợp, nhưng các khái niệm về một hệ thống tập tin là không biết đến BIOS. Vì vậy,trong các hệ thống dựa trên BIOS,nhiệm vụ của boot loader là để truy cập vào nội dung của các tập tin, vì vậy nó có thể đọc từ đĩa cứng, nạp vào bộ nhớ RAM và thực hiện.
Một trong những phương pháp tiếp cận có thể cho boot loader là tải trực tiếp các ảnh của hạt nhân từ các sector ổ cứng đang sử dụng bởi hình ảnh thực tế hạt nhân, mà không có sự hiểu biết cơ bản hệ thống tập tin.  Thông thường, cấp bổ sung gián tiếp là cần thiết, ở dạng bản đồ hoặc các bản đồ tập tin – các file phụ trợ có chứa một danh sách các sector vật lý đang sử dụng bởi ảnh hạt nhân, cung cấp thông tin cho boot loader về nơi có thể tìm thấy những sector cơ sở của nhân hệ thống. Các bản đồ này cần được cập nhật mỗi lần nhân hệ thống bị thay đổi, ví dụ như nâng cấp hạt nhân hệ thống giải phân mảnh hệ thống file. Cũng như vậy, trong các trường hợp bản đồ thay đổi trên ổ đĩa vật lý, vị trí của chúng cũng cần được cập nhật vào mã MBR của boot loader, vì vậy các cơ chế khu vực gián tiếp tiếp tục làm việc. Điều này không phức tạp, nhưng nó yêu cầu phải sửa đổi bằng tay trong trường hợp bị sai trong ki cập nhật hệ thống.
Một cách khác là tạo một boot loader nhận biết được hệ thống file bên dưới, Hạt nhân như vậy được cấu hình và truy cập thông qua đường dẫn thực tế. Điều này yêu cầu boot loader cần chứa một trình điều khiển hệ thống file cho mỗi hệ thống file mà nó hỗ trợ, như vậy trình khởi động sẽ có thể nhận biết và tiếp cận dữ liệu. Cách tiếp cận này cho phép loại bỏ các phần lập trình nhúng không cần thiết vào sector và cả sự cần thiết của việc phân địa chỉ tập tin, và MBR (tức Master Boot Record) sẽ không cần phải cập nhật lại mỗi khi ảnh hạt nhân hệ điều hành được thêm vào trình khởi động hoặc được gỡ ra.
GNU GRUB sử dụng phương pháp thứ hai, bằng cách tìm hiểu các hệ thống tập tin cơ bản. Boot loader tự chia thành nhiều phần, cho phép nó phù hợp với các chương trình khởi động MBR.
Có hai phiên bản của GRUB đang được sử dụng phổ biến. GRUB phiên bản 2, được gọi là GRUB 2, được viết lại từ đầu và có ý định thay thế phiên bản tiền nhiệm của nó GRUB 1, và hiện nay nó được sử dụng bởi đa số các bản phân phối Linux. GRUB phiên bản 1, được gọi là GRUB legacy,chỉ phổ biến ở các phiên bản cũ của các bản phân phối Linux, trong đó một số vẫn còn đang được sử dụng và hỗ trợ, ví dụ như trong CentOS 5.