Vẫn có thể cài đặt Ubuntu vào ổ cứng ngoài với UEFI?


Câu trả lời:


12

Nó thực sự là có thể .

Trước khi tôi tiếp tục, các hướng dẫn này có nghĩa là cho Phân vùng hệ thống EFI trống (ESP) và có thể sẽ ghi đè lên các tệp hiện có hoặc không hoạt động như mong đợi. Ít nhất là tạo bản sao lưu!

Thêm các phân vùng cần thiết cho các nền tảng khác nhau

Nền tảng: PC kế thừa, máy tính Windows dựa trên UEFI, máy tính Apple

Thêm một ESP vào bản cài đặt hiện có với MBR

Bạn cần phải làm theo các hướng dẫn từ cài đặt khác hoặc phương tiện truyền thông trực tiếp.

  1. Cài đặt grub-efi-amd64-bingói. Điều này sẽ chỉ cài đặt các tài nguyên cần thiết. Nó sẽ không chuyển cài đặt kiểu MBR hiện tại của bạn sang UEFI và đảo ngược mọi thứ.

  2. Thu nhỏ phân vùng Ubuntu của bạn trong GParted để tạo không gian cho một ESP. Các kích thước được đề xuất cho các ESP có phạm vi từ 100 MB đến 500 MB, nhưng các tệp được tạo bằng cách làm theo các hướng dẫn ở đây sẽ không yêu cầu nhiều hơn 2 đến 5 megabyte.

    Lưu ý: Không có vấn đề gì khi đặt ESP của bạn trên đĩa và thu nhỏ phân vùng Ubuntu của bạn thêm vài megabyte từ cuối nên nhanh chóng và an toàn. Thu nhỏ lúc ban đầu không an toàn . Mặc dù vậy, một thông báo trước, ESP của bạn phải là phân vùng chính và không phải là một phần của phân vùng mở rộng hoặc khối lượng logic, số phân vùng từ 1 đến 4 là ổn, các số ở trên biểu thị phân vùng mở rộng trên các bảng phân vùng MBR.

    Chọn FAT32 làm hệ thống tập tin và đặt cờ khởi động.

  3. Gắn kết ESP bạn vừa tạo và hệ thống tập tin gốc bạn đã thu nhỏ:

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Lưu ý: Thay thế $esp_device$root_devicebằng các thiết bị thích hợp, ví dụ /dev/sdb2/dev/sdb1. Các điểm gắn kết /mnt/esp/mnt/rootfschỉ là các ví dụ được chọn để làm việc với phần còn lại của câu trả lời này.

    Cài đặt hình ảnh EFI của GRUB và tệp cấu hình tối thiểu với:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Lưu ý rằng đó $devicelà toàn bộ thiết bị /dev/sdb, ví dụ , không phải là một phân vùng.

  4. Thế là xong, chúng ta đã xong, nhưng hãy để tôi cố gắng giải thích một vài điều.

    Tham số --target x86_64-efisẽ đảm bảo rằng các hình ảnh và mô-đun UEFI sẽ được cài đặt vào các đường dẫn cụ thể. --removablesẽ cài đặt hình ảnh UEFI vào đường dẫn được mã hóa cứng \EFI\BOOT\BOOT{arch}.EFIcho phương tiện lưu động, thay vì đường dẫn cụ thể phân phối. Của bạn grub.cfgtrong /boot/grub/nên làm việc với cả hai phương pháp khởi động và một thư mục mới có tên x86_64-efibây giờ sẽ tồn tại bên cạnh i386-pc.

    Để đầy đủ, đây là lệnh cho phương tiện không thể tháo rời, ghi và dựa vào các mục NVRAM trong nền tảng:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    Cài đặt UEFI đúng bao gồm một dòng tương tự như dòng bên dưới /etc/fstab, nhưng thiết lập có chức năng mà không có hình ảnh UEFI (tương tự bộ tải khởi động MBR) thường chỉ được ghi / cập nhật trong quá trình cài đặt HĐH.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

Thêm một ESP hoặc GRUB-BBP vào bản cài đặt với GPT

Thêm một ESP vào cài đặt cũ trên ổ đĩa được phân vùng GPT rất giống với cách trên:

  1. Cài đặt grub-efi-amd64-bingói.
  2. Tạo một phân vùng với hệ thống tệp FAT32 tương tự như các hướng dẫn ở trên bằng cách thay đổi kích thước phân vùng gốc và đặt bootcờ.
  3. Gắn kết các phân vùng và chạy grub-installlệnh từ phía trên bao gồm --removabletham số.

Điều này cũng hoạt động nếu bạn chỉ muốn khởi động cài đặt UEFI exisitng của mình trên một máy tính khác.

Tạo phân vùng khởi động BIOS (BBP) cho GRUB hơi khác một chút:

  1. Cài đặt grub-pc-bingói.

  2. Tạo một phân vùng tương tự như các hướng dẫn ở trên bằng cách thay đổi kích thước phân vùng gốc và đặt bios_grubcờ. Chọn không có hệ thống tập tin và để nó không được định dạng.

  3. Chỉnh sửa tập tin cấu hình /etc/default/grubvới quyền quản trị và thêm GRUB_DEVICE=/dev/sdb6vào cuối. Thay thế /dev/sdb6bằng tên thiết bị thực tế của BBP của bạn. Bạn có thể sử dụng nano trình soạn thảo dòng lệnh để đơn giản hóa mọi thứ.

    Cài đặt hình ảnh GRUB MBR cho BBP với:

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    Bạn có thể muốn xóa hoặc nhận xét dòng trong /etc/default/grubvà thêm nó vào cài đặt thực tế.

