Có vẻ như việc cài đặt Ubuntu vào ổ cứng ngoài không thể thực hiện được với UEFI, trong đó với MBR không có sự khác biệt lớn giữa bên ngoài và bên trong. Điều đó đúng hay vẫn còn khả thi?
Thậm chí có thể kết hợp cả hai phương pháp khởi động?
Có vẻ như việc cài đặt Ubuntu vào ổ cứng ngoài không thể thực hiện được với UEFI, trong đó với MBR không có sự khác biệt lớn giữa bên ngoài và bên trong. Điều đó đúng hay vẫn còn khả thi?
Thậm chí có thể kết hợp cả hai phương pháp khởi động?
Câu trả lời:
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!
Nền tảng: PC kế thừa, máy tính Windows dựa trên UEFI, máy tính Apple
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.
Cài đặt grub-efi-amd64-bin
gó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ứ.
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.
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
và$root_device
bằng các thiết bị thích hợp, ví dụ/dev/sdb2
và/dev/sdb1
. Các điểm gắn kết/mnt/esp
và/mnt/rootfs
chỉ 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 đó
$device
là toàn bộ thiết bị/dev/sdb
, ví dụ , không phải là một phân vùng.
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-efi
sẽ đả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ể. --removable
sẽ cài đặt hình ảnh UEFI vào đường dẫn được mã hóa cứng \EFI\BOOT\BOOT{arch}.EFI
cho phương tiện lưu động, thay vì đường dẫn cụ thể phân phối. Của bạn grub.cfg
trong /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-efi
bâ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 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:
grub-efi-amd64-bin
gói.boot
cờ.grub-install
lệnh từ phía trên bao gồm --removable
tham 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:
Cài đặt grub-pc-bin
gói.
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_grub
cờ. Chọn không có hệ thống tập tin và để nó không được định dạng.
Chỉnh sửa tập tin cấu hình /etc/default/grub
với quyền quản trị và thêm GRUB_DEVICE=/dev/sdb6
vào cuối. Thay thế /dev/sdb6
bằ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/grub
và thêm nó vào cài đặt thực tế.
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:
Cài đặt grub-efi-amd64-bin
, hfsprogs
, mactel-boot
và mactel-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.
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.
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
và/mnt/esp-mac
để tránh xung đột.
Chạy grub-install
lệnh bao gồm --removable
tham 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.
Để 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
).
Ngoài ra, bạn có thể sử dụng parted hoặc gdisk:
Wikipedia có một danh sách lớn các GUID cho GPT .
Tương đương dòng lệnh parted
theo hướng dẫn là parted $device set partition esp on
và parted $device set partition bios_grub on
.
/boot/
Không tìm thấy tệp ". Các grub.cfg
tạ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.