Bật hỗ trợ UEFI trong KVM Virtualization

theanh

Administrator
Nhân viên
Có hai loại chương trình cơ sở trên bo mạch chủ máy tính:
  1. BIOS hay Hệ thống đầu vào đầu ra cơ bản
  2. UEFI hay Giao diện chương trình cơ sở mở rộng hợp nhất

BIOS là gì?​

BIOS sẽ được tải khi máy tính khởi động để khởi tạo và kiểm tra chức năng phần cứng. Người ta sử dụng POST hoặc Power On Self Test để đảm bảo cấu hình phần cứng hợp lệ và hoạt động bình thường, sau đó tìm MBR (Master Boot Records) đã lưu trữ thiết bị khởi động và sử dụng nó để khởi chạy bộ nạp khởi động, sau đó là hạt nhân và sau đó là Hệ điều hành.

Tất cả các quy trình khởi động này trên BIOS đều được gọi là 'Legacy Boot', dưới đây là giải thích đơn giản về quy trình khởi động trên BIOS.
Mã:
BIOS > MBR > Bootloader > Kernel > Hệ điều hành
BIOS được coi là phần mềm cũ và lỗi thời, mặc dù sẽ luôn có người sử dụng nó. BIOS có chức năng hạn chế đối với máy tính ngày nay và PC hiện đại, nó phải chạy trên bộ xử lý 16 bit với chỉ 1 MB dung lượng để thực thi. Ngoài ra, nó sẽ khởi tạo nhiều phần cứng cùng một lúc, làm cho quá trình khởi động chậm hơn.

Phần mềm thay thế cho BIOS là UEFI, có sẵn trên bo mạch chủ hiện đại.

UEFI là gì?​

UEFI hay Giao diện phần mềm mở rộng hợp nhất được coi là phần mềm thay thế cho BIOS. Nó đi kèm với nhiều tính năng và chức năng hơn bị hạn chế trên BIOS và có sẵn trên bo mạch chủ ngày nay và PC hiện đại.

Mặc dù được coi là sự thay thế cho BIOS, nhưng UEFI hoạt động khác và có khái niệm ngược lại với BIOS. UEFI lưu trữ tất cả thông tin về khởi tạo và khởi động trên tệp .efi, được lưu trữ trên phân vùng ESP (Phân vùng hệ thống EFI). và ESP cũng sẽ lưu trữ các chương trình khởi động cho hệ điều hành được cài đặt trên máy tính.

UEFI sử dụng GPT để lưu trữ tất cả thông tin về phân vùng, thay vì MBR. Và bên dưới là lời giải thích đơn giản về cách hệ điều hành khởi động trên UEFI.
Mã:
UEFI [B]>[/b] GPT/ESP [B]>[/b] Kernel [B]>[/b] Hệ điều hành
Dưới đây là một số tính năng đáng chú ý của UEFI không có trên BIOS truyền thống:
  • Khởi động nhanh hơn
  • Xử lý hơn 2TB hoặc ổ đĩa (Đây là vấn đề lớn đối với môi trường hiện nay)
  • Hỗ trợ hơn 4 phân vùng với bảng phân vùng GUID
  • Hỗ trợ khởi động an toàn
  • Hỗ trợ các thiết bị chương trình cơ sở hiện đại 64 bit
  • Có giao diện người dùng đồ họa đơn giản
  • v.v.

Chương trình cơ sở trên ảo hóa KVM​

Theo mặc định, ảo hóa KVM sử dụng BIOS làm chương trình cơ sở mặc định cho các máy ảo khách. Để bật hỗ trợ UEFI trên KVM, bạn phải cài đặt gói OVMF (Phần mềm máy ảo mở) trên hệ thống máy chủ của mình.

Dự án OVMF là một phần của phần mềm máy chủ tianocore của Intel cho máy ảo qemu.

Điều kiện tiên quyết​

Đối với hướng dẫn này, bạn sẽ tìm hiểu cách bật hỗ trợ UEFI trên máy ảo KVM. Bạn sẽ cài đặt gói OVMF trên máy chủ và thiết lập máy ảo bằng phần mềm máy chủ UEFI.

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt ảo hóa KVM trên máy chủ.

Dưới đây là hướng dẫn cài đặt ảo hóa KVM trên Arch Linux.

Cài đặt gói OVMF​

Đầu tiên, bạn phải đăng nhập vào máy chủ lưu trữ KVM và cài đặt các gói. Theo mặc định, các gói ovmf có sẵn trên hầu hết các kho lưu trữ phân phối Linux như Debian, Ubuntu, CentOS, v.v.

