Tôi có hai gợi ý ...
Tùy chọn # 1: Các ESP riêng biệt
Trong EFI, bộ tải khởi động nằm trong " Phân vùng hệ thống EFI " (ESP). Tôi đặt từ "the" trong dấu ngoặc kép vì không có quy tắc nào nói rằng bạn bị giới hạn ở một ESP. Nếu bạn tạo hai ESP trên đĩa cứng, bạn có thể sử dụng một trong số chúng cho lần cài đặt đầu tiên và ESP thứ hai cho lần cài đặt thứ hai. Điều này sẽ hoạt động khá trơn tru, mặc dù bạn sẽ phải tạo các phân vùng của mình theo cách thủ công (sử dụng tùy chọn "Something Else" trong khi cài đặt), ít nhất là cho cài đặt Ubuntu thứ hai của bạn.
Một vấn đề với cách tiếp cận này là, mặc dù đặc tả EFI nói rõ rằng bạn có thể tạo bao nhiêu ESP tùy thích, một số phần mềm có thể bị nhầm lẫn bởi nó. Một ví dụ nổi bật về điều này là trình cài đặt Windows, ít nhất là qua Windows 7 (tôi không biết về Windows 8 trở lên); khi trình cài đặt Windows 7 nhìn thấy một đĩa có hai ESP, nó sẽ bong ra và làm những điều kỳ lạ. IIRC, nó không hoàn thành cài đặt riêng của mình đúng cách. Có thể hình dung rằng các công cụ sửa chữa Windows sẽ gặp phải vấn đề tương tự. Nếu bạn không khởi động Windows trên hệ thống này, đây không phải là vấn đề lớn. Nếu bạn làKhởi động với Windows, bạn chỉ cần nhận thức được vấn đề, bởi vì bạn có thể dễ dàng khắc phục bằng cách thay đổi tạm thời mã loại của (các) Windows không phải Windows nếu bạn gặp sự cố. Lưu ý rằng Windows sẽ khởi động tốt trên một đĩa có nhiều ESP; nó chỉ là trình cài đặt cuộn cảm trên các đĩa như vậy.
Một vấn đề khác là cách bạn chuyển đổi giữa hai bản phân phối của mình. Bạn có thể cần tùy chỉnh một hoặc cả hai thiết lập GRUB cài đặt của mình bằng công cụ như GRUB Customizer. Một tùy chọn khác (nhưng không tương thích) sẽ là sử dụng trình quản lý khởi động riêng của phần sụn của bạn để chuyển đổi giữa hai bản cài đặt GRUB của bạn và sử dụng từng bản để khởi động phiên bản Ubuntu của riêng nó.
Tùy chọn # 2: Bỏ qua GRUB (hoặc ít nhất là các công cụ GRUB của Ubuntu)
Vấn đề với GRUB cho tình huống của bạn là bạn đã có hai cài đặt và các công cụ bảo trì GRUB có thể bị nhầm lẫn bởi cấu hình đó. Quan sát này dẫn đến giải pháp rõ ràng là bạn không nên sử dụng những công cụ đó. Có một số bộ tải khởi động EFI khác cho Linux, hầu hết đều dễ bảo trì thủ công hơn GRUB. Bạn có thể thiết lập ELILO, SYSLINUX, GRUB Legacy, gummiboot hoặc rEFInd của Fedora và quản lý cả cài đặt của bạn theo cách thủ công. Trên thực tế, vì rEFInd phát hiện hạt nhân bất cứ khi nào nó khởi động, rEFInd sẽ gần với việc không cần bảo trì, một khi nó được thiết lập. Ngoài ra, nhưng theo cách tương tự, bạn có thể chỉnh sửa grub.cfg
tệp của mình để làm những gì bạn muốn, thay vì dựa vào các tập lệnh thiết lập GRUB.
Ngoài rEFInd, tất cả các công cụ này sẽ yêu cầu bạn thực hiện thay đổi cấu hình bất cứ khi nào bạn cập nhật kernel, đây sẽ là một lực cản. Ngoài ra còn có câu hỏi khi nào và làm thế nào để cài đặt chương trình khởi động thêm. Có lẽ tôi nên tắt nó cho đến sau lần cài đặt Ubuntu thứ hai, vì mỗi lần cài đặt sẽ đăng ký bản sao GRUB của riêng nó làm trình tải khởi động mặc định và bạn muốn ghi đè mặc định đó.
Cũng lưu ý rằng không có công cụ nào trong số này có thể đọc kernel từ hệ thống tệp được mã hóa hoặc từ LVM, vì vậy bạn sẽ cần có một /boot
phân vùng không được mã hóa riêng cho mỗi lần cài đặt Ubuntu của bạn. Dù sao đây cũng là cách mà hầu hết các hướng dẫn tôi từng thấy để thiết lập cài đặt Ubuntu được mã hóa, vì vậy có lẽ nó không phải là vấn đề lớn trừ khi bạn muốn chơi trên "cạnh chảy máu" của mã hóa đĩa.
Một số bộ tải khởi động EFI có các yêu cầu phân vùng hoặc hệ thống tập tin cụ thể bổ sung. Đáng chú ý nhất là ELILO, SYSLINUX và gummiboot đều yêu cầu kernel nằm trên phân vùng FAT và ESP hoạt động tốt nhất cho việc này. Bạn có thể làm điều này bằng cách gắn ESP tại /boot
, nhưng đây là một giải pháp iffy trong Ubuntu vì một số cập nhật gói yêu cầu các liên kết tượng trưng. Bạn cũng gặp khó khăn khi thực hiện việc này với hai cài đặt Ubuntu riêng biệt vì cả hai đều cố gắng yêu cầu các tệp giống nhau. (Trong trường hợp này, "ESP" thực sự có nghĩa là "phân vùng mà trình tải khởi động đã chạy", do đó bạn có thể chỉ có một ESP trong trường hợp này.) GRUB Legacy và rEFInd linh hoạt hơn về vấn đề này.
Đề nghị của tôi
Cá nhân, tôi sẽ sử dụng rEFInd cho việc này - nhưng khi tôi duy trì rEFInd, tôi không thực sự thiên vị. Trên thực tế, tôi đã có một máy tính đa khởi động giữa ba lần cài đặt Ubuntu và rEFInd chuyển đổi giữa chúng tốt. Hệ thống cụ thể này không sử dụng mã hóa, nhưng tôi nghi ngờ nếu điều đó sẽ gây ra bất kỳ vấn đề mới nào từ quan điểm của rEFInd.
Điều đó nói rằng, các ESP riêng biệt cũng sẽ hoạt động tốt, với lời cảnh báo rằng bạn có thể cần phải sử dụng GRUB Customizer để điều chỉnh cài đặt của ít nhất một trong những bản sao GRUB đó.