Phần thưởng: Thêm phân vùng cho máy Mac khi cài đặt bằng GPT

Tôi thấy rằng Mac rất mới (Mac Mini A1347 EMC 2840) mà tôi đã thử nghiệm có thể khởi động từ một tiêu chuẩn FAT32 ESP, thậm chí từ MBR! Dù sao, ở đây chúng tôi đi:

  1. Cài đặt grub-efi-amd64-bin, hfsprogs, mactel-bootmactel-boot-logo(không bắt buộc) gói. Bạn cần kích hoạt kho Vũ trụ ( Làm cách nào để kích hoạt kho "Vũ trụ" từ dòng lệnh? ) Và thêm PPA hỗ trợ Mactel hiện tại (xem nhóm Cộng đồng hỗ trợ Mactel để biết thêm chi tiết) để cài đặt tất cả chúng.

  2. Tạo một phân vùng với hệ thống tệp HFS + tương tự như các hướng dẫn ở trên bằng cách thay đổi kích thước phân vùng gốc. Lần này chúng ta cần thêm một vài megabyte, vì vậy hãy tăng gấp đôi kích thước của ESP nếu bạn chỉ có 5 megabyte hoặc ít hơn trước đó. Không có cờ là bắt buộc.

  3. Gắn kết các phân vùng:

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Lưu ý: Tôi đã chọn $esp-mac_device/mnt/esp-macđể tránh xung đột.

    Chạy grub-installlệnh bao gồm --removabletham số:

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Cuối cùng, thiết lập phân vùng theo cách mà Mac mong đợi:

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Để khởi động Ubuntu từ phương tiện bên ngoài trên máy Mac, bạn chỉ cần nhấn phím tùy chọn hoặc Alttrên bàn phím Windows và chọn đúng đĩa.

    Trình quản lý khởi động Mac hiển thị khối lượng và logo Ubuntu

Về cờ phân vùng, nhập mã và GUID

Để chính xác nhất có thể, cờ khởi động không quan trọng đối với GRUB, theo mặc định GRUB tìm kiếm UUID để tìm hệ thống tệp phù hợp để khởi động. Đặt cờ khởi động hoặc cờ bios_grub trong GParted thường đặt loại (MBR) hoặc GUID (GPT) cho phân vùng.

Lợi ích của việc đặt đúng loại hoặc GUID, bên cạnh việc có một thiết lập hoạt động đúng, là các phân vùng này sẽ được ẩn trong trình quản lý tệp. Cách dễ nhất để kiểm tra và thay đổi các loại và GUID là thông qua Disks ( gnome-disks).

ảnh chụp màn hình hiển thị các ổ đĩa và phân vùng trong đĩa gnome

ảnh chụp màn hình hiển thị hộp thoại chỉnh sửa phân vùng trong đĩa gnome

Ngoài ra, bạn có thể sử dụng parted hoặc gdisk:

  • 0xef là mã loại cho ESP trong MBR để sử dụng với fdisk
  • ef00 là mã loại viết tắt cho ESP trong GPT để sử dụng với gdisk
  • ef02 là mã loại viết tắt cho BBP trong GPT để sử dụng với gdisk

Wikipedia có một danh sách lớn các GUID cho GPT .

Tương đương dòng lệnh partedtheo hướng dẫnparted $device set partition esp onparted $device set partition bios_grub on.


Tôi không tài liệu chi tiết. Nhưng đã có thể phân vùng ổ đĩa flash của tôi thành gpt, tạo phân vùng efi và sao chép các tệp khởi động efi vào phân vùng efi. Grub-mkimage tạo ra một grubx64.efi mong đợi một số đường dẫn nhất định cho các tệp, vì vậy tôi chỉ sao chép cấu trúc tệp từ cài đặt của mình vào một / boot / grub và thêm một grub.cfg với một mục cấu hình vào một grub.cfg khác trong / iso của tôi thư mục để loopmount khởi động ISO của tôi. Có lẽ đúng hơn để tạo grubx64.efi của riêng bạn với hình ảnh tạo, nhưng bản sao đã hoạt động.
oldfred

Tôi đã tìm kiếm cao và thấp để cố gắng tìm ra cách thực hiện phần "Thêm một ESP vào bản cài đặt hiện có với MBR". Tôi đã lo lắng về nó, nhưng nó đã làm việc ngay lần thử đầu tiên! Câu trả lời chính xác!
Đánh dấu E. Haase

Tôi đang cố gắng thêm khả năng khởi động EFI vào bản cài đặt Ubuntu / MRR đầy đủ trên USB bằng cách sử dụng Thêm một ESP vào bản cài đặt hiện có với phần MBR của câu trả lời. Tôi nhận được "Lỗi: /boot/Không tìm thấy tệp ". Các grub.cfgtại các điểm phân vùng ESP đến UUID đúng. Có ý kiến ​​gì không? Tôi sẽ rất vui khi gửi một câu hỏi mới.
user68186

@ user68186 bạn đã có thể làm điều đó?
BRmus27

Tôi đã có thể cài đặt Ubuntu trong ổ đĩa ngoài của mình từ máy Mac. Khi được kết nối với máy Mac, nó sẽ khởi động chính xác vào Ubuntu. Tuy nhiên, khi được kết nối với máy Windows10 (xps 15 9560) trong thiết bị khởi động, ổ cứng ngoài không xuất hiện. Linh cảm của tôi là do UEFI. Ai đó có thể xác nhận nếu linh cảm của tôi là đúng và cũng nếu chủ đề này là những gì tôi có thể cần để có thể khởi động từ một máy Windows?
BRmus27
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.