1. Cài đặt ovmf trên các hệ thống dựa trên Debian bằng lệnh apt như bên dưới.
Mã:
sudo apt install ovmf
2. Và đối với các hệ thống dựa trên RHEL như CentOS/Fedora, bạn cần cài đặt gói 'edk2-ovmf' bằng lệnh DNF/Yum như bên dưới.
Mã:
sudo dnf install edk2-ovmf

hoặc

sudo yum install edk2-ovmf
3. Đối với các hệ thống dựa trên Arch Linux như Manjaro, bạn có thể sử dụng lệnh pacman bên dưới.
Mã:
sudo pacman -S edk2-ovmf
Và hỗ trợ UEFI trên ảo hóa KVM được bật. Bây giờ chúng ta hãy tạo máy ảo mới.

Bật UEFI trên Máy ảo​

Có nhiều cách để tạo máy ảo trên ảo hóa KVM. Bạn có thể sử dụng chế độ dòng lệnh (sử dụng lệnh virt-install) hoặc sử dụng ứng dụng đồ họa như "trình quản lý máy ảo".

Tạo Máy ảo bằng virt-install​

1. Để tạo máy ảo với chương trình cơ sở UEFI bằng dòng lệnh 'virt-install', hãy thêm tùy chọn '--boot uefi' vào tùy chọn lệnh.

Dưới đây là ví dụ sử dụng lệnh virt-install để tạo máy ảo mới 'Artix' với chương trình cơ sở UEFI.
Mã:
sudo virt-install --name=Artix \
--os-type=Linux \
--os-variant=archlinux \
--vcpu=2 \
--ram=1024 \
--disk path=/var/lib/libvirt/images/Artix.img,size=15 \
--graphics spice \
--cdrom=/home/user/Desktop/artix-base-openrc-20210726-x86_64.iso \
--network network=default \
--boot uefi
Bây giờ bạn sẽ khởi động vào máy ảo của mình.

Và nếu bạn nhập vào cài đặt UEFI, bên dưới là một số ảnh chụp màn hình bạn sẽ nhận được.

Dưới đây là ảnh chụp màn hình của UEFI Interactive Shell trên máy ảo KVM.



Và bên dưới là ảnh chụp màn hình của Cài đặt OVMF trên máy ảo UEFI KVM


Tạo máy ảo bằng Trình quản lý máy ảo​

Ứng dụng trình quản lý máy ảo cung cấp giao diện đồ họa để quản lý ảo hóa KVM.

Nếu bạn mới làm quen với ảo hóa KVM, bạn nên sử dụng virt-manager (virtual machine manager) để thiết lập môi trường ảo hóa của bạn.

Để tạo máy ảo có hỗ trợ chương trình cơ sở UEFI bằng ứng dụng virt-manager, bạn phải cấu hình chương trình này trong quá trình tạo máy ảo.

1. Ở cửa sổ cuối cùng khi tạo máy ảo bằng virt-manager, bạn sẽ thấy cửa sổ xác nhận như bên dưới.



Bạn phải chọn tùy chọn 'Tùy chỉnh cấu hình trước khi cài đặt', sau đó nhấp vào nút 'Hoàn tất'.

2. Trên cửa sổ mới, nhấp vào menu 'Tổng quan' và di chuyển đến phần 'Chi tiết về trình quản lý ảo'.

Trên tùy chọn Phần mềm cơ sở, chọn 'UEFI x86_64: ...', sau đó nhấp vào nút 'Áp dụng'.



Bây giờ hãy nhấp vào nút 'Bắt đầu cài đặt' để bắt đầu cài đặt máy ảo.

3. Trong quá trình khởi động máy ảo, bạn sẽ thấy TianoCore boot splash như bên dưới.



4. Sau đó, bạn sẽ thấy hệ điều hành của mình như bên dưới.



Bây giờ bạn đã tạo thành công máy ảo trên máy ảo KVM và máy ảo hiện đang sử dụng phần mềm cơ sở UEFI thay vì BIOS mặc định.

Kết luận​

Xin chúc mừng! Bạn đã học cách bật hỗ trợ UEFI trên ảo hóa KVM. Ngoài ra, bạn đã học cách thiết lập máy ảo bằng cả ứng dụng đồ họa virt-install và virt-manager và bật chương trình cơ sở UEFI trên máy ảo.
 
Back
Bên trên