Thành phần và tải hệ điều hành (sử dụng ví dụ về hệ điều hành ms-dos). Trình tải hệ điều hành GRUB: cài đặt, mô tả

Khi số lượng hệ điều hành dành cho phân khúc máy tính để bàn tăng lên, vấn đề tải gấp đôi, gấp ba, v.v., ngày càng trở nên thú vị và phù hợp hơn. Đó là khả năng chạy nhiều hệ điều hành trên một máy tính.

Ubuntu Linux trên Windows XP hoặc Vista, Windows XP cùng với Vista, FreeBSD và Windows - bạn có thể đưa ra nhiều kết hợp khác. Không có gì ngăn cản bạn không chỉ phát minh mà còn thực hiện các tổ hợp hệ điều hành phức tạp nhất. Hơn nữa, điều này có thể được thực hiện không chỉ trên một máy tính mà còn trên một đĩa - dung lượng của các ổ cứng hiện đại (hay còn gọi là HDD, hay còn gọi là ốc vít, hay còn gọi là ổ cứng) cho phép bạn “nhét” ít nhất 20 hệ điều hành khác nhau vào một ổ đĩa như vậy. đĩa.

Một chút lý thuyết

Quá trình khởi động cho một máy tính thuộc họ IBM PC như sau:

Khi cấp nguồn cho bo mạch chủ, điều đầu tiên cần làm là tải và thực thi một chương trình nhỏ được lưu trữ trong một con chip đặc biệt trên bo mạch chủ - BIOS. Chương trình này kiểm tra sự hiện diện và hoạt động chính xác của các thành phần quan trọng - RAM, bộ điều hợp video, đĩa. Sau khi thực hiện kiểm tra như vậy, chương trình BIOS sẽ kiểm tra các đĩa được kết nối với bo mạch chủ - trên mỗi đĩa sẽ tìm một dấu đặc biệt cho biết đĩa có khả năng khởi động. Nếu phát hiện thấy dấu hiệu như vậy, chương trình BIOS sẽ tải chương trình khởi động được ghi trên đó từ đĩa này và chuyển quyền điều khiển sang nó.

Và bộ tải khởi động này, được ghi trên đĩa, sẽ tải hệ điều hành này hoặc hệ điều hành kia. Đây là một chương trình nhỏ chỉ thực hiện hai hành động:

  1. Phát hiện một tệp chương trình (hoặc các tệp) cụ thể trên một hệ thống tệp cụ thể
  2. Tải tệp (hoặc các tệp) này vào RAM và chuyển quyền điều khiển cho chúng.

Có hai loại chương trình tải xuống như vậy:

  • "Tóm tắt" - được tạo để tải các hệ điều hành khác nhau.
  • “Gia đình” là các chương trình chỉ có thể tải một hệ điều hành hoặc một số hệ điều hành trong cùng một họ nhưng có các phiên bản khác nhau.

Trong số đầu tiên là bộ nạp khởi động phổ biến nhất có tên GRUB. Nó có thể khởi động hơn mười loại hệ điều hành. Phổ biến nhất trong số những cái "gia đình" là ntldr - bộ tải khởi động hệ điều hành Windows 2k, XP, 2k3 và phiên bản mới nhất của nó, bootmgr, tải Windows Vista và Windows 7. Ngoài hai bộ tải khởi động này, còn có hàng tá hoặc hai bộ tải khởi động khác nhau.

Tại sao nhiều như vậy? Lý do rất đơn giản - vẫn chưa có bộ nạp khởi động phổ quát phù hợp cho mọi trường hợp.

Ví dụ, GRUB, mạnh nhất hiện nay, không thể tải ảnh đĩa ở định dạng ISO, nhưng syslinux có thể làm được điều này.

Tuy nhiên, những thiếu sót tồn tại trong mỗi trình tải không áp đặt các hạn chế đối với các tùy chọn tải xuống có thể có do thực tế là người ta có thể khởi chạy một trình tải khác từ một trình tải.

Ví dụ: thông qua một trong những trình tải ntldr “nguyên thủy”, bạn có thể sử dụng một thủ thuật đơn giản để khởi chạy bất kỳ số lượng trình tải nào khác và điều này giúp bạn có thể hiện thực hóa những tưởng tượng đa khởi động phức tạp nhất.

Từ việc chỉ khởi động MS Windows, đến chạy tất cả các phiên bản Windows, cộng thêm hàng chục phiên bản Linux, cộng thêm BSD, cộng thêm Apple, cộng thêm hàng tá tệp hình ảnh đĩa và đĩa mềm, cộng thêm...

Nói cách khác, tùy chọn multiboot mà bạn cần có thể không thực hiện được chỉ bằng một bộ tải khởi động, nhưng với sự kết hợp của hai hoặc ba bộ tải khởi động, bạn có thể khởi chạy bất kỳ gói hệ điều hành và tệp hình ảnh nào.

Sự hiện diện của một số lượng lớn các trình tải và khả năng khởi chạy chúng từ nhau cũng mang lại sự thay đổi trong việc giải quyết cùng một vấn đề. Ví dụ: khả năng khởi động kép Windows XP cộng với Linux có thể được triển khai theo ít nhất hai cách - sử dụng một bộ tải khởi động GRUB duy nhất cho cả hai hệ điều hành hoặc kết hợp các bộ tải khởi động ntldr + GRUB.

Thêm một chút lý thuyết

Ngoài các câu hỏi lý thuyết về việc tải hệ điều hành, để tổ chức các hệ điều hành multiboot, điều quan trọng là phải hiểu lý thuyết sử dụng không gian địa chỉ của các đĩa chứa các hệ điều hành tương tự.

Phần của mô hình máy tính họ PC IBM liên quan đến việc sử dụng đĩa xác định rằng cái gọi là không gian đĩa "thô" phải được chia thành các phân vùng, sau đó các hệ thống tệp phải được tạo trên các phân vùng này và chỉ sau đó, các tệp này hệ thống có thể được sử dụng để ghi lại các chương trình và dữ liệu, bao gồm cả hệ điều hành.

Trong mô hình PC của IBM, không gian địa chỉ thô của đĩa cứng (HDD) có thể được chia thành bốn phân vùng chính. Nói một cách đơn giản, liên quan đến chủ đề của chúng tôi, bốn hệ điều hành có thể được đặt trên một ổ cứng. Đây là rất ít. Tuy nhiên, không phải mọi thứ đều đáng buồn như vậy. Vấn đề này từ lâu đã được giải quyết với sự trợ giúp của các phân vùng mở rộng. Phân vùng mở rộng là phân vùng đĩa chính có thể được chia thành tối đa 255 phân vùng nữa.

Nghĩa là, để tổ chức một hệ thống multiboot, bạn cần chia đĩa thành ít nhất hai phân vùng và tạo các hệ thống tệp cần thiết trên các phân vùng này.

Từ lý thuyết đến thực hành

Vì vậy, dựa trên lý thuyết, việc xây dựng một hệ thống multiboot trông như thế này:

  1. Phân vùng đĩa
  2. Tạo hệ thống tập tin trên các phân vùng
  3. Chọn tổ hợp bootloader chính hoặc bootloader
  4. Cài đặt hệ điều hành

Mọi thứ dường như ngắn gọn và đơn giản. Nhưng chỉ thoạt nhìn thôi. Thực tế là ở mỗi giai đoạn đều có thể có những lựa chọn khác nhau và cuối cùng, có rất nhiều cách khác nhau để tạo ra một hệ thống multiboot mà tôi thậm chí sẽ không thử xem xét chúng.

Chúng ta sẽ đi đường khác.

Hãy chỉ trả lời các câu hỏi:

  1. Cách tốt nhất để phân vùng đĩa là gì?
  2. Chọn hệ thống tập tin nào?
  3. Tôi nên chọn bootloader nào?

Sau nhiều năm làm việc và thử nghiệm, câu trả lời của tôi cho câu hỏi đầu tiên là:

Phần chính có kích thước tương đối nhỏ. Nó chứa bộ tải khởi động chính và có thể là một trong các hệ điều hành.

Phần thứ hai được mở rộng. Nó chiếm phần lớn đĩa và chứa nhiều phân vùng logic cần thiết để cài đặt tất cả các hệ điều hành mà bạn muốn cài đặt - 5, 10 hoặc 20.

Ưu điểm của phương pháp này là gì?

Đầu tiên, còn lại hai phân vùng chính chưa sử dụng. Nếu bạn gặp một hệ điều hành không thể hoạt động từ một phân vùng mở rộng, thì bạn có thể tạo một phân vùng chính khác.

