Làm cách nào để tạo môi trường multiboot bằng LVM cho các hệ điều hành * buntu của bạn trên ổ đĩa hệ thống được định dạng GPT, trong hệ thống dựa trên UEFI?


9

Lý do sử dụng LVM của tôi là tôi cài đặt lại, nâng cấp và nói chung là loay hoay với các cài đặt hệ điều hành của tôi đến nỗi tôi thấy rằng LVM mang lại cho tôi sự linh hoạt tuyệt vời trong việc di chuyển, mở rộng, sao chép và sao lưu các phân vùng HĐH của tôi mà không gặp rủi ro với các phương pháp phân vùng khác. Tuy nhiên, điều đó làm cho việc đa hệ điều hành của bạn đôi khi hơi phức tạp và không thể đoán trước được, đặc biệt là trên phần cứng mới hơn, nơi quá trình đạt được mức độ phức tạp khác.

Điều tôi đang nói đến là các bo mạch chủ UEFI mới (trái ngược với BIOS), cho phép bạn sử dụng toàn bộ tiềm năng và để khởi động từ ổ cứng 3TB + (khi được định dạng trong GPT trái ngược với MBR). Mọi thứ có thể trở nên cực kỳ phức tạp và rối tung vì mỗi lần bạn cài đặt một hệ điều hành mới trên máy của mình, nó sẽ ghi đè lên các tệp bộ tải khởi động EFI (.efi) của bản cài đặt trước đó của bạn và bạn sẽ kết thúc với một loạt các mục bị hỏng trong EFI của bạn Danh sách khởi động "BIOS" và một bộ tải khởi động grub dư thừa khá nhiều nằm rải rác về các phân vùng của bạn. Điều này xúc phạm tôi ở rất nhiều cấp độ, không kém phần thẩm mỹ.

Câu trả lời:


6

LƯU Ý: Đây là câu trả lời của OP. Tôi đã chuyển nó xuống đây dưới dạng CW để nó không bị đóng. Nếu một mod thấy điều này, vui lòng trả lại quyền sở hữu cho OP dưới dạng tự trả lời.

Dưới đây, tôi sẽ trình bày chi tiết làm thế nào để tất cả những thứ này hoạt động hài hòa và sắp xếp mớ hỗn độn, ở một mức độ nào đó.

Phần thứ nhất: Cài đặt.

Hãy lưu ý rằng nếu bạn đang đi để có Windows 7 (hoặc 8?) Được cài đặt trên máy tính của bạn, có thể bạn sẽ phải cài đặt nó đầu tiên , tốt nhất là vào đó là ổ cứng riêng, và bạn sẽ không thể đặt nó trong bạn nhóm khối lượng logic. Điều này là do trình cài đặt Windows 7 GPT / EFI rất cơ bản và sẽ không cho phép bạn thực hiện các loại việc bạn sẽ làm ở đây. Sau khi cài đặt windows, bạn có thể thay đổi kích thước và phân vùng lại, thêm các phân vùng bạn cần cho cài đặt đa khởi động. Phân vùng hệ thống EFI mà Windows tạo luôn có thể được sử dụng lại cho các bản cài đặt Linux, sử dụng một biến thể của phương pháp chi tiết bên dưới.

Đầu tiên , nó giúp xóa sạch ổ đĩa hệ thống dự định của bạn bằng cách sử dụng gparted (hoặc tương tự) và khởi tạo nó dưới dạng đĩa GPT, trước khi làm bất cứ điều gì khác. Nếu bạn hơi lo lắng về việc sử dụng trình phân vùng phi đồ họa để thiết lập đĩa của bạn từ đầu, thì điều này chắc chắn đáng giá và được thực hiện dễ dàng từ trình cài đặt USB hoặc CD để bàn trực tiếp tiêu chuẩn. Đừng làm điều đó trong Windows. Tôi không chắc chắn rằng điều này là hoàn toàn cần thiết, nhưng đó là những gì tôi đã làm. Bạn cũng có thể thực hiện phân vùng cơ bản cho các phân vùng không phải LVM ở giai đoạn này, vì nó sẽ không gây hại và cung cấp cho bạn một khung để cài đặt phù hợp.

