Phân vùng '' phân vùng khởi động EFI '' và '' biosgrub ''


21

Tại sao tôi cần những thứ này? Tôi đã cài đặt Ubuntu theo UEFI (bản ghi khởi động chính) và đã cài đặt Ubuntu không có 'biosgrub' và nó hoạt động tốt, trong khi những lần khác tôi được yêu cầu tạo phân vùng 'biosgrub'. Tôi không biết tại sao đôi khi tôi cần nó và những người khác tôi không (cả hai đều nằm trên cùng một hệ thống).

Và điều tương tự xảy ra khi tôi sử dụng UEFI (Bảng phân vùng GUID). Sự khác biệt duy nhất là tôi được yêu cầu tạo một 'phân vùng khởi động EFI', nhưng như với 'biosgrub', đôi khi tôi được yêu cầu tạo ra nó và đôi khi tôi không được yêu cầu tạo ra nó.

Đối với cài đặt hiện tại của tôi, tôi đã được yêu cầu tạo một cái nhưng tôi đã không làm và hệ thống của tôi vẫn ổn. Không có thay đổi trong hệ thống, cùng phần cứng, BIOS, v.v ... Có ai có thể làm sáng tỏ điều này không?


2
Bạn cần phải nhất quán trong Khởi động. Chỉ khi ở chế độ khởi động UEFI, bạn mới cần phân vùng efi và chỉ trong chế độ khởi động BIOS với phân vùng gpt, bạn mới cần phân vùng bios_grub. Nếu bạn đang sử dụng UEFI, nhưng khởi động Boot-Repair ở chế độ BIOS và thử cài đặt grub ở chế độ BIOS, nó sẽ yêu cầu bạn tạo phân vùng bios_grub.
oldfred

Câu trả lời:


34

Có bốn điều kiện (BIOS so với EFI và MBR so với GPT), nhưng hai trong số chúng có nhu cầu giống hệt nhau (và một trong số đó là cực kỳ hiếm):

  • Trên máy tính dựa trên BIOS truyền thống có bảng phân vùng MBR truyền thống, mã thực thi của GRUB được lan truyền xung quanh như spaghetti do em bé ném. Một số phần trong phần mã khởi động của MBR, một phần trong phần hậu MBR chính thức chưa được phân bổ và một số phần trong /bootphân vùng Linux . Đây là một mớ hỗn độn thực sự và nó chỉ hoạt động vì các nhà phát triển đã có hàng thập kỷ để tạo ra các bản hack thông minh và xử lý (gần như) tất cả các nút thắt.
  • Trên máy tính dựa trên BIOS truyền thống có Bảng phân vùng GUID (GPT) mới, mã GRUB tương tự như trong trường hợp trước; tuy nhiên, các lĩnh vực ngay sau MBR không được phân bổ; chúng được sử dụng bởi chính GPT. GPT không cung cấp vị trí tương tự cho GRUB để chiếm quyền điều khiển, vì vậy các nhà phát triển của GRUB đã giải quyết trên Phân vùng khởi động BIOS (được gắn cờ và partednhận dạng bằng bios_grubcờ) để giữ mã sẽ đi vào các phần sau MBR trên đĩa MBR. Điều này thực sự an toàn và sạch hơn so với phương pháp MBR, vì nó phục vụ để bảo vệ mã GRUB khỏi các chương trình khác có thể cố gắng sử dụng không gian chưa được phân bổ đó.
  • Trên máy tính có EFI mới hơn là BIOS, bộ tải khởi động không được lưu trữ trong MBR, trong các khu vực hậu MBR chưa được phân bổ chính thức hoặc trong Phân vùng khởi động BIOS; thay vào đó, bộ tải khởi động nằm trong các tệp thông thường trên phân vùng FAT được gọi là Phân vùng hệ thống EFI (ESP) . ( Thật khó hiểu, các trình cài đặt Debian và Ubuntu đề cập đến ESP với tên "Phân vùng khởi động EFI", nhưng tên này không chuẩn. GParted và partedxác định ESP là có "bootcờ "được đặt, mặc dù thuật ngữ đó có nghĩa là một cái gì đó hoàn toàn khác trên các đĩa MBR.) Một ESP có thể tồn tại trên đĩa GPT hoặc đĩa MBR, nhưng trước đây phổ biến hơn nhiều trên các máy tính dựa trên EFI. Cách tiếp cận EFI an toàn hơn nhiều và an toàn hơn nhiều. linh hoạt hơn nhiều so với cách tiếp cận BIOS, vì nó không giấu mã thô ở những nơi kỳ lạ, bộ tải khởi động nằm trong các tệp, giống như các chương trình cấp hệ điều hành. Điều này giúp chúng dễ dàng xác định và thao tác hơn. (OTOH, EFI cũng lưu trữ dữ liệu trên các bộ tải khởi động trong NVRAM, điều này tạo ra điểm thất bại thứ hai trong quá trình khởi động. Tính mới của EFI cũng có nghĩa là nó không được kiểm tra tốt, điều này gây ra một loạt các vấn đề cụ thể về EFI.)