Thứ hai, khi sử dụng phân vùng mở rộng, bạn có thể tạo bao nhiêu phân vùng logic trong đó mà bạn không bao giờ cần, nghĩa là, trong sơ đồ như vậy, bạn sẽ không gặp phải tình huống muốn cài đặt một hệ điều hành khác nhưng không có ở đâu cả. Tất nhiên, có thể không có đủ dung lượng ổ đĩa cho HĐH thứ 20, nhưng đó lại là một chủ đề khác.

Câu hỏi thứ hai là hệ thống tập tin và kích thước của phân vùng khởi động chính.

Nếu ban đầu bạn định cài đặt nhiều hơn hai hoặc ba hệ điều hành, cũng như cài đặt lại chúng thường xuyên, thì tốt nhất bạn nên đặt kích thước của phân vùng chính rất nhỏ, 1-2 GB và sử dụng hệ thống tệp cho phân vùng này để là FAT hoặc FAT32. Không cài đặt bất kỳ hệ điều hành nghiêm trọng nào trên phân vùng này, ngoại trừ thứ gì đó nhẹ như MS DOS.

Một số chuyên gia ở đây có thể cho rằng FAT là thời kỳ đồ đá, còn FAT32 cũng khá cổ xưa và chúng còn nhiều thiếu sót. Điều này đúng, nhưng những hệ thống tập tin này có ưu điểm là rất quan trọng trong bối cảnh của hệ thống multiboot. Trên thực tế, có lẽ không có hệ điều hành hoặc chương trình ứng dụng nào không thể hoạt động với các hệ thống tệp này. Và đây là một lợi thế rất lớn - nếu có vấn đề phát sinh trong quá trình cài đặt một số hệ điều hành hoặc bộ tải khởi động mới, bạn có thể dễ dàng truy cập vào phân vùng và các tệp bộ tải khởi động bằng cách sử dụng ngay cả những phương tiện nguyên thủy nhất. Ngoài ra, việc sử dụng hệ thống tệp FAT hoặc FAT32 sẽ mở rộng số lượng bộ tải khởi động có thể được cài đặt trên phân vùng này. Ví dụ: bộ tải khởi động syslinux chỉ có thể được cài đặt trên hệ thống tệp FAT hoặc FAT32.

Trong trường hợp phổ biến hơn - khi chỉ cài đặt hai hoặc ba hệ điều hành, tốt hơn nên chọn kích thước của phân vùng chính để có thể cài đặt Windows trên đó với một bộ chương trình cơ bản, tức là ít nhất là 10 - 15 GB. Theo đó, trong trường hợp này, chọn NTFS làm hệ thống tập tin.

Tôi khuyên bạn nên tạo một phân vùng NTFS chính ngay cả khi bạn không định cài đặt Windows. Hôm nay nó không được lên kế hoạch, nhưng ngày mai nó sẽ cần thiết và sau đó, trong trường hợp không có phân vùng chính với hệ thống tệp mà Windows hiểu, nó sẽ buộc bạn phải thực hiện những chuyển động không cần thiết. Tuy nhiên, điều này không quan trọng vì bạn sẽ không cần thực hiện nhiều động tác không cần thiết.

Và cuối cùng, bộ nạp khởi động nào sẽ được sử dụng làm bộ nạp khởi động chính.

Tôi đã chọn ntldr từ lâu rồi. Mặc dù khá “ngu ngốc” nhưng nó không thể tải bất cứ thứ gì khác ngoại trừ Windows, nhưng nó có một tính năng thú vị - nó có thể tải hình ảnh tệp của các cung đĩa (các cung đĩa vật lý được ghi vào một tệp). Điều này có nghĩa là nó có thể được nạp một tệp bằng phần đầu của bất kỳ trình tải nào khác. Nghĩa là, bạn có thể tải bất kỳ số lượng trình tải nào khác từ ntldr, chỉ cần tạo tệp bằng phần đầu của chúng và đưa chúng vào ntldr theo danh sách.
Ghi chú. "Đầu" của bootloader là MBR hay Boot Sector. Đây có thể có nhiều hơn một lĩnh vực, ví dụ như phần đầu GRUB - 16 lĩnh vực bắt đầu từ MBR.

Ghi chú. Nếu đầu trình tải có nhiều hơn một cung, thì chỉ cần sao chép cung đầu tiên (khu vực MBR) vào tệp cho ntldr, vì ntldr chỉ có thể tải các tệp một cung. Điều này đặt ra giới hạn về số lượng bộ tải được lắp đặt đồng thời có đầu "dài". Nghĩa là, trong sơ đồ với ntldr, bạn không thể sử dụng hai GRUB.

Sơ đồ hệ thống multiboot trông như thế này:

Đối với những trường hợp hiếm gặp - một phân vùng chính nhỏ có hệ thống tệp FAT hoặc FAT32 và không có hệ điều hành, chỉ có bộ tải khởi động. Trong trường hợp này, tất cả các hệ điều hành đều được cài đặt trong các phân vùng logic của phân vùng mở rộng.

Đối với các trường hợp phổ biến hơn - một phân vùng chính nhỏ có hệ thống tệp NTFS, nơi cài đặt hệ điều hành Windows và bộ tải khởi động. Hai hoặc ba hệ điều hành còn lại được đặt trong các phân vùng logic của phân vùng mở rộng.

Mọi thứ đều rất đơn giản.

Ghi chú

Nếu tùy chọn multiboot rất đơn giản, chẳng hạn như Linux trên Windows, khi Linux được cài đặt trên máy tính đã có Windows, thì bạn không cần phải bận tâm đến ntldr. Khi cài đặt bất kỳ bản phân phối Linux hiện đại, phổ biến nào, có thể tự động cài đặt bộ tải khởi động GRUB và nó có thể khởi động cả hai hệ điều hành này.

Bạn có thể cài đặt bộ tải khởi động ntldr theo cách thủ công, tách biệt với hệ điều hành Windows. Tuy nhiên, nó chỉ có thể được cài đặt trên phân vùng có hệ thống tệp FAT, FAT32 hoặc NTFS. Khi cài đặt ntldr, bạn cần nhớ rằng phần đầu của nó được ghi vào Khu vực khởi động, và do đó, để khởi động nó, bạn cũng cần một trình tải trước tiêu chuẩn như MS DOS trong khu vực MBR (nghĩa là nó thực hiện một lệnh “nhảy” vào Khu vực khởi động ). Nếu phần đầu của bộ tải khởi động khác (ví dụ: GRUB) được ghi vào MBR, thì ngoài việc cài đặt ntldr, bạn cũng cần ghi bộ tải trước của Microsoft vào MBR. Một cách để làm điều này là lệnh fdisk /mbr. Đương nhiên, fdisk trong trường hợp này là của Microsoft (từ MS DOS).

Mặc dù khi cài đặt bất kỳ hệ điều hành hiện đại nào, bạn có thể tạo phân vùng và hệ thống tệp trực tiếp trong quá trình cài đặt, tuy nhiên tôi khuyên bạn nên thực hiện việc này một cách riêng biệt. Đầu tiên, bằng cách sử dụng một chương trình như fdisk hoặc Phân vùng Magic, bạn tạo các phân vùng cần thiết và chỉ sau đó bạn mới bắt đầu cài đặt hệ điều hành và trong quá trình này, hãy chỉ định phân vùng mà bạn muốn cài đặt hệ thống.

Khi cài đặt bất kỳ HĐH nào trên hệ thống multiboot, bạn cần hết sức cẩn thận ở khâu chọn loại phân vùng đĩa và chọn phân vùng. Một số trình cài đặt, chẳng hạn như từ đĩa Ubuntu Live, cung cấp các tùy chọn như "cài đặt vào toàn bộ đĩa" hoặc "phân vùng đĩa tự động" theo mặc định. Nếu bạn bỏ qua các tùy chọn này, hệ thống multiboot của bạn sẽ bị phá hủy. Bạn cũng cần cẩn thận khi chỉ định thủ công cho trình cài đặt phân vùng cần cài đặt - nếu bất cẩn, bạn có thể ghi một hệ điều hành mới vào phân vùng bạn đang sử dụng, và sau đó mọi thứ trước đó trên đó sẽ bị phá hủy.

Trước khi cài đặt hệ điều hành mới hoặc bộ tải khởi động mới, hãy chuẩn bị trước “bộ công cụ sửa chữa” - một bộ dữ liệu và chương trình cho phép bạn khôi phục hệ thống khởi động ở trạng thái hiện tại. Có thể xảy ra rằng sau khi cài đặt HĐH mới hoặc bộ tải khởi động mới, một số HĐH cũ sẽ không khởi động được.