Bây giờ hãy ghi đĩa CD / USB cài đặt của bạn. Nếu bạn đang sử dụng Ubuntu Alternate Desktop ISO (được khuyến nghị), thì bạn phải ghi nó vào đĩa CD, vì đơn giản là nó sẽ không hoạt động với thanh USB. Khi được sử dụng để cài đặt LVM, nó sẽ dừng với một lỗi nghiêm trọng khi nó cố bắt đầu tải và cài đặt phần mềm với aptitude / taskel, vì vậy hãy sử dụng CD nếu bạn biết điều gì tốt cho bạn!

  • Ubuntu Server cài đặt hoàn toàn tốt từ USB trong mọi trường hợp (AFAIK), nhưng tôi thấy rằng nếu tôi muốn xây dựng một hệ thống máy tính để bàn Ubuntu / Mythb Ubuntu trên máy chủ, nó sẽ giới thiệu tất cả các loại quirks ngoài ý muốn mà sau đó cần thời gian để sắp xếp. Vì vậy, hãy gắn bó với Desktop, nếu đó là những gì bạn đang theo đuổi.

  • Quantal (12.10) có LVM là một tùy chọn trong trình cài đặt đồ họa (rất tuyệt!) Và do đó, Alternate ISO đã được loại bỏ. Tuy nhiên, tôi thấy giao diện phân vùng thủ công không linh hoạt, thiếu các tùy chọn LVM và đơn giản là không hoạt động cho đa khởi động. Điều này có thể là do vấn đề USB được đề cập trước đó, nhưng thành thật mà nói, tôi đã gặp quá nhiều vấn đề với hệ thống Quantal mà tôi đã thử, tôi đã từ bỏ khá nhanh và quay lại Precise (12.04.1).

  • Tùy chọn chính khác là sử dụng trình cài đặt Net-boot, mà tôi không có bất kỳ trải nghiệm thực tế nào (ngoại trừ Raspberry Pi của tôi), nhưng tôi tin rằng có các ISO nhỏ với trình cài đặt dựa trên văn bản và GUI (GTK), có thể bị cháy và khởi động từ. Chúng kéo hầu hết các tệp cài đặt trực tiếp từ kho lưu trữ và có khả năng tùy biến cao.

Tiếp theo , bạn nên khởi động hệ thống của mình từ CD hoặc USB bằng cách sử dụng mục khởi động UEFI từ trong "BIOS" hoặc menu khởi động (thường là một trong [F8] - [F12] trên bàn phím).

Tôi sẽ để bạn tự tìm hiểu sơ bộ về quá trình cài đặt, nhưng một khi bạn đã đến phần phân vùng, hãy chọn Phân vùng thủ công và sau đó tạo (hoặc sửa đổi nếu bạn đã tạo một số trong số chúng) các phân vùng này:

  1. Một phân vùng duy nhất có kích thước 200MB, FAT32, Phân vùng hệ thống EFI, được đặt tên / gắn nhãn "EFI", Khả năng khởi động, Định dạng.

  2. Một số phân vùng: Kích thước 256MB, EXT2, Khả năng khởi động, Định dạng;

    • Bạn nên đặt tên / gắn nhãn cho mỗi hệ điều hành mà họ sẽ đại diện, tức là "OS_01_Boot" ... "OS_03_Boot" ... vv.

    • Bắt đầu bằng cách gắn cái đầu tiên trong số này là "/ boot" và tất cả những cái khác là "không sử dụng".

    • Tạo một phân vùng cho mỗi HĐH mà bạn định cài đặt.

  3. Một phân vùng, chiếm phần còn lại của không gian ổ đĩa, làm âm lượng cho LVM.

    • Định cấu hình LVM trên ổ đĩa mà bạn vừa phân vùng, tạo một nhóm âm lượng cho tất cả các hệ điều hành của bạn, đặt cho nó một tên phù hợp và nhiều không gian cho tất cả chúng. Tôi khuyên bạn nên bao thanh toán ít nhất 40 GB cho mỗi loại, tùy thuộc vào loại cài đặt bạn đang lên kế hoạch cho từng loại.
  4. Tạo một khối lượng logic có cùng kích thước với RAM vật lý trong hệ thống của bạn, ví dụ 8GB, đặt tên là "Hoán đổi", sử dụng làm trao đổi, định dạng.

  5. Tạo một khối hợp lý cho mỗi HĐH trong nhóm âm lượng, định cỡ chúng như được đề xuất ở trên và đặt cho chúng một tên, ví dụ "Ubuntu_12.04", v.v.

    • Định dạng từng thành EXT4, đặt tên / ghi nhãn các phân vùng khi bạn đi.

    • Bắt đầu bằng cách gắn cái đầu tiên trong số này là "/" (root) và tất cả những cái khác là "không sử dụng".