GhostMotleyX, nhận xét của bạn về phản hồi của LiveWireBT cho rằng cách cài đặt "tốt nhất" là BIOS / MBR. Điều này là chủ quan, tất nhiên, nhưng tôi không đồng ý với đánh giá đó. Cách tiếp cận BIOS / MBR là ít an toàn nhấtnhiều nhấtvụng về trong ba cách tiếp cận tôi vừa vạch ra. Cách tiếp cận EFI là cách tiếp cận an toàn và linh hoạt nhất. Tôi nghi ngờ bạn đang bị treo trên thực tế rằng các phân vùng riêng biệt được yêu cầu cho các phương pháp GRUB / GPT và EFI, nhưng đó không phải là vấn đề lớn. Ngoài việc thiết lập hệ thống hoặc bảo trì phân vùng, các phân vùng đó sẽ vô hình với bạn và chúng cho bạn rất nhiều sự linh hoạt. Không giống như MBR, GPT không giới hạn ở bốn phân vùng chính, vì vậy bạn không cần phải tích trữ các phân vùng chính của mình như một người yêu tinh tích trữ vàng của mình.


Cảm ơn tất cả những người đã trả lời, thông tin thực sự hữu ích; đặc biệt là Rod Smith.
GhostMotleyX

Vậy trên hệ thống khởi động EFI, bạn vẫn chỉ cần một phân vùng nhỏ? Nội dung MBR-boot-sector và EF02phân vùng gdisk (hoặc tương đương) có thể được lưu trữ trong (các) tệp trong phân vùng hệ thống EFI định dạng FAT (với loại gdisk EF00)?
Peter Cordes

Peter, vâng, về cơ bản là chính xác; Bộ tải khởi động EFI là các tệp được lưu trữ trên ESP, không phải trong các phần khởi động của đĩa hoặc phân vùng.
Rod Smith

Điều gì xảy ra nếu tôi muốn hỗ trợ cả khởi động UEFI và khởi động BIOS? Sau đó tôi sẽ có hai bản sao của grub, một trong EFI System Partitionvà một trong các BIOS boot partition?
Xin chào thế giới

Xin chào thế giới, bạn cần một chế độ khởi động EFI và một bộ tải khởi động ở chế độ BIOS. Cả hai không cần phải là GRUB. Trên thực tế, tôi khuyên rằng ít nhất một trong số họ không được như vậy, vì điều đó có thể trở nên khá khó hiểu. Một cấu hình như vậy là khá vô nghĩa khi khởi động một hệ điều hành, mặc dù. Có thể cần thiết cho một số tình huống khởi động kép - giả sử, nếu một hệ điều hành thiếu bộ tải khởi động ở chế độ EFI và một số khác cần khởi động ở chế độ EFI vì một số lý do (giả sử, nếu Windows và đĩa của bạn vượt quá 2TiB, vì vậy bạn cần GPT để hỗ trợ kích thước đầy đủ của nó).
Rod Smith

7

Bạn cần tạo phân vùng biosgrub trên đĩa được phân vùng GPT khi thiết lập khởi động kế thừa hoặc phân vùng khởi động EFI (cho cả đĩa được phân vùng GPT hoặc MBR) khi thiết lập khởi động UEFI.

  • GRUB yêu cầu Phân vùng khởi động BIOS (2 MiB, không có hệ thống tệp, EF02mã loại trong cờ gdisk hoặc bios_grub trong GNU Parted) trong các hệ thống BIOS để nhúng core.imgtệp của nó do thiếu khoảng cách nhúng MBR trong các đĩa GPT . [...]

https://wiki.archlinux.org/index.php/GPT#Bootloader_Support


1
Cảm ơn, tôi nghĩ rằng tôi hiểu bây giờ; Nếu tôi đang cài đặt Ubuntu không phải UEFI trên đĩa MBR, tôi sẽ không cần biosgrub. Nếu tôi cài đặt Ubuntu theo UEFI trên đĩa GPT thì tôi cần tạo phân vùng EFI. Và sau đó, sự không nhất quán mà tôi gặp phải là khi tôi sẽ cài đặt Ubuntu không phải UEFI trên đĩa GPT và UEFI với MBR. Vì vậy, cách tốt nhất trong lý thuyết để cài đặt Ubuntu là Non-UEFI với bảng phân vùng MBR hoặc UEFI với bảng phân vùng GPT.
GhostMotleyX