Multiboot từ ổ đĩa flash, về mặt tổ chức, không khác gì khởi động từ ổ cứng HDD được mô tả ở đây. Với sửa đổi duy nhất là không nên cài đặt các hệ thống tệp khác ngoài FAT / FAT32 trên ổ đĩa flash. Nếu sử dụng ổ cứng USB, bạn có thể làm việc với nó giống như với ổ cứng thông thường.

Tuy nhiên, không phải máy tính nào cũng có thể khởi động từ ổ flash hoặc USB. Hãy chuẩn bị cho thực tế là bạn sẽ không thể thực hiện việc này trên bất kỳ máy tính nào. Thông thường, những vấn đề như vậy phát sinh với các máy tính sử dụng chipset BIOS Award hoặc nVidia, SiS, AMD. Sự cố khởi động ít có khả năng xảy ra nếu bo mạch chủ có AMI BIOS và chipset Intel.

Ví Yandex số 410011416229354. Hoặc trên điện thoại +7 918-16-26-331 .

Ngay cả một lượng nhỏ cũng có thể giúp viết bài mới :)

Để máy tính hoạt động bình thường, các mô-đun chính của hệ điều hành phải nằm trong RAM. Vì vậy, sau khi bật máy tính, hệ điều hành sẽ tự động được ghi lại (tải) từ đĩa vào RAM.

Phần mềm hoạt động tốt nhất khi nó được chia thành các lớp, trong đó mỗi lớp thực hiện một chức năng cụ thể và làm giảm bớt sự lo lắng của các lớp cao hơn khác về các chi tiết trong lớp của nó. Dựa trên triết lý này, hệ điều hành MS-DOS được xây dựng theo nguyên tắc mô-đun và bao gồm các thành phần sau:

    Trình tải hệ điều hành;

    Các tệp hệ thống IO.SYS và MSDOS.SYS;

    Trình điều khiển thiết bị.

    Bộ xử lý lệnh MS DOS (tệp COMMAND.COM);

    Các lệnh MS DOS bên ngoài.

Ngoài ra, MS-DOS, giống như tất cả các hệ điều hành khác dành cho PC IBM, sử dụng phần mềm cài sẵn của máy tính có tên là Hệ thống đầu vào/đầu ra cơ bản (BIOS).

Hãy xem xét các mô-đun phần mềm được chỉ định theo thứ tự chúng được tải vào RAM sau khi bật PC.

Hệ thống vào/ra cơ bản- Đây là mức độ kiểm soát thấp nhất, một loại giao diện giữa phần cứng và chương trình máy tính. BIOS kiểm soát trực tiếp phần cứng của máy tính và ngăn các chương trình khác biết chi tiết về cách thực hiện. Các chương trình BIOS được nhà sản xuất ghi vào ROM máy tính và thực hiện:

    tự kiểm tra máy tính khi bật (chương trình POST);

    khởi tạo, tức là cài đặt thiết bị máy tính (xác định cấu hình máy tính, thiết lập các giá trị cần thiết của một số thanh ghi);

    thực hiện các chức năng bảo trì và xử lý các ngắt phần cứng;

    tải hệ điều hành được ghi trên đĩa từ (chương trình BOOT).

Ngay sau khi bật máy tính, chương trình POST bắt đầu chạy, kiểm tra chức năng của RAM và các thành phần khác của máy tính. Sau đó, BIOS khởi tạo và cố gắng đọc từ đĩa trong ổ A: chương trình tải hệ điều hành để chuyển quyền điều khiển sang nó và tiếp tục quá trình khởi động DOS. Nếu các tập tin cần thiết hoặc bản thân đĩa mềm bị thiếu, việc tìm kiếm sẽ tiếp tục trên các ổ cứng C:, D:, E:, v.v. Nếu không tìm thấy đĩa khởi động (hay nói cách khác là hệ thống), một thông báo về điều này sẽ hiển thị trên màn hình.

Lưu ý rằng sau khi khởi động xong, các chức năng dịch vụ BIOS (ví dụ: xuất từng byte ra đĩa hoặc màn hình hiển thị, đọc ký tự từ bàn phím, đọc đồng hồ thời gian thực, v.v.) được gọi bằng cách sử dụng các ngắt. Ngắt là một cơ chế phần cứng khiến bộ xử lý làm gián đoạn tác vụ hiện tại và bắt đầu xử lý một sự kiện bên ngoài. Sự kiện như vậy có thể là tín hiệu từ các thiết bị I/O bên ngoài, yêu cầu từ chương trình hoặc sự kiện lỗi (chia cho 0, số nguyên quá lớn, v.v.).

Trình tải hệ điều hành là một chương trình rất ngắn nằm ở khu vực đầu tiên của mỗi đĩa mềm và ổ cứng (ổ cứng) với hệ điều hành MS DOS. Chức năng của chương trình này là đọc các tập tin hệ thống DOS từ đĩa khởi động vào RAM.

Tệp hệ thống IO.SYS là một phần mở rộng BIOS. Mô-đun này định cấu hình hệ điều hành cho một cấu hình cụ thể của hệ thống máy tính và cho phép bạn kết nối trình điều khiển mới với các thiết bị đầu vào/đầu ra không chuẩn,

Tập tin hệ thốngMSDOS.SYS- mô-đun xử lý ngắt. Nó chủ yếu duy trì hệ thống tập tin và quản lý việc phân bổ RAM.

Sau khi được bộ tải khởi động đọc, các tệp hệ thống sẽ được đặt vĩnh viễn trong RAM của máy tính, tức là chúng là các chương trình thường trú.

Sau khi tải thành công các tệp hệ thống, mô-đun phần mềm IO.SYS sẽ cài đặt cấu hình cần thiết của hệ thống máy tính. Với mục đích này, nó đặt trình điều khiển thiết bị bên ngoài vào RAM của máy tính.

Trình điều khiển bên ngoài thiết bị là các tệp chương trình riêng biệt cung cấp các hoạt động tương tác với các thiết bị bên ngoài. Danh sách các trình điều khiển được kết nối có trong tệp cấu hình CONFIG.SYS. .

Bộ xử lý lệnh hoàn tất quá trình khởi động hệ điều hành. Sau khi quyền điều khiển máy tính được chuyển sang bộ xử lý lệnh, bộ xử lý sau sẽ tự động bắt đầu thực thi một tệp lệnh đặc biệt - AUTOEXEC.BAT (nếu tệp đó có trong thư mục gốc của đĩa khởi động). Tệp AUTOEXEC.BAT chỉ định các lệnh và chương trình được thực thi mỗi khi máy tính khởi động. Sử dụng tệp này, bạn có thể định cấu hình các tham số môi trường vận hành. Ví dụ: tạo đĩa ảo, thay đổi chế độ in, tải các chương trình phụ trợ, v.v.

Các tệp có phần mở rộng .BAT đóng vai trò đặc biệt khi làm việc trong môi trường hệ thống. Chúng chứa một tập hợp các lệnh hệ điều hành hoặc tên tệp thực thi. Sau khi chạy một tệp có phần mở rộng .BAT, tất cả các lệnh được viết trong đó sẽ được thực thi tự động lần lượt.

Nếu không tìm thấy tệp AUTOEXEC.BAT trong thư mục gốc của đĩa nơi hệ điều hành được tải, thì MS DOS sẽ nhắc người dùng về ngày giờ hiện tại.

Sau khi thực thi file AUTOEXEC.BAT, quá trình khởi động hệ điều hành kết thúc. Bộ xử lý lệnh đưa ra lời nhắc cho biết MS-DOS đã sẵn sàng chấp nhận lệnh. Lời mời thường trông giống như Đ:\> hoặc, ví dụ, C:\>, nếu việc khởi động được thực hiện từ ổ cứng.

MultiBoot là chương trình khôi phục bộ tải khởi động của hệ điều hành. Về cơ bản, đây là lớp vỏ đồ họa cho các tiện ích hệ thống BcdBoot, BcdEdit và BootSect.

Chỉ cần tải xuống MultiBoot miễn phí là đủ để cứu hệ thống nếu nó không khởi động được sau khi cài đặt hệ thống cũ hơn. Điều này luôn xảy ra nếu người dùng cài đặt Windows XP song song với Vista hoặc Seven. Bộ nạp khởi động của một hệ điều hành mới hơn chỉ đơn giản là bị xóa và có vẻ như đây là dấu chấm hết. Nhưng MultiBoot sẽ giúp bạn tránh được vấn đề. Với sự trợ giúp của nó, bạn có thể tổ chức khả năng khởi động một trong nhiều hệ thống để lựa chọn.