Đó là nó! Bây giờ bạn đã có một phân vùng trao đổi, "/ boot" và "/" (root) cho hệ thống của bạn và dự phòng cho các cài đặt tiếp theo của bạn. Bây giờ bạn có thể cam kết các thay đổi đối với bảng phân vùng và tiếp tục với phần còn lại của cài đặt.

Khi nói đến việc cài đặt hệ điều hành tiếp theo của bạn, chỉ cần đảm bảo rằng bạn gắn kết phân vùng "/ boot" và "/" (root) tiếp theo. Vui lòng đảm bảo rằng bạn đánh dấu tất cả những người khác là "không sử dụng", bao gồm cả những người bạn đã sử dụng lần trước.

Phần thứ hai: Sao lưu các tệp khởi động UEFI.

Ngay sau khi bạn đã khởi động vào HĐH mới, bạn phải sao lưu bộ tải khởi động UEFI để sử dụng sau và để đảm bảo rằng nó không bị ghi đè trong lần cài đặt tiếp theo. Điều này có thể được tìm thấy trong "/ boot / efi / EFI", trong thư mục riêng của nó, thường được đặt tên là "ubfox". Tệp được đề cập sẽ có tên tương tự như "grubx64.efi", tùy thuộc vào kiến ​​trúc của PC của bạn; vì vậy "/boot/efi/EFI/ubfox/grubx64.efi", cho máy của tôi.

Trong trường hợp của tôi, để sao lưu nó, tôi đã sao chép nó thông qua bảng điều khiển, như vậy:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Nó chắc chắn sẽ có giá trị khi tạo thêm một bản sao trong thư mục nhà của bạn hoặc nơi nào khác an toàn, chỉ trong trường hợp:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Khi điều này được thực hiện, bạn có thể cài đặt hệ điều hành tiếp theo của mình một cách an toàn (theo lời khuyên ở trên), rất có thể sẽ ghi đè lên tệp và thư mục gốc và cũng tự biến nó thành mục khởi động UEFI mặc định trong "BIOS". Lặp lại quy trình một lần nữa và nhiều lần nếu cần, đặt cho mỗi thư mục một tên khác nhau, nhưng đại diện:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Phần thứ ba: Sửa đổi các mục UEFI trong "BIOS" UEFI của bạn.

Từ thiết bị đầu cuối, nhập:

sudo efibootmgr

Bạn sẽ nhận được một số đầu ra như thế này:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Nó thực sự khá tự giải thích, thực sự. Nó sẽ phản chiếu những gì bạn thấy trong danh sách khởi động BIOS của bạn.

Hãy đọc:

man efibootmgr

để xem các lệnh làm gì, sau đó sửa đổi các lệnh ví dụ bên dưới để thêm và xóa các mục khởi động.

Đầu tiên , xóa dòng "Boot0000 * ubfox" đó bằng:

sudo efibootmgr -b 0000 -B

Đầu ra:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Sau đó, chúng tôi sẽ thêm một số mục cho ba hệ điều hành.

HĐH # 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Đầu ra:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

HĐH # 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Đầu ra:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

