Khi cài Fedora, bạn sẽ thấy trình cài đặt tạo một phân vùng /boot riêng và gắn một EFI System Partition (ESP) vào thư mục /boot/efi. Nếu đã từng dùng Ubuntu hoặc bản phân phối Linux khác, bố cục này có thể trông khác lạ. Bạn có bao giờ thắc mắc tại sao Fedora tạo cả /boot và /boot/efi?
Câu trả lời là hai vị trí này phục vụ những mục đích khác nhau trong quá trình khởi động. Quá trình khởi động là chuỗi các bước khởi chạy máy tính và nạp hệ điều hành. Dù phối hợp với nhau, /boot và /boot/efi lưu trữ các loại tệp khác nhau.
Bố cục này không phải là duy nhất của Fedora. Nó là một trong nhiều cách hợp lệ để tổ chức các tệp cần thiết cho việc khởi động một hệ thống Linux. Các bản phân phối Linux khác nhau đưa ra những lựa chọn thiết kế khác nhau dựa trên hệ thống tệp mặc định, bộ nạp khởi động và bố cục cài đặt của chúng.
Trong hướng dẫn này, bạn sẽ tìm hiểu EFI System Partition là gì, /boot và /boot/efi được dùng để làm gì, tại sao Fedora tạo cả hai theo mặc định, và khi nào thực sự cần một phân vùng /boot riêng.
Tổng quan nhanh về quá trình khởi động Linux
Khi bạn nhấn nút nguồn, máy tính không khởi động Linux ngay lập tức. Nó thực hiện một loạt các bước gọi là quá trình khởi động. Mỗi bước chuẩn bị cho bước tiếp theo cho đến khi hệ điều hành sẵn sàng hoạt động.
Trên một máy tính hiện đại sử dụng Unified Extensible Firmware Interface (UEFI), quy trình thường diễn ra như sau:
Power On
↓
UEFI firmware
↓
EFI System Partition (ESP)
↓
Bootloader
↓
Linux kernel
↓
initramfs
↓
Root filesystem
↓
systemd
↓
Login screen or text console
Với những ai chưa biết, UEFI firmware là phần mềm được lưu trên bo mạch chủ của máy tính. Nó khởi tạo phần cứng và nạp một bộ nạp khởi động từ EFI System Partition (ESP). Bộ nạp khởi động là chương trình nạp Linux kernel và initramfs vào bộ nhớ.
Linux kernel là nhân của hệ điều hành. Nó quản lý phần cứng và sử dụng initramfs, một hệ thống tệp gốc tạm thời, để chuẩn bị hệ thống trước khi gắn hệ thống tệp gốc thật.
Khi hệ thống tệp gốc thật có sẵn, nhân khởi động systemd, trình quản lý hệ thống và dịch vụ mặc định trong Fedora. Systemd sau đó khởi động các dịch vụ cần thiết và đưa hệ thống đến mục tiêu đã cấu hình, chẳng hạn như màn hình đăng nhập đồ họa hoặc bảng điều khiển văn bản.
Đối với bài viết này, bạn chỉ cần nhớ hai điều. EFI System Partition (ESP) lưu trữ các tệp mà UEFI firmware sử dụng để khởi động bộ nạp khởi động. Thư mục /boot lưu trữ Linux kernel và các tệp khác cần thiết trong quá trình khởi động. Chúng tôi sẽ giải thích chi tiết từng cái trong các phần tiếp theo.
EFI System Partition (ESP) là gì?
EFI System Partition (ESP) là một phân vùng đĩa đặc biệt được sử dụng bởi các máy tính khởi động ở chế độ Unified Extensible Firmware Interface (UEFI). Nó lưu trữ các tệp mà UEFI firmware cần để khởi động một hệ điều hành. Hầu hết các hệ điều hành hỗ trợ UEFI, bao gồm Linux và Windows, đều sử dụng ESP.
ESP sử dụng hệ thống tệp FAT32 trên hầu hết các máy tính hiện đại. UEFI firmware được thiết kế để đọc các phân vùng định dạng FAT-formatted trước khi hệ điều hành khởi động. Điều này cho phép firmware tìm và khởi chạy bộ nạp khởi động mà không cần dựa vào Linux, Windows hay bất kỳ hệ điều hành nào khác.
Trên Linux, ESP thường được gắn tại /boot/efi. Một điểm gắn kết là một thư mục nơi một hệ thống tệp có thể truy cập được sau khi được gắn. Một số bản phân phối Linux và cấu hình hệ thống sử dụng một điểm gắn kết khác, chẳng hạn như /efi. Điểm gắn kết chính xác là một lựa chọn cấu hình. Điều quan trọng là hệ điều hành và bộ nạp khởi động được cấu hình để sử dụng cùng một vị trí.
Một ESP điển hình chứa một thư mục cho mỗi hệ điều hành hoặc bộ nạp khởi động được cài đặt trên máy tính. Ví dụ:
EFI/
├── BOOT/
├── fedora/
├── Microsoft/
└── ubuntu/
Bố cục này cho phép nhiều hệ điều hành chia sẻ cùng một ESP. Mỗi hệ điều hành lưu trữ các tệp khởi động riêng của nó trong một thư mục riêng biệt.
Phần tiếp theo giải thích Fedora lưu trữ những gì trong /boot và tại sao các tệp đó được giữ riêng biệt khỏi ESP.
/boot là gì?
Thư mục /boot lưu trữ các tệp cần thiết để khởi động Linux. Các tệp này được sử dụng bởi bộ nạp khởi động, là chương trình nạp hệ điều hành vào bộ nhớ.
Một thư mục /boot điển hình chứa:
- Linux kernel, là nhân của hệ điều hành.
- initramfs, là hệ thống tệp gốc tạm thời được sử dụng trong quá trình khởi động sớm.
- Cấu hình GRUB trên Fedora, cho bộ nạp khởi động biết cách khởi động các hệ điều hành đã cài đặt.
- Các tệp liên quan đến khởi động khác, chẳng hạn như cấu hình nhân và tệp
System.map.
Ví dụ:
$ sudo tree /boot
/boot
├── config-6.17.1-300.fc43.x86_64
├── efi
│ ├── EFI
│ │ ├── BOOT
│ │ │ ├── BOOTIA32.EFI
│ │ │ ├── BOOTX64.EFI
│ │ │ ├── fbia32.efi
│ │ │ └── fbx64.efi
│ │ └── fedora
│ │ ├── BOOTIA32.CSV
│ │ ├── BOOTX64.CSV
│ │ ├── gcdia32.efi
│ │ ├── gcdx64.efi
│ │ ├── grub.cfg
│ │ ├── grubia32.efi
│ │ ├── grubx64.efi
│ │ ├── mmia32.efi
│ │ ├── mmx64.efi
│ │ ├── shim.efi
│ │ ├── shimia32.efi
│ │ └── shimx64.efi
│ ├── mach_kernel
│ └── System
│ └── Library
│ └── CoreServices
│ └── SystemVersion.plist
├── grub2
│ ├── earlyboot.cfg
│ ├── fonts
│ │ └── unicode.pf2
│ ├── grub.cfg
│ └── grubenv
├── initramfs-0-rescue-9c1aaf08fa134981ae13a25cb03c7af8.img
├── initramfs-6.17.1-300.fc43.x86_64.img
├── loader
│ └── entries
│ ├── 9c1aaf08fa134981ae13a25cb03c7af8-0-rescue.conf
│ └── 9c1aaf08fa134981ae13a25cb03c7af8-6.17.1-300.fc43.x86_64.conf
├── lost+found
├── symvers-6.17.1-300.fc43.x86_64.xz -> /lib/modules/6.17.1-300.fc43.x86_64/symvers.xz
├── System.map-6.17.1-300.fc43.x86_64
├── vmlinuz-0-rescue-9c1aaf08fa134981ae13a25cb03c7af8
└── vmlinuz-6.17.1-300.fc43.x86_64
13 directories, 31 files
Bạn có thể nhận thấy thư mục efi xuất hiện bên trong /boot. Đó là vì /boot/efi là một điểm gắn kết. Các tệp hiển thị dưới efi được lưu trữ trên EFI System Partition, không phải trên hệ thống tệp /boot thực tế.
Khi bạn khởi động máy tính, bộ nạp khởi động đọc Linux kernel và initramfs từ /boot và nạp chúng vào bộ nhớ. Sau đó, nó chuyển quyền điều khiển cho Linux kernel, tiếp tục quá trình khởi động.
Trên Fedora, /boot được lưu trữ trên một phân vùng ext4 riêng theo mặc định, trong khi hệ thống tệp gốc sử dụng Btrfs. Bố cục này cung cấp một cấu hình khởi động nhất quán trên nhiều thiết lập lưu trữ khác nhau.
findmnt /boot
Đầu ra mẫu từ hệ thống Fedora của tôi:
TARGET SOURCE FSTYPE
/boot /dev/sda2 ext4
Điều này xác nhận rằng /boot được gắn từ hệ thống tệp riêng của nó thay vì chỉ là một thư mục khác bên trong hệ thống tệp gốc.
Không phải mọi bản phân phối Linux đều tạo một phân vùng /boot riêng. Ubuntu, ví dụ, thường lưu trữ thư mục /boot bên trong hệ thống tệp gốc. Cả hai bố cục đều hợp lệ. Sự khác biệt là một lựa chọn thiết kế, không phải yêu cầu của Linux hay UEFI.
/boot/efi là gì?
Thư mục /boot/efi là điểm gắn kết cho EFI System Partition (ESP). Nó không phải là một phân vùng riêng. Thay vào đó, nó là thư mục nơi Linux làm cho ESP có thể truy cập được sau khi gắn nó.
Không giống như /boot, nơi lưu trữ Linux kernel và các tệp khởi động khác, /boot/efi cung cấp quyền truy cập vào các tệp được lưu trữ trên ESP. Các tệp này được UEFI firmware sử dụng trong giai đoạn đầu tiên của quá trình khởi động.
Một thư mục /boot/efi điển hình trông như thế này:
/boot/efi/
├── EFI
│ ├── BOOT
│ │ ├── BOOTIA32.EFI
│ │ ├── BOOTX64.EFI
│ │ ├── fbia32.efi
│ │ └── fbx64.efi
│ └── fedora
│ ├── BOOTIA32.CSV
│ ├── BOOTX64.CSV
│ ├── gcdia32.efi
│ ├── gcdx64.efi
│ ├── grub.cfg
│ ├── grubia32.efi
│ ├── grubx64.efi
│ ├── mmia32.efi
│ ├── mmx64.efi
│ ├── shim.efi
│ ├── shimia32.efi
│ └── shimx64.efi
├── mach_kernel
└── System
└── Library
└── CoreServices
└── SystemVersion.plist
7 directories, 18 files
Mỗi hệ điều hành lưu trữ các tệp khởi động riêng của nó trong một thư mục riêng biệt. Điều này cho phép nhiều hệ điều hành chia sẻ cùng một EFI System Partition mà không can thiệp lẫn nhau.
ESP thường chứa các chương trình EFI, chẳng hạn như bộ nạp khởi động, cùng với các tệp khác cần thiết cho việc khởi động UEFI. Linux kernel và initramfs thường được lưu trữ trong /boot, không phải trên ESP.
Bạn có thể xác minh rằng EFI System Partition được gắn riêng:
sudo findmnt /boot/efi
Đầu ra mẫu:
TARGET SOURCE FSTYPE OPTIONS
/boot/efi /dev/sda1 vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro
Điều này xác nhận rằng /boot/efi là một hệ thống tệp FAT32 riêng được gắn từ phân vùng của chính nó.
Mặc dù /boot/efi là điểm gắn kết phổ biến nhất trên Linux, nhưng nó không phải là duy nhất. Một số bản phân phối Linux và cấu hình hệ thống gắn EFI System Partition tại /efi thay vào đó. Điểm gắn kết là một lựa chọn cấu hình. Điều quan trọng là hệ điều hành và bộ nạp khởi động được cấu hình để sử dụng cùng một vị trí.
Bây giờ bạn đã biết mục đích của /boot và /boot/efi, phần tiếp theo giải thích tại sao Fedora sử dụng cả hai theo mặc định.
Tại sao Fedora tạo cả /boot và /boot/efi?
Fedora tạo cả /boot và /boot/efi vì chúng phục vụ các mục đích khác nhau trong quá trình khởi động.
Bạn có thể xem bố cục phân vùng mặc định của Fedora với:
sudo lsblk -f
Đầu ra mẫu:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat FAT32 F822-70EF 579.5M 3% /boot/efi
├─sda2 ext4 1.0 a1dd3397-1af4-44c8-bc6c-6f18001eafb3 1.4G 18% /boot
└─sda3 btrfs fedora 509e9c4f-9de2-44ca-80dc-1c30d21c5905 25.5G 13% /home
/
sr0
zram0 swap 1 zram0 164d2127-d45d-456a-bc23-a1b7b6bae6d9 [SWAP]
EFI System Partition (ESP), được gắn tại /boot/efi, lưu trữ các chương trình EFI được UEFI firmware sử dụng để bắt đầu quá trình khởi động. Phân vùng /boot lưu trữ Linux kernel, initramfs và các tệp khác mà bộ nạp khởi động sử dụng để khởi động Linux.
Trên một bản cài đặt Fedora mặc định, /boot là một phân vùng ext4 riêng, trong khi hệ thống tệp gốc sử dụng Btrfs. Bố cục này cung cấp một cấu hình khởi động nhất quán và đã được kiểm tra kỹ lưỡng trên nhiều thiết lập lưu trữ khác nhau. Nó cũng hoạt động tốt với các tùy chọn mã hóa đĩa mặc định của Fedora vì các tệp khởi động vẫn nằm bên ngoài hệ thống tệp gốc được mã hóa.
Ubuntu sử dụng một bố cục mặc định khác. Trên một bản cài đặt Ubuntu điển hình, thư mục /boot là một phần của hệ thống tệp gốc thay vì là một phân vùng riêng. Cả Fedora và Ubuntu đều tuân theo tiêu chuẩn UEFI. Chúng chỉ đơn giản là tổ chức các tệp khởi động của chúng một cách khác nhau.
Bạn cũng có thể bắt gặp Unified Kernel Images (UKIs). Một UKI kết hợp Linux kernel, initramfs và thông tin khởi động liên quan thành một tệp thực thi EFI duy nhất. Một UKI có thể được lưu trữ trực tiếp trên EFI System Partition, giảm số lượng tệp liên quan trong quá trình khởi động. Fedora đang dần áp dụng UKI, nhưng một phân vùng /boot riêng vẫn là bố cục mặc định tại thời điểm viết hướng dẫn này.
Đặc tả UEFI không yêu cầu một phân vùng /boot riêng. Các bản phân phối Linux được tự do chọn bố cục phân vùng phù hợp nhất với mục tiêu thiết kế và cấu hình lưu trữ mặc định của chúng.
Bạn có cần một phân vùng /boot riêng không?
Trong nhiều trường hợp, không. Một phân vùng /boot riêng không bắt buộc để cài đặt hoặc chạy Linux. Nhiều bản phân phối Linux, bao gồm Ubuntu, lưu trữ thư mục /boot bên trong hệ thống tệp gốc theo mặc định.
Để xác minh rằng Ubuntu lưu trữ /boot bên trong /, chạy:
sudo findmnt /
Bạn sẽ thấy đầu ra như bên dưới:
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime
Bây giờ chạy:
sudo findmnt /boot
Trên một bản cài đặt Ubuntu mặc định không có phân vùng /boot riêng, lệnh trên tạo ra không có đầu ra. Điều đó có nghĩa là /boot không phải là một điểm gắn kết riêng.
Bạn cũng có thể xác minh bằng lệnh này:
sudo lsblk -f
Bạn sẽ không thấy bất kỳ mục nào cho phân vùng boot trong đầu ra.
Fedora có cách tiếp cận khác. Bản cài đặt mặc định của nó tạo một phân vùng /boot riêng vì nó phù hợp với bố cục phân vùng được khuyến nghị của Fedora.
Đối với hầu hết người dùng, bố cục phân vùng mặc định do trình cài đặt chọn là lựa chọn tốt nhất.
Một số cấu hình lưu trữ, chẳng hạn như mã hóa đĩa, RAID hoặc Logical Volume Manager (LVM), cũng có thể sử dụng một phân vùng /boot riêng. Việc có cần nó hay không phụ thuộc vào bản phân phối Linux, bộ nạp khởi động và cấu hình lưu trữ.
Nếu bạn quyết định phân vùng đĩa thủ công, hãy làm theo các khuyến nghị do bản phân phối Linux của bạn cung cấp. Fedora, Ubuntu và các bản phân phối khác có thể khuyến nghị các bố cục khác nhau dựa trên hệ thống tệp mặc định, bộ nạp khởi động và trình cài đặt của chúng.
Điểm quan trọng nhất là: một phân vùng /boot riêng không bắt buộc bởi Linux hoặc đặc tả UEFI. Đó là một lựa chọn thiết kế phụ thuộc vào mục tiêu của bản phân phối Linux và cấu hình lưu trữ.
Những quan niệm sai lầm phổ biến
Quan niệm sai lầm 1: /boot và /boot/efi là giống nhau.
Chúng khác nhau.
Thư mục /boot lưu trữ Linux kernel, initramfs và các tệp khác cần thiết trong quá trình khởi động Linux.
Thư mục /boot/efi là điểm gắn kết cho EFI System Partition (ESP), nơi lưu trữ các chương trình EFI được sử dụng trong giai đoạn đầu tiên của quá trình khởi động.
Quan niệm sai lầm 2: Mọi bản phân phối Linux đều tạo một phân vùng /boot riêng.
Không đúng. Fedora tạo một phân vùng /boot riêng theo mặc định. Ubuntu thường lưu trữ thư mục /boot bên trong hệ thống tệp gốc. Cả hai bố cục đều hợp lệ.
Quan niệm sai lầm 3: Mỗi hệ điều hành cần EFI System Partition riêng.
Không đúng. Một EFI System Partition duy nhất có thể được chia sẻ bởi nhiều hệ điều hành. Mỗi hệ điều hành thường lưu trữ các tệp EFI riêng của nó trong một thư mục riêng biệt dưới thư mục EFI.
Quan niệm sai lầm 4: UEFI yêu cầu một phân vùng /boot riêng.
Không đúng. Đặc tả UEFI yêu cầu một EFI System Partition (ESP), nhưng nó không yêu cầu một phân vùng /boot riêng.
Việc /boot là một phân vùng riêng hay một phần của hệ thống tệp gốc là một lựa chọn thiết kế do bản phân phối Linux hoặc quản trị viên hệ thống thực hiện.
Câu hỏi thường gặp (FAQ)
H: Tôi có thể xóa phân vùng /boot không?
A: Không. Nếu hệ thống của bạn sử dụng một phân vùng /boot riêng, nó chứa các tệp cần thiết để khởi động Linux. Việc xóa hoặc định dạng nó thường sẽ ngăn hệ thống khởi động cho đến khi các tệp khởi động cần thiết được khôi phục.
H: Tôi có thể xóa EFI System Partition không?
A: Không. EFI System Partition (ESP) lưu trữ các tệp EFI được sử dụng trong quá trình khởi động UEFI. Việc xóa hoặc định dạng nó thường sẽ ngăn các hệ điều hành đã cài đặt khởi động cho đến khi ESP và các tệp cần thiết của nó được khôi phục.
H: Tại sao EFI System Partition sử dụng FAT32?
A: Đặc tả UEFI yêu cầu EFI System Partition sử dụng hệ thống tệp FAT. Trên hầu hết các máy tính hiện đại, đây là FAT32. Bởi vì UEFI firmware có thể đọc các phân vùng định dạng FAT-formatted, nó có thể định vị và khởi động bộ nạp khởi động trước khi hệ điều hành tải.
H: Windows và Linux có thể chia sẻ cùng một EFI System Partition không?
A: Có. Một EFI System Partition duy nhất có thể được chia sẻ bởi nhiều hệ điều hành. Mỗi hệ điều hành thường lưu trữ các tệp EFI của nó trong thư mục riêng của nó dưới thư mục EFI. Đây là bố cục tiêu chuẩn được sử dụng bởi các hệ thống UEFI.
H: Tôi có thể sử dụng /efi thay vì /boot/efi không?
A: Có. Linux không yêu cầu một điểm gắn kết cụ thể cho EFI System Partition. Trong khi /boot/efi là điểm gắn kết truyền thống được nhiều bản phân phối Linux sử dụng, một số bản phân phối và cấu hình hệ thống sử dụng /efi thay vào đó. Điểm gắn kết chính xác là một lựa chọn cấu hình. Điều quan trọng là hệ điều hành và bộ nạp khởi động được cấu hình để sử dụng cùng một vị trí.
Kết luận
Fedora tạo cả /boot và /boot/efi vì chúng phục vụ các mục đích khác nhau trong quá trình khởi động.
EFI System Partition (ESP), thường được gắn tại /boot/efi, lưu trữ các chương trình EFI được sử dụng trong quá trình khởi động UEFI. Thư mục /boot lưu trữ Linux kernel, initramfs và các tệp khác cần thiết để khởi động Linux.
Bản cài đặt mặc định của Fedora đặt /boot trên một phân vùng riêng. Các bản phân phối Linux khác có thể sử dụng một bố cục khác. Ví dụ, Ubuntu thường lưu trữ thư mục /boot bên trong hệ thống tệp gốc thay vào đó.
Đặc tả UEFI yêu cầu một EFI System Partition, nhưng nó không yêu cầu một phân vùng /boot riêng. Các bản phân phối Linux được tự do chọn bố cục phân vùng phù hợp nhất với hệ thống tệp mặc định, bộ nạp khởi động và thiết kế cài đặt của chúng.
Hiểu được mục đích của /boot, /boot/efi và EFI System Partition giúp bạn dễ dàng hiểu cách các hệ thống Linux khởi động và tại sao các bản phân phối Linux khác nhau sử dụng các bố cục phân vùng khác nhau.
Bài đọc được đề xuất:
- Create And Manage Disk Partitions With Fdisk In Linux
- Create And Manage Disk Partitions With Parted In Linux
- How To List Disk Partitions In Linux
- How To Move Home Directory To New Partition Or Disk In Linux
- How To Find The Mounted Filesystem Type In Linux
https://ostechnix.com/tag/boot-vs-boot-efi/ · https://ostechnix.com/tag/boot-partition/ · https://ostechnix.com/tag/efi/ · https://ostechnix.com/tag/efi-system-partition/ · https://ostechnix.com/tag/esp/ · https://ostechnix.com/tag/fedora/ · https://ostechnix.com/tag/fedora-boot/ · https://ostechnix.com/tag/fedora-boot-efi/ · https://ostechnix.com/tag/fedora-efi-partition/ · https://ostechnix.com/tag/fedora-partition-layout/ · https://ostechnix.com/tag/linux/ · https://ostechnix.com/tag/linux-basics/ · https://ostechnix.com/tag/linux-boot-process/ · https://ostechnix.com/tag/linux-commands/ · https://ostechnix.com/tag/linux-tips/ · https://ostechnix.com/tag/ubuntu/