Chương trình MultiBoot chỉ cần khôi phục mục nhập mong muốn trong bộ nạp khởi động, cho phép bạn tiếp tục sử dụng hệ thống đã cài đặt trước đó song song với hệ thống mới cài đặt. Tất nhiên, cũng có những cài đặt tiêu chuẩn cho màn hình khởi động hệ thống: lựa chọn hệ thống mặc định, thời gian chờ lựa chọn, thứ tự hiển thị của hệ điều hành.

Đây là một cách đơn giản và thuận tiện để định cấu hình bộ nạp khởi động mà không cần có kiến ​​thức đặc biệt về cú pháp của ngôn ngữ tệp ini. Giờ đây, vấn đề tải có thể được giải quyết ngay cả với người mới bắt đầu không biết về nguyên tắc tệp nào chịu trách nhiệm cho việc này. Bất kể nguyên nhân gây ra sự cố là gì, MultiBoot sẽ giúp giải quyết nó.

Bài viết này không dành cho các quy tắc cài đặt bất kỳ hệ điều hành nào mà dành cho các hành động sơ bộ cần được thực hiện trên máy tính của bạn để có thể cài đặt một số hệ điều hành.

Chúng tôi sẽ không tập trung vào nhu cầu cài đặt nhiều hệ điều hành. Mọi người đều được hướng dẫn bởi lý lẽ của riêng họ.

Do đó, chúng tôi sẽ cho rằng vấn đề đã được xác định: chúng tôi cần đảm bảo sự chung sống hòa bình của một số hệ điều hành trên một máy tính. Do các hệ thống tệp không tương thích, mỗi hệ thống tệp phải nằm trong phân vùng riêng trên ổ cứng. Đồng thời, bạn có thể nhìn thấy (hoặc không nhìn thấy) các phân vùng còn lại của ổ cứng.

Và trước tiên, hãy tìm hiểu các nguyên tắc lưu trữ thông tin trên ổ cứng nói chung.

Thông tin được lưu trữ trên ổ cứng như thế nào?

Ổ cứng, giống như bất kỳ thiết bị khối nào khác, lưu trữ thông tin trong các phần cố định được gọi là khối. Khối là phần dữ liệu nhỏ nhất có địa chỉ duy nhất trên ổ cứng. Trao đổi thông tin với ổ cứng liên quan đến việc chỉ định địa chỉ này làm tham số của lệnh được cấp cho bộ điều khiển. Kích thước khối cuối cùng đã trở thành tiêu chuẩn cho tất cả các ổ đĩa cứng - 512 byte.

Để tổ chức hệ thống, không gian địa chỉ đĩa của các khối được chia thành các phần gọi là phân vùng. Các phân vùng giống hệt như toàn bộ đĩa ở chỗ chúng được tạo thành từ các khối liền kề nhau. Nhờ cách tổ chức này, để mô tả một phần, chỉ cần chỉ ra phần đầu của phần đó và độ dài của phần đó theo khối là đủ. Các phần là nơi chứa tất cả nội dung của chúng. Nội dung này thường là một hệ thống tập tin. Từ quan điểm đĩa, hệ thống tệp đề cập đến một hệ thống đánh dấu các khối để lưu trữ tệp. Khi hệ thống tệp đã được tạo trên phân vùng và các tệp hệ điều hành được đặt trên đó, phân vùng có thể có khả năng khởi động. Phân vùng có khả năng khởi động có khối đầu tiên là một chương trình nhỏ tải hệ điều hành.

Đĩa được phân vùng theo chương trình. Tức là bạn có thể tạo cấu hình phân vùng tùy chỉnh. Thông tin phân vùng đĩa được lưu trữ trong khối đầu tiên của ổ cứng, được gọi là Bản ghi khởi động chính (MBR).

Về mặt lịch sử, một đĩa có thể được chia thành bốn phân vùng để tách biệt các hệ điều hành khác nhau nếu có. Chính xác hơn, MBR chứa một bảng trong đó có thể mô tả bốn phân vùng. Chỉ một trong bốn phân vùng được phép đánh dấu là đang hoạt động, điều đó có nghĩa là mã khởi động phải tải khu vực đầu tiên của phân vùng cụ thể đó vào bộ nhớ và chuyển quyền điều khiển vào đó.

Giải pháp

Trả lời câu hỏi đặt ra ở tiêu đề bài viết, chúng ta đi đến kết luận: để cài đặt một số hệ điều hành với các hệ thống tệp khác nhau trên máy tính, chúng ta cần chia đĩa thành các phân vùng. Định dạng từng cái theo yêu cầu của hệ điều hành. Cài đặt hệ điều hành, mỗi hệ điều hành trong phân vùng riêng. Cài đặt trình quản lý tải xuống của hệ điều hành. Việc này sẽ xác định phân vùng nào có khả năng khởi động và khởi chạy hệ điều hành tương ứng.

Làm thế nào để làm nó?

Tất cả các hệ điều hành hiện đại đều chứa các chương trình phân vùng đĩa. Trong DOS và Windows đây là FDISK.EXE. Nhưng những chương trình này không thân thiện với hệ thống tập tin nước ngoài. Nghĩa là, sử dụng FDISK từ Windows, bạn chỉ có thể tạo phân vùng có hệ thống tệp tương thích với Windows (FAT16, FAT32), chứ không phải cho Linux. Về nguyên tắc, các hệ thống tệp không được tạo bởi các chương trình này (cần phải định dạng), nhưng chúng đánh dấu trong MBR về loại hệ thống tệp. Và FDISK từ Windows chỉ đặt nhãn FAT(16/32). Nhưng loại này có thể không được hỗ trợ bởi hệ điều hành đang được cài đặt. Mặc dù tất cả các hệ thống dường như đều được cài đặt trên FAT16. Ngoài ra, khi sử dụng FDISK từ Windows, bạn chỉ có thể tạo hai phân vùng “Phân vùng DOS chính” và “Phân vùng DOS mở rộng”. Đầu tiên trong số chúng (chính) là ổ DOS thông thường C:. Thứ hai là nơi chứa các ổ đĩa logic. Mà treo trong đó dưới dạng một chuỗi các phần phụ. Mặc dù không bị cấm tạo nhiều phân vùng Primary DOS nhưng điều quan trọng là chỉ một trong số chúng có khả năng khởi động được. Quan trọng hơn nữa, nếu bạn đã có phân vùng với hệ thống tệp nước ngoài, thì FDISK từ Windows có thể không nhìn thấy nó. Và nếu bạn nâng cấp MBR bằng chương trình này, phân vùng có hệ thống tệp của người khác có thể bị mất. Các hệ điều hành khác hoạt động tốt hơn một chút với các chương trình như FDISK. Họ có ý tưởng về FAT(16/32), nhưng thường không biết gì về bất kỳ đối tượng kỳ lạ nào khác giống như họ. Vì vậy, bạn nên sử dụng những chương trình như vậy thật cẩn thận nếu bạn có nhiều phân vùng với các hệ thống tệp không tương thích khác nhau. Tốt hơn hết là bạn không nên chạm vào chúng mà hãy sử dụng các chương trình phân tích phổ quát. (Tôi sẽ không liệt kê chúng, nhưng tôi đã tìm thấy một công cụ phổ quát - FDISK và trình quản lý khởi động hệ điều hành trong một chai. Thông tin thêm về điều đó bên dưới.)

Chúng ta hãy lưu ý một trường hợp quan trọng hơn. Khi DOS được cài đặt trên một ổ cứng trống, không có lựa chọn thay thế nào trong việc chọn hệ điều hành khi khởi động. Do đó, bộ nạp khởi động trông rất thô sơ; nó không cần hỏi người dùng muốn khởi động hệ thống nào. Với mong muốn có nhiều hệ thống cùng một lúc, cần phải tạo một chương trình cho phép bạn chọn hệ thống để khởi động. Trong trường hợp OS/2, người ta đề xuất cài đặt Boot Manager, có thể chọn hệ thống, nhưng nó chiếm một trụ đĩa và một phân vùng trong bảng phân vùng. Trong trường hợp tổng quát hơn, bạn có thể cài đặt System Commander, nhưng chương trình này cũng khá cồng kềnh và nghiêm trọng hơn là nó nằm trên phân vùng DOS, có thể dẫn đến hậu quả nghiêm trọng trong trường hợp có virus hoặc đơn giản là file DOS bị lỗi. hệ thống.

Phương thuốc phổ quát

Hơn một năm trước, tôi tìm thấy trên Internet một công cụ phổ quát rất mạnh mẽ kết hợp trình quản lý khởi động với trình chỉnh sửa đĩa tích hợp và một tiện ích như FDISK - Đây là SyMon - System Monitor.

Màn hình là một chương trình cho phép bạn sắp xếp tối đa 36 phân vùng trên đĩa và đặt tối đa 20 hệ điều hành trong đó. Như đã đề cập trước đó, trở ngại chính cho những cải tiến như vậy là vấn đề duy trì khả năng tương thích với phần mềm hiện có. Điều đầu tiên yêu cầu về khả năng tương thích là chỉ có bốn phân vùng được thể hiện trong một bảng nằm trong MBR. Hạn chế này được loại bỏ bằng cách tổ chức một bảng phân vùng bên trong dành riêng cho màn hình và các chương trình khác không xác định được. Vì tất cả các hệ điều hành hiện có ban đầu được thiết kế để tương thích với bảng phân vùng nằm trong MBR nên chúng không chiếm nhiều hơn bốn phân vùng. Tuy nhiên, trong trường hợp này, bạn có thể sử dụng tất cả các phân vùng từ bảng bên trong của màn hình, chọn bất kỳ bốn phân vùng nào trong số chúng cho mỗi hệ điều hành. Do đó, đối với màn hình, mô tả hệ điều hành bao gồm việc chỉ ra các phân vùng nên được đặt trong MBR và chỉ ra phân vùng hoạt động để khởi động. Màn hình được tích hợp sẵn các công cụ mạnh mẽ để sắp xếp và duy trì 36 phần. Những công cụ này luôn có sẵn cho bạn, bất kể bạn thích sử dụng hệ điều hành nào. Những công cụ này bao gồm: trình chỉnh sửa phần và tự động tìm kiếm phần. Màn hình được đặt trên rãnh số 0 của ổ cứng, đối với ổ cứng hiện đại là ~ 32K. Bản nhạc này không được sử dụng vì khối đầu tiên của nó là MBR và do đó không thể thuộc về bất kỳ phân vùng nào. Các phần thường được căn chỉnh theo ranh giới của hình trụ. Trong trường hợp hình trụ số 0, điều này không thể thực hiện được do MBR, nhưng việc hy sinh toàn bộ hình trụ là quá đắt, vì vậy phân vùng đầu tiên trên đĩa bắt đầu từ rãnh đầu tiên, để lại rãnh số 0 trống. Điều này cho phép bạn đặt màn hình trên đó mà không ảnh hưởng đến hệ điều hành đã cài đặt. Để phù hợp với yêu cầu tương thích, bảng phân vùng cho MBR được tập hợp mỗi khi hệ điều hành khởi động. Tức là mỗi lần khối đầu tiên của đĩa được ghi. Nếu BIOS của bạn có tính năng bảo vệ chống vi-rút, nó sẽ hiển thị cảnh báo. Tất nhiên, một cảnh báo như vậy được đưa ra mỗi khi bạn khởi động bất kỳ hệ thống nào sẽ rất nhanh chóng trở nên nhàm chán. Vì vậy, tốt hơn hết là bạn nên vô hiệu hóa tính năng bảo vệ này. Điều này sẽ không làm suy yếu đáng kể khả năng miễn dịch của máy tính của bạn, vì màn hình bị vi-rút làm hỏng sẽ không hoạt động và về mặt vật lý sẽ ngăn bạn tải các hệ thống có thể trở thành nạn nhân của vi-rút. Sau khi khởi động, màn hình sẽ cung cấp cho bạn menu để chọn hệ điều hành. Ngoài việc khởi động hệ điều hành, bạn cũng có thể chọn khởi động từ đĩa mềm hoặc ổ cứng khác. Trên máy tính có nguồn điện ATX, bạn cũng có thể tắt nguồn máy tính, việc này đôi khi rất thuận tiện. Chọn từ menu là một hoạt động hàng ngày của mọi người dùng. Nhưng ngoài việc chọn hệ điều hành, bạn có thể sử dụng bất kỳ công cụ giám sát nào. Bao gồm các:

  • Trình chỉnh sửa phân vùng (FDISK)
  • Trình chỉnh sửa đĩa
  • Tự động tìm kiếm các phần
  • Đặt mật khẩu để truy cập công cụ

Một số lưu ý

Người mới sử dụng nhiều hệ thống nên biết rằng BIOS chỉ nhìn thấy 8 GB đầu tiên trên ổ cứng của bạn. Để làm việc với các đĩa lớn hơn, tất cả các hệ thống hiện đại không còn sử dụng BIOS nữa mà sử dụng trình điều khiển riêng để làm việc với các đĩa. Do đó, giới hạn 8GB không áp dụng cho chúng. Nhưng bạn nên hiểu rằng trước khi hệ thống có thể sử dụng trình điều khiển riêng thì ít nhất nó phải tải trình điều khiển đó. Do đó, ở giai đoạn khởi động ban đầu, bất kỳ hệ thống nào cũng buộc phải sử dụng BIOS. Điều này gây ra những hạn chế trong việc đặt nhiều hệ thống vượt quá 8GB; chúng không thể khởi động từ đó nhưng có thể đọc và ghi thông tin ở đó. Tức là phân vùng khởi động phải nằm trong 8 GB đầu tiên. Và MS-DOS nói chung chỉ có thể được khởi chạy từ 2 GB đầu tiên!

Hệ điều hành sử dụng bảng phân vùng khi gắn hệ thống tệp. Và đối với hầu hết trong số họ, có vấn đề với việc kết nối các hệ thống tệp nằm trên các phân vùng không thể mô tả trong bảng này. Điều này xảy ra, ví dụ, khi bạn cố gắng sử dụng nhiều hơn bốn phân vùng cùng một lúc.

Cái được mô tả, Giám sát hệ điều hành, tạo các bảng bổ sung của riêng nó. Bằng cách sử dụng which, vấn đề trên có thể được giải quyết đối với một số hệ điều hành. Trang web hỗ trợ SyMon chứa một tiện ích đặc biệt dành cho hệ điều hành QNX.

Kiếm ở đâu?

SyMon có hai phiên bản: Lite và Pro. Chúng khác nhau ở sự hiện diện của trình soạn thảo đĩa. Trên Internet, các phiên bản chỉ nặng hơn 60 và 90 kB tương ứng. Nó miễn phí, có giao diện tiếng Nga và tài liệu chi tiết. Bạn có thể tải xuống tại http://simon.ru.

Ấn tượng sử dụng

Tiện ích này giải quyết hoàn toàn mọi tác vụ và vấn đề liên quan đến việc sử dụng nhiều hệ điều hành trên một máy tính. Tôi đã sử dụng nó được hơn một năm. Không có vấn đề gì. Tài liệu tốt bằng tiếng Nga, không chỉ chứa thông tin về chương trình mà còn chứa nhiều thông tin bổ sung. Tôi nghĩ điều quan trọng là phải đặt tiện ích này hoàn toàn ở rãnh số 0, nghĩa là độc lập tuyệt đối với phần còn lại của nội dung trên đĩa, bao gồm cả các hệ điều hành đã cài đặt.

tái bút Tài liệu chương trình đã được sử dụng để chuẩn bị bài viết này.

Ngày nay, hơn chục người dùng mới không sử dụng Windows chào đón cụm từ “bootloader” với khá nhiều nghi ngờ và hoài nghi. Và có một lý do hoàn toàn hợp lý cho điều này: hầu hết những người mới bắt đầu, trước khi chuyển sang sử dụng các hệ điều hành khác, ít phổ biến hơn trên thị trường, đều sử dụng cùng một Windows trong cuộc sống hàng ngày của họ. Trong đó, bộ nạp khởi động này được triển khai một cách nguyên thủy và minh bạch nhất có thể. Và mặc dù điều này ở một mức độ nào đó mang lại sự thuận tiện cho người dùng bình thường, nhưng nó cũng làm giảm chức năng của hệ điều hành vốn đã phổ biến và phổ biến nhất. Do đó, tất cả những ai quyết định chú ý đến các sản phẩm khác của ngành CNTT chắc chắn nên làm quen với bộ tải khởi động phổ quát GRUB, trong tương lai sẽ giúp ích đáng kể khi làm việc với một số hệ điều hành được cài đặt trên một máy tính.

Một công cụ phổ quát cho các hệ thống không phổ quát

Trước hết, hãy bắt đầu với cái tên GNU GRUB. Chữ viết tắt này từ tiếng Anh được dịch là "bộ nạp khởi động hợp nhất chính". Người tạo ra nó là tổ chức phi lợi nhuận "GNU Project", tổ chức đã trở nên nổi tiếng trong lĩnh vực CNTT nhờ phần mềm được phân phối miễn phí. Bản thân GRUB về cơ bản trình bày một menu để chọn cách khởi động hệ điều hành mà người dùng cần từ toàn bộ danh sách các hệ thống được hỗ trợ:

  • Linux.
  • BSD miễn phí.
  • Solaris.