HĐH # 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Đầu ra:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Để thay đổi thứ tự khởi động:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Đầu ra:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Làm xong!

Có một số cú pháp khá lạ liên quan, đặc biệt là xung quanh các đường dẫn tệp, nhưng nó khá đơn giản nếu bạn có một hướng dẫn tốt (mà tôi hy vọng điều này).

Cảm ơn vì đã đọc. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


Cảm ơn, AbrahamVanHỗ trợ. Tôi đã cố gắng tự trả lời, nhưng tôi nghĩ rằng tôi quá nhiều ở đây. Tôi sẽ cố gắng dọn dẹp cái này sau; định dạng thật kinh khủng! Bây giờ là 1:30 sáng, vì vậy tôi sẽ bỏ cuộc ngay bây giờ!
Giàu.T.

2

Bất kỳ trình cài đặt hệ điều hành nào xóa các tệp bộ tải khởi động EFI của các hệ điều hành trước đó hoặc bị hỏng đều bị hỏng nặng. Ubuntu đã có vấn đề này trong quá khứ, nhưng nó đã được sửa với phiên bản 12.04. (Tôi nói "được cho là" bởi vì tôi đã thấy một vài báo cáo về các vấn đề dọc theo các dòng này khiến tôi nghĩ rằng lỗi này vẫn có thể tồn tại đối với một số ít các hệ thống.) cài đặt hệ điều hành mới là một chính sách bảo hiểm hữu ích. Một bản sao lưu ở cấp độ tệp là đủ, vì EFI không dựa vào mã bị loại bỏ trong các phần khởi động. (Tuy nhiên, phụ thuộc vào GUID của phân vùng, do đó, nếu có thứ gì đó xóa ESP và tạo một cái mới, các mục của trình tải khởi động của EFI có thể ngừng hoạt động.)

Nói chung, đối với loại cấu hình của bạn, tôi khuyên bạn nên tạo một ESP, có nhiều /bootphân vùng như bạn nghĩ bạn có thể cần và một phân vùng LVM lớn. Nếu bạn muốn cài đặt các bản phân phối Linux cùng với các HĐH khác, hãy tạo ba hoặc bốn phân vùng LVM có kích thước khác nhau mà sau đó bạn hợp nhất thành một nhóm âm lượng; bằng cách đó, bạn có thể kéo một phân vùng (khối lượng logic) ra khỏi nhóm âm lượng của mình và dành nó cho một hệ điều hành không phải là Linux. Các /bootphân vùng không phải LVM cung cấp cho bạn tùy chọn sử dụng các bộ tải khởi động không hiểu LVM (nghĩa là các bộ tải khởi động không phải GRUB2).

Khi bạn cài đặt một hệ điều hành mới, nó có thể sẽ cài đặt bộ tải khởi động riêng của nó làm mặc định. Trong một thiết lập phức tạp như của bạn, đây có lẽ là điều sai lầm để làm hầu hết thời gian. Để sửa lỗi, cần có ổ flash USB hoặc CD-R với bộ tải khởi động ưa thích của bạn được cài đặt trên nó. Một cái gì đó có thể tự động phát hiện các bộ tải khởi động khác, chẳng hạn như wiki Arch Linux này để liên kết tải xuống tới một số vỏ EFI.) Cả hình ảnh CD rEFIt và rEFInd đều có vỏ EFI. rEFIt hoặc rEFInd phái sinh của nó , có khả năng hoạt động tốt trong bối cảnh này. . điều chỉnh các tùy chọn khởi động và khắc phục một số vấn đề từ trình bao EFI. Nhiều trình tải khởi động EFI và trình quản lý khởi động có thể khởi chạy trình bao EFI. (Xem


2

Bạn không phải sử dụng EFI để khởi động đĩa 2 + TB; bạn chỉ cần sử dụng GPT và tạo phân vùng bios_grub 1 MB bên dưới dấu 2Tb. Nếu bạn thấy EFI có vấn đề, điều này có thể làm việc tốt hơn cho bạn.

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.