@GhostMotleyX Đúng vậy.
LiveWireBT

thậm chí 1MiB là quá đủ. Tôi muốn đặt nó trước phân vùng 1MiB "bình thường" đầu tiên, như tôi đã giải thích trong đoạn cuối của en.wikipedia.org/wiki/BIOS_boot_partition#Overview (mà tôi vừa chỉnh sửa). Tôi chưa quyết định liệu tôi có nên sử dụng sortlệnh của gdisk để đánh số lại các phân vùng theo thứ tự của khu vực bắt đầu hay không, nếu tôi muốn để nó như là sdc4hoặc w / e. Có lẽ sắp xếp ít lạ hơn, vì vậy các phân vùng grub của tôi sẽ luôn như vậy sdX1.
Peter Cordes

3

Tôi sẽ cung cấp thêm một điểm / động lực để có cả hai, EFI và BIOS grub.

Thanh USB để khởi động vòng lặp Live SystemResTHERCD.iso từ Grub2.

Tại sao? Câu trả lời đơn giản: nó sẽ khởi động trên rất nhiều PC, một số có UEFI một số chỉ có BIOS cũ 32 bit, v.v.

Động lực phức tạp thực sự: sử dụng phần cứng tiên tiến (UEFI) nếu có thể.

Mẫu sử dụng trực tiếp thực tế:

  • Thanh USB (được tạo trên chế độ GPT) với bốn phân vùng
  • Phân vùng đầu tiên (có thể nhìn thấy từ Windows 7 trở lên) trên NTFS với phần còn lại của kích thước của thanh USB
  • Phân vùng thứ hai cho tệp Grub2 và SystemResTHERCD.iso có ít nhất 1GiB (tốt hơn nếu 2GiB để bạn có thể mang hai phiên bản SystemResTHERCD.iso cùng lúc, chỉ để kiểm tra phiên bản mới trước khi thay thế phiên bản cũ), tôi thường sử dụng hệ thống tệp Ext4 cho nó
  • Phân vùng thứ ba cho EFI (cửa sổ gọi là ESP) được định dạng là Fat32 với ít nhất 512MiB (tôi đã thấy một số PC nếu sử dụng ít hơn thì chúng không hiển thị thanh USB dưới dạng phương tiện có thể khởi động)
  • Phân vùng thứ tư cho BIOS_Grub (không có định dạng, nhưng bị xóa khi được tạo)

Một điều quan trọng: Tôi đã thấy một chiếc USB 8GiB LG (một cái tôi sở hữu) từ chối được liệt kê trên khởi động PC UEFI vật lý nếu các phân vùng không được căn chỉnh theo hình trụ, nhưng được nhìn thấy trên các PC UEFI khác và cả trên VirtualBOX với UEFI boot Chế độ được kích hoạt ... khi phân vùng nó nếu được căn chỉnh với MiB, nó sẽ sử dụng tất cả không gian, không có khoảng trống không liên kết gần 1MiB, nhưng khi được căn chỉnh theo hình trụ, MiB không hoàn chỉnh cuối cùng sẽ không được sử dụng ... nếu tôi thực hiện phân vùng MiB. (nói cách khác tôi thực hiện căn chỉnh xylanh thủ công) nó hoạt động, nhưng như tôi đang nói nó vẫn là hình trụ thẳng hàng (tôi đang làm thủ công thay vì để công cụ phân vùng làm điều đó cho bạn).

Làm thế nào để có được thanh khôi phục USB tuyệt vời như vậy (nó có hai thủ thuật):

  1. Căn chỉnh các phân vùng thành Xi lanh (khả năng tương thích tốt hơn để chỉ căn chỉnh với MiB)
  2. Thực hiện cài đặt grub-install --target = i386-pc và sau đó thực hiện một cài đặt grub khác --target = x86_64-efi trên cùng một phân vùng grub, vì vậy bạn chỉ sử dụng một grub.cfg cho cả hai chế độ khởi động