Trong trường hợp này, GRUB sẽ có thể hoạt động ngay cả với Windows. Tuy nhiên, để khởi chạy những hệ thống không được bộ tải khởi động này hỗ trợ trực tiếp, có những sắc thái đặc biệt mà chúng ta sẽ nghiên cứu chi tiết và chi tiết hơn một chút sau.

Con đường phát triển công nghệ

Sự phổ biến ngày càng tăng của GRUB là lý do cơ bản thúc đẩy sự phát triển và cải tiến ổn định của bootloader trong tương lai. Phiên bản đầu tiên của bộ nạp khởi động, được gọi là GRUB Legacy, vẫn đáp ứng tốt các nhiệm vụ của bộ nạp khởi động hợp nhất cho các hệ thống giống UNIX. Sự hỗ trợ rộng rãi từ các công ty nghiêm túc (như RedHat và Novell) và các nhà phân phối máy chủ đã đảm bảo sự tồn tại liên tục của nó nói chung.

Tuy nhiên, ngay cả tình huống này cũng hoàn toàn không ảnh hưởng đến việc cải tiến thêm bộ nạp khởi động, nhờ đó người dùng đã nhận được phiên bản GRUB 2 mới nhất vào thời điểm hiện tại. Được viết lại từ đầu, GRUB 2 hầu như không có điểm chung nào với GRUB Legacy đã lỗi thời. ngoại trừ chính cái tên đó. Ngày nay, được sử dụng theo mặc định kể từ phiên bản 9.10 của hệ điều hành Ubuntu, GRUB của phiên bản thứ hai, do cấu trúc tiên tiến và mạnh mẽ hơn, đã ngăn chặn hoàn toàn mọi sự phát triển tiếp theo của Legacy, vốn đã được chứng minh rất tốt trong quá khứ.

Tuy nhiên, ngay từ đầu, người mới bắt đầu nên hiểu rằng GRUB 2 là bộ tải khởi động phức tạp hơn so với phiên bản trước. Do đó, để bảo vệ người dùng khỏi những khó khăn và sự cố có thể xảy ra, tất cả các chi tiết nhỏ nhất sẽ được mô tả một cách đơn giản và chi tiết bên dưới, hiểu rõ điều này sẽ cho phép bạn tận dụng tối đa tất cả những cải tiến trong phiên bản mới nhất và có khá nhiều vài trong số họ:

  • Hỗ trợ tập lệnh (chu trình, điều kiện, biến và hàm).
  • Giao diện đồ họa bổ sung khả năng thay đổi linh hoạt hình thức của bootloader để phù hợp với sở thích cá nhân của người dùng (GRUB 2 có thể dễ dàng thay đổi từ bảng đen trắng sang cửa sổ nhiều màu đầy phong cách).
  • Khả năng tải động của các mô-đun. Điều này sẽ cho phép bạn mở rộng chức năng không phải ở giai đoạn lắp ráp mà trực tiếp trong quá trình thực thi.
  • Tương thích với các kiến ​​trúc khác nhau.
  • Đã thêm hỗ trợ để tải Mac OS.
  • Đã thêm công việc ổn định với các hệ thống tệp như: FAT16, FAT32, NTFS, bất kỳ phiên bản nào máy lẻ, XFSISO
  • Kiểu cài đặt đa nền tảng sẽ giúp cài đặt GRUB2 từ một kiến ​​trúc khác
  • Giới thiệu chế độ an toàn trong trường hợp có vấn đề.
  • Đã sửa lỗi từ GRUB Legacy cũ mà ban đầu không thể sửa được do yêu cầu

Mọi người đã nghe nói về LILO chưa?

Tất nhiên, sự lựa chọn của người dùng trong số các trình tải hệ điều hành không chỉ giới hạn ở GRUB. Một chất tương tự tương tự là LILO - trình tải ban đầu của Linux (LInux LOader), tuy nhiên, vẫn có một số điểm khác biệt dành cho GRUB. cần tính đến các tính năng mà đối thủ cạnh tranh trực tiếp chắc chắn không thể tự hào về:

  • LILO chỉ hỗ trợ 16 cấu hình khởi động, trong khi GRUB hỗ trợ số lượng cấu hình như vậy không giới hạn.
  • GRUB có thể khởi động qua mạng cục bộ, điều này không thể nói về LILO.
  • Cuối cùng, LILO không có cùng giao diện lệnh tương tác mà người dùng phiên bản GRUB mới nhất đã quen từ lâu.

Tính năng chung duy nhất của cả hai trình tải là cần phải biên dịch tất cả các thay đổi được thực hiện đối với menu mỗi lần. Chức năng lưu tự động đã không có trong bộ tải khởi động Linux độc quyền từ lâu. GRUB 2 cũng không có tính năng tiện lợi như vậy. Nhưng ngay cả khi tính đến sắc thái bất tiện cho việc sử dụng hàng ngày này, LILO vẫn thua kém đối thủ cạnh tranh ở một số điểm, do đó nó ngày càng trở nên phổ biến đối với người dùng máy tính gia đình.

Cài đặt GRUB: tất cả các sắc thái và chi tiết của quy trình

Ngay từ đầu, hãy đảm bảo rằng bạn đã cài đặt Ubuntu hoặc có đĩa khởi động (LiveCD) cho nó. Sau khi khởi động hệ thống, bạn cần gọi thiết bị đầu cuối bằng tổ hợp phím Ctrl+Alt+F2, sau đó nhập các lệnh sau vào đó:

Sudo add-apt-repository ppa: cjwatson/grub,

Cập nhật bổ trợ Sudo && Sudo add-get cài đặt grub2,

Cập nhật Sudo-grub2.

Và ngay cả khi bạn chưa cài đặt Ubuntu nhưng có LiveCD, quy trình vẫn giữ nguyên chỉ có một khác biệt nhỏ. Sau khi khởi động từ đây, hãy chọn tùy chọn “Thử Ubuntu” - bằng cách này bạn sẽ khởi động hệ thống mà không có bất kỳ thay đổi nào trên máy tính của mình. Sau đó, tiếp tục cài đặt bộ tải khởi động GRUB theo cách tương tự từ giai đoạn gọi thiết bị đầu cuối.

Bạn có thể kiểm tra phiên bản bootloader đã cài đặt bằng lệnh cài đặt grub -v, cũng như trực tiếp trong quá trình khởi động Ubuntu.

Thuật toán khởi động GRUB