Làm thế nào nó khởi động:

  • a) khởi động mẫu BIOS cũ, sẽ tải MBR, sau đó là Giai đoạn 2 của phân vùng BIOS_grub dạng grub, sau đó là core.img từ phân vùng Grub2
  • b) mẫu khởi động tương thích UEFI, sẽ tải tệp .efi từ phân vùng ESP
  • grub.cfg được đọc (nếu tồn tại trên phân vùng grub2)
  • sau đó menu grub2 được hiển thị
  • sau đó tôi chọn khởi động từ vòng lặp SystemResTHERCD.iso (với tham số dochace), tôi đã đặt hai tùy chọn được đặt trên grub.cfg, một cho 32Bits, một cho 64Bits (tôi thực sự có bốn tùy chọn, vì tôi đặt trên hai tham số dostartx khởi động trực tiếp trên GUI).
  • Sau khi khởi động, tôi có thể rút thanh USB ra (toàn bộ Live Linux có trong ramdrive nhờ docache như vậy), không cần nhập bất kỳ lệnh nào, Pendrive không được gắn (một lần nữa nhờ tham số docache).

Với thanh này, tôi có thể khởi động PC cũ (nếu chúng cho phép khởi động từ USB) trong 32 bit hoặc 64 bit (nếu chúng có phần mở rộng etendor trên procesor), nhưng khởi động ở chế độ BIOS.

Với thanh này, tôi cũng có thể khởi động PC mới (nếu họ cho phép khởi động từ USB) trong 32 bit và 64 bit, nhưng khởi động ở chế độ UEFI (à, vâng, nó có thể khởi động ở chế độ UEFI và sau đó chỉ cần khởi động Linux Live SystemResTHERCD trong 32 bit chế độ cũng như ở chế độ 64 bit).

Vì vậy, tôi có tất cả trong một phương tiện khởi động khôi phục thanh USB, có khả năng khởi động ở gần tất cả các PC, hiện đại hoặc cũ (chỉ cần hỗ trợ khởi động USB), bất kể là 32 bit hay 64 bit, BIOS hay UEFI, v.v ... và tôi có thể chọn những gì tôi muốn chạy 32 bit hoặc 64 bit.

Ngoài ra, tôi đã thử nghiệm trên PC từ chối cài đặt Windows 64Bits (bộ xử lý 32 bit cũ), nhưng có thể chạy Linux Live 64 bit (vì khả năng PAE tồn tại trên bộ xử lý đó).

Lưu ý bên lề: Phân vùng đầu tiên như NTFS là để giữ dữ liệu có thể chia sẻ với Windows 7 trở lên (XP sẽ không thấy nó vì không hỗ trợ phân vùng GPT) ... nó phải là phân vùng đầu tiên, không cần phải khởi tạo một phần của đĩa, có thể là bất cứ nơi nào bạn muốn, nhưng nằm trong mục nhập đầu tiên trên bảng phân vùng, điều này được gây ra bởi chế độ cửa sổ có thể gắn được để phân vùng trên di động, nó có mã được lập trình cụ thể để tránh truy cập nhiều hơn phân vùng đầu tiên, vì vậy bạn không thể gắn kết những người khác cùng một lúc.

Bổ sung cho phân vùng Windows và USB: Nếu bạn trao đổi các mục phân vùng trên bảng partitiong, nói cách khác, bạn đặt phân vùng bạn muốn truy cập làm phân vùng đầu tiên trong bảng, các cửa sổ sẽ cho phép bạn truy cập (nếu định dạng của nó là dễ hiểu, fat32 và NTFS trực tiếp, ext2 với các trình điều khiển đặc biệt, v.v.), nhưng sẽ chỉ cho phép truy cập vào trình điều khiển nằm ở mục đầu tiên của bảng phân vùng ... có một công cụ (được gọi là BootICEx86.exe) có thể thực hiện công việc đó trên Windows thậm chí không cần rút phích cắm thanh usb.

Siêu bổ sung: cũng có một số ổ đĩa (tôi rất may mắn khi sở hữu một chiếc Sony 16GiB) có thể được thay đổi một chút bằng các công cụ đặc biệt (của tôi với một công cụ từ lexar) để chúng xuất hiện trên Windows dưới dạng USB HDD thay vì USB , sau thay đổi đó, tất cả các cửa sổ sẽ cho phép bạn xóa, tạo và quản lý các phân vùng trên đó, cũng có thể gắn nhiều hơn một cái cùng một lúc, mỗi cái có một chữ cái riêng.

Người dùng Linux không lo lắng về điều đó, vì Linux xem nó như một thiết bị khối có thể phân vùng và không triển khai mã đặc biệt để chặn các phân vùng gắn kết, v.v., như windows có.

Ồ, vâng, đoạn cuối này được viết chỉ trong trường hợp một người nào đó trên M $ đọc chúng, vì vậy khuôn mặt của họ rơi xuống sàn, tôi đang cố gắng (sẽ không bao giờ hiểu được, tôi biết đó là một phản ứng thất lạc) để họ loại bỏ như vậy mã xấu từ Windows và cho phép người dùng có phân vùng trên thanh usb theo cách riêng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.