Khi quá trình cài đặt GRUB hoàn tất, bộ tải khởi động trước tiên sẽ thay đổi mã MBR thành mã của chính nó. MBR là một khu vực chứa bản ghi khởi động chính (từ tiếng Anh có chứa:

  • mã bộ nạp khởi động chính (446 byte);
  • bảng phân vùng với mô tả về cả phân vùng chính và phụ của đĩa cứng (64 byte).

Do quy mô nhỏ của lĩnh vực MBR, việc triển khai GRUB phù hợp với hai giai đoạn thông thường:

  1. MBR chứa một liên kết đến tệp cấu hình (có thể nằm trên bất kỳ ổ cứng nào, theo quyết định của người dùng). Bằng cách này, toàn bộ giai đoạn tải, bắt đầu từ giai đoạn thứ hai, sẽ được xác định.
  2. Tệp cấu hình của họ tính đến tất cả các cài đặt và dữ liệu cần thiết để GRUB hoạt động. Nếu ở giai đoạn thứ hai không tìm thấy tệp cấu hình thì quá trình khởi động sẽ kết thúc và người dùng sẽ phải chọn cấu hình khởi động theo cách thủ công từ dòng lệnh.

Cấu trúc khởi động này cho phép GRUB có thể cấu hình rộng rãi và linh hoạt hơn nhiều loại tương tự khác, trong đó quá trình này được đơn giản hóa đến độ nén tối đa.

Các lệnh console được sử dụng phổ biến nhất

Phạm vi khả năng làm việc đáng kể trong chế độ bảng điều khiển của phiên bản GNU GRUB mới nhất, khả năng cài đặt và cấu hình cũng sẽ không khiến người dùng thờ ơ. Để truy cập vào nó, chỉ cần nhấn phím “C” trong khi menu khởi động được hiển thị, sau đó tất cả những gì bạn phải làm là nhập chính xác các lệnh bạn cần:

ĐộiSự miêu tảĐầu vào bảng điều khiển ví dụ
lsMột lệnh chung để làm việc với danh sách ổ cứng và phân vùng. Có thể được sử dụng để hiển thị nội dung của một thư mục.ls /boot/grub
Việc sử dụng nó sẽ cung cấp thông tin đầy đủ về bất kỳ phần nào. Điều này sẽ cho biết loại hệ thống tệp trên đó, nhãn của nó, UUID, cũng như ngày thay đổi cuối cùng.
con mèoHiển thị thông tin về nội dung của một tập tin cụ thể.mèo/đường dẫn/tên tệp
linuxMột lệnh tương tự của lệnh kernel GRUB từ phiên bản Legacy cũ, cho phép bạn tải kernel Linux được chỉ định.

tập tin hạt nhân linux

tùy chọn1=giá trị

tùy chọn2 tùy chọn3

máy xúc xíchChuyển điều khiển khởi động sang bộ nạp khởi động khác dọc theo chuỗi. Bộ nạp khởi động sẽ được tìm kiếm riêng trong phân vùng được chỉ định là root (tất nhiên, chỉ ra tệp thực thi cụ thể).

trình tải chuỗi/đường dẫn/tên tệp

nguồn gốcKhi sử dụng lệnh không có bất kỳ tham số nào, người dùng sẽ nhận được thông tin về phân vùng gốc, cũng như loại hệ thống file trên đó.nguồn gốc
Ít phổ biến hơn (do có thể hoạt động không chính xác), nó được sử dụng để chuyển root sang phân vùng khác.

*,* - số đĩa và số phân vùng trên đó tương ứng

bộThông thường, do tính ổn định và hiệu suất của nó, nó được sử dụng để gán lại phân vùng gốc trên đĩa.

đặt root= (hd*,*)

*,* - số đĩa và số phân vùng trên đó tương ứng

tìm kiếm

Lệnh tìm kiếm một phần UUID, nhãn hoặc một tệp cụ thể. Các phím sau được sử dụng để đặt tham số tìm kiếm:

  • u (hoặc --fs-uuid) - tìm kiếm phân vùng bằng UUID;
  • l (hoặc --label) - tìm kiếm theo nhãn phần;
  • f (hoặc --file) - tìm kiếm một tệp cụ thể;
  • n (hoặc --no-floppy) - bỏ qua khi kiểm tra ổ đĩa mềm;
  • s (hoặc --set) - đặt phần tìm thấy làm giá trị của biến được chỉ định.

Lệnh này sẽ hữu ích nếu việc đánh số đĩa và phân vùng bị sai, đó là lý do tại sao lệnh set root sẽ dẫn đến hư không hoặc đến sai phân vùng của đĩa sai.

tìm kiếm -uuuid_of_the_partition

tìm kiếm -l nhãn phân vùng

tìm kiếm -f/path/tên tệp

lsfontHiển thị danh sách các phông chữ hiện được tải xuống.lsfont
giúp đỡĐược sử dụng để hiển thị toàn bộ danh sách có sẵngiúp đỡ
Hoặc để xuất các lệnh bắt đầu bằng một tổ hợp ký tự nhất định.

help s - hiển thị trợ giúp cho tất cả các lệnh bắt đầu bằng s.

bộ trợ giúp - hiển thị trợ giúp về lệnh set.

terminal_output.consoleChuyển sang màu hiển thị đen trắng.terminal_output.console
hình nền

Thay đổi hình nền trong thời gian thực. Nó chỉ giúp chọn tùy chọn thiết kế cho phông chữ để chúng có thể phân biệt được với một nền nhất định.

Xin lưu ý: lệnh không thay đổi cài đặt thiết kế - hình ảnh chỉ ở chế độ nền trong phiên hiện tại cho đến lần tắt máy tiếp theo.

hình nền/đường dẫn/tên tệp

khởi độngKhởi động máy tính của bạn.khởi động
khởi động lạiĐể khởi động lại máy tính.khởi động lại
Tắt máy tính.tạm dừng lại

GRUB sau cài đặt: thiết lập và phần mềm hữu ích

Tệp cấu hình chính trong GRUB2, không giống như phiên bản Legacy trước đó, không có /boot/grub/menu.lst, và đã sẵn sàng /boot/grub/grub.cfg. Tuy nhiên, không có ích gì khi chỉnh sửa nó trực tiếp - nó sẽ được tạo ra với mỗi thay đổi được lưu trong tệp cài đặt /etc/default/grub và trong thư mục scripts /etc/grub.d.

TRONG /etc/mặc định/grub Việc tùy chỉnh chủ yếu giới hạn ở việc thay đổi mục khởi động mặc định và/hoặc thời gian hiển thị menu:

  • Tham số chịu trách nhiệm cho điểm thay đổi đầu tiên là GRUB_DEFAULT, giá trị của nó cho biết số lượng mục trong menu khởi động. Khi chọn bất kỳ mục nào khác, người dùng phải biết thứ tự của nó trong danh sách chung (để thực hiện việc này, bạn cần xem nội dung /boot/grub/grub.cfg và tìm mục nhập được yêu cầu trong tài khoản). Đồng thời, đừng quên quy tắc đánh số: mục đầu tiên được gán giá trị 0, mục thứ hai - 1, mục thứ ba - 2, v.v.
  • Tham số chịu trách nhiệm trì hoãn việc hiển thị menu khởi động là GRUB_TIMEOUT, có giá trị được chỉ định trong dấu ngoặc kép biểu thị số giây mà màn hình giật gân này sẽ xuất hiện. Có một tính năng phức tạp khi chỉnh sửa tham số này: bằng cách đặt giá trị thành "-1", trình bảo vệ màn hình sẽ treo chính xác cho đến khi người dùng chọn bất kỳ mục nào.

Một tập lệnh trong /etc/grub.d tìm tất cả các hệ thống và hạt nhân đã cài đặt trên máy tính, tạo thành menu khởi động trong grub.cfg. Hai cái chính chịu trách nhiệm tìm kiếm kernel và các hệ điều hành khác: 10_linux và 30_os-prober. Tệp 40_custom cho phép bạn sửa đổi GRUB bằng cách thêm các mục khởi động của riêng bạn, điều này rất hữu ích khi làm việc với các kiểu khởi động hệ thống đặc biệt (lưu ý rằng với bất kỳ thay đổi nào, nó phải kết thúc bằng một dòng trống, nếu không thì mục khởi động cuối cùng từ tất cả những mục được đề xuất đó sẽ đơn giản là không được hiển thị).

Tuy nhiên, một cách thậm chí còn dễ dàng hơn để chỉnh sửa GRUB trên hệ thống Ubuntu là tiện ích Grub-Customizer. Do tính đơn giản và giao diện trực quan, đây là lựa chọn tốt nhất để thiết lập bootloader, phù hợp nhất cho những người mới bắt đầu chưa có kinh nghiệm. Để cài đặt, hãy khởi chạy thiết bị đầu cuối (Ctrl+Alt+T), sau đó nhập từng lệnh sau vào thiết bị đầu cuối:

Sudo add-apt-repository ppa:danielrichter2007/grub-customizer,

Cập nhật bổ sung Sudo,

Sudo add-get cài đặt grub-tùy biến.

Và mặc dù bản dịch của chương trình Grub-Customizer còn nhiều điều chưa được mong đợi nhưng nó rất dễ hiểu:

  • Cấu hình danh sách- cài đặt menu khi tải hệ thống. Ở đây thứ tự các điểm của nó được thay đổi.
  • cài đặt cơ bản- chọn hệ thống để khởi động theo mặc định, cũng như xác định thời gian chờ.
  • Giao diện - chỉnh sửa giao diện của menu khởi động.

Ngoài tất cả các cài đặt đa dạng, người dùng chắc chắn nên chú ý đến phần mềm đã được kiểm chứng tốt để làm việc với GRUB, cấu hình và chẩn đoán của phần mềm này sẽ trở nên thoải mái hơn nhiều:

  • Đĩa siêu Grub- một công cụ đơn giản và tiện lợi để nhanh chóng khôi phục bootloader. Đồng thời, nó có thể hoạt động không chỉ với GRUB và LILO mà ngay cả với chính Windows. Chạy từ đĩa CD, ổ flash hoặc đĩa mềm.
  • đã chia tay- trình soạn thảo phân vùng đĩa, khởi chạy trực tiếp từ đĩa CD. Với sự trợ giúp của nó, bạn có thể thực hiện các thao tác với các phân vùng và hệ thống tệp trên chúng, chẳng hạn như: tạo, xóa, thay đổi kích thước, kiểm tra, di chuyển và sao chép.
  • CD cứu hộ hệ thống- một bản phân phối Linux được thiết kế đặc biệt để khắc phục thảm họa.
  • Đĩa thử nghiệm- một tiện ích cho phép bạn chẩn đoán và khôi phục cả phân vùng riêng lẻ và toàn bộ đĩa khởi động.

Bộ nạp khởi động xử lý hệ điều hành Windows như thế nào?

Thật không may, GRUB không thể khởi động Windows x86 theo bất kỳ cách nào (phiên bản 64-bit cũng không ngoại lệ), đó là lý do tại sao cần phải tạo ra một cơ chế chuỗi khởi chạy thích hợp. Để làm điều này, trong tập tin cấu hình grub.cfg bạn cần thêm một số dòng lệnh cụ thể:

Tiêu đề Windows,

Rootnoverify (hd*,*),

Bộ nạp xích +1,

Một ví dụ và mô tả chi tiết về cái sau được đưa ra trong bảng lệnh console. Bây giờ đã đến một trường hợp rất thực tế khi nó sẽ có ích trong công việc. Tuy nhiên, trước đó có một số dòng không kém phần quan trọng để tải Windows:

  • rootnoverify (hd*,*)- cùng một chất tương tự thiết lập gốc. Nó thông báo cho GRUB về vị trí của phân vùng chứa phần tiếp theo của mã khởi động, nhưng không gắn kết nó (vì lý do hiển nhiên là GRUB không thể thực hiện việc này). Xin lưu ý một lần nữa phần đó (hd*,*)- đây là số đĩa và số phân vùng tương ứng mà Windows được cài đặt trên đó.
  • kích hoạt- lệnh đưa ra trạng thái khởi động phân vùng gốc được chỉ định.

Bây giờ cùng một đội máy xúc xích +1, chuyển tất cả các điều khiển khởi động tiếp theo trực tiếp tới bộ tải khởi động Windows.

Cuối cùng, lệnh khởi động cuối cùng sẽ bắt đầu khởi động, sau đó bạn có thể làm việc an toàn trong hệ điều hành đã chọn.

Điều cũng xảy ra là không phải một mà là hai hoặc thậm chí nhiều phiên bản Windows được cài đặt trên ổ cứng. Và sau đó thực hiện khởi chạy ổn định mà không cần thêm lệnh ẩn/hiển thị ( ẩn/bỏ ẩn) đơn giản là không thực tế. Điểm mấu chốt là nếu tệp cấu hình GRUB chỉ định việc ẩn bất kỳ phân vùng nào của ổ đĩa thì Windows sẽ không thể đọc được nó. Và nếu phân vùng hiển thị thì có thể khởi động từ nó.

Nếu bạn có nhiều hệ điều hành, trước tiên hãy quyết định phiên bản nào bạn muốn khởi động, sau đó kiểm tra vị trí chính xác của nó - bạn cần biết nó được cài đặt trên phân vùng nào của ổ cứng. Ví dụ: có hai phiên bản Windows khác nhau nằm tương ứng trên phân vùng thứ nhất và thứ hai của một ổ đĩa và người dùng cần tải xuống phiên bản thứ hai. Để thực hiện việc này, bạn cần thực hiện những thay đổi sau đối với tệp menu.lst:

Tiêu đề Windows,

Bỏ ẩn (hd0,1),

Rootnoverify(hd0,1),

Bộ nạp xích +1,

Các lệnh đã được thêm vào so với mẫu mã trước đó trốnbỏ ẩn, nhờ đó người dùng có thể khởi động hệ điều hành mong muốn từ một phân vùng ổ cứng nhất định.

Cài đặt lại GRUB trong trường hợp có vấn đề nghiêm trọng

Ngay cả trong trường hợp có sự cố kỹ thuật, việc khôi phục GRUB là một công việc hoàn toàn đơn giản. Đầu tiên, tải xuống bản cài đặt LiveCD, mở terminal bằng phím tắt ĐIỀU KHIỂN+ALT+T.

Sau đó, nhập từng lệnh một:

  • sudo grub-install /dev/sda - cài đặt GRUB trực tiếp vào MBR (sda là đĩa khởi động);
  • sudo update-grub - tìm kiếm các mục khởi động khác trên ổ cứng (ví dụ: Windows).

Bây giờ tất cả những gì còn lại là khởi động lại máy tính và đảm bảo rằng bộ tải khởi động được cài đặt lại có đầy đủ chức năng.

Câu hỏi về bảo vệ vòng lặp khởi động lại

Nhu cầu về một hệ thống bảo vệ như vậy được tích hợp vào bộ tải khởi động GRUB xuất hiện khi kích thước của các nhật ký nằm trong thư mục /var/log tăng lên đến mức không thể chấp nhận được do việc ghi thông tin trong đó không được kiểm soát. Một hệ điều hành thông thường cung cấp các dịch vụ đặc biệt để tự động lưu trữ và dọn dẹp các nhật ký này. Như vậy, trong hầu hết các trường hợp, người dùng hoàn toàn không cần mất thời gian kiểm soát âm lượng của mình.

Tuy nhiên, những dịch vụ tương tự này chỉ bắt đầu sau khi hệ điều hành khởi động. Trước đó, kích thước của tệp nhật ký hoàn toàn không được giám sát bởi bất kỳ thứ gì, đó là lý do tại sao trong trường hợp hệ thống gặp sự cố không mong muốn và khởi động lại thêm, nhật ký sẽ chỉ tăng về số lượng. Và sự tăng trưởng không kiểm soát này sẽ tiếp tục cho đến khi quá trình khởi động lại kéo dài do lỗi hệ thống. Sau đó, tất cả điều này có thể dẫn đến việc lấp đầy hoàn toàn phân vùng chứa thư mục /var/log, điều này có thể dẫn đến hệ thống bị đóng băng và thậm chí không thể khởi động chế độ khôi phục.

Chính từ tình huống thảm khốc này mà hệ thống bảo vệ được tích hợp vào GRUB giúp ngăn chặn việc khởi động lại theo chu kỳ, hiển thị menu GRUB “bị đóng băng” đang chờ sự can thiệp rõ ràng của người dùng. Bản thân việc bảo vệ dựa trên giá trị của biến recordfail được chỉ định trong tập lệnh /boot/grub/grub.cfg. Trong mỗi lần khởi động, nó được cài đặt dưới dạng hồ sơ thất bại=1 và ở giai đoạn khởi động cuối cùng, nó được đặt lại thành hồ sơ thất bại=0. Và nếu việc thiết lập lại như vậy không xảy ra thì quá trình tải tự động sẽ bị ngăn chặn hoàn toàn và tính năng bảo vệ GRUB tương tự sẽ được kích hoạt.

Để làm điều này, trong /etc/defaul/grub chúng ta tìm biến GRUB_RECORDFAIL_TIMEOUT và gán cho nó một giá trị số giây trong đó menu GRUB sẽ chờ sự can thiệp của người dùng nếu lỗi ghi không được đặt lại từ 1 thành 0. Sau đó, chúng tôi lưu các thay đổi bằng lệnh cập nhật sudo-grub, do đó vô hiệu hóa tính năng bảo vệ khỏi việc khởi động lại liên tục.

Ai có thể được hưởng lợi từ việc này? Chỉ dành cho các trạm và máy chủ không có bàn phím để nhập/xuất thông tin. Nếu không có nó, trong trường hợp xảy ra sự cố như vậy, việc khởi động hệ thống nói chung là không thể. Các trường hợp vòng lặp khởi động không phổ biến và chủ yếu xảy ra do sự cố về nguồn hoặc trục trặc phần mềm.

Gỡ cài đặt GRUB và quay lại Windows: nhanh chóng, dễ dàng và không gây đau đớn

Nếu câu hỏi được đặt ra, “Làm cách nào để loại bỏ GRUB và rời khỏi bộ nạp khởi động của hệ điều hành khác?”, thì trước hết người dùng sẽ cần đĩa cài đặt/ổ đĩa flash của nó. Hãy xem xét mọi thứ bằng một ví dụ đơn giản cụ thể: một người dùng xóa Linux khỏi máy tính của mình, cuối cùng chỉ để lại Windows, nhưng không thể tải nó do lỗi Lỗi Grub. Để giải quyết triệt để vấn đề, bạn cần khôi phục bootloader Windows x86/64 bit:

  1. Chúng tôi khởi động từ ổ đĩa cài đặt, trước đó đã đặt nó ở mức ưu tiên hàng đầu khi tải vào BIOS
  2. Sau khi khởi động từ phương tiện cài đặt, chọn phân vùng khôi phục hệ thống.
  3. Từ danh sách các công cụ xuất hiện, chọn dòng lệnh, trong đó chúng ta viết từng lệnh sau:
  • BOOTREC.EXE /FixBoot.
  • BOOTREC.EXE /FixMbr.

Vì GRUB có thể được gỡ bỏ trong một vài bước, nên sau tất cả các thao tác thành công, chúng tôi khởi động lại máy tính và hoạt động mà không gặp bất kỳ sự cố nào trong hệ thống Windows.