Làm cách nào để tạo phân vùng hệ thống EFI?


34

TL; DR Làm cách nào để tạo phân vùng hệ thống EFI từ đầu? Làm cách nào để tôi cài đặt chương trình cơ sở EFI trên nó, nó được tạo ra?

Phiên bản dài

Tôi có máy tính xách tay Toshiba T430. Tôi đã nhận được nó với Windows 7 được cài đặt (nhưng tôi nghĩ ban đầu nó đã được bán kèm với Windows 8). Tôi đã cài đặt Ubuntu trên nó, nhưng đã xóa một số phân vùng trên đĩa để cuối cùng tôi xóa sạch Windows và chỉ có Ubuntu. Trong số các phân vùng bị xóa là phân vùng Hệ thống EFI. Tôi phát hiện ra rằng Ubuntu bây giờ khởi động ở chế độ Legacy (chứ không phải UEFI). Tôi đang cố gắng làm theo hướng dẫn này để chuyển đổi cài đặt Ubuntu của mình từ Legacy sang UEFI. Vấn đề - vì không có phân vùng EFI bất cứ khi nào tôi chọn từ BIOS để khởi động bằng UEFI, tôi không thể khởi động. Điều đó không chỉ được tính cho ổ cứng, mà cả usb và DVD. Tôi nghĩ điều này hợp lý - nó mong đợi một phân vùng EFI và vì nó không thể tìm thấy nó, nên nó không thể tiếp tục khởi động xa hơn, có thể là từ ổ cứng hoặc DVD. Vậy làm cách nào để tạo lại phân vùng EFI?

Hướng dẫn trên cho biết:

Tạo phân vùng EFI

Nếu bạn đang phân vùng thủ công đĩa của mình trong trình cài đặt Ubuntu, bạn cần đảm bảo rằng bạn đã thiết lập phân vùng EFI.

  1. Nếu đĩa của bạn đã chứa phân vùng EFI (ví dụ: nếu máy tính của bạn đã cài đặt sẵn Windows8), thì nó cũng có thể được sử dụng cho Ubuntu. Đừng định dạng nó. Chúng tôi khuyên bạn chỉ nên có 1 phân vùng EFI trên mỗi đĩa.

  2. Một phân vùng EFI có thể được tạo thông qua một phiên bản GParted gần đây (phiên bản Gparted có trong đĩa 12.04 là OK) và phải có các thuộc tính sau:

    1. Điểm gắn kết: / boot / efi (nhận xét: không cần đặt điểm gắn kết này khi sử dụng phân vùng thủ công, trình cài đặt Ubuntu sẽ tự động phát hiện nó)

    2. Kích thước: tối thiểu 100Mib. Đề nghị 200MiB.

    3. Loại: FAT32

    4. Khác: cần một cờ "khởi động".

Tôi gặp một số khó khăn khi tạo phân vùng này:

  • Tôi khởi động từ một DVD Ubuntu trực tiếp, mở GParted, tạo phân vùng 200 MB và định dạng nó thành FAT32.
  • Trong GParted tôi không thể đặt điểm gắn kết và do đó không thể đặt bootflag.
  • Tôi đã không đặt điểm gắn kết /etc/fstabvì đó là CD trực tiếp và fstab trông khá khác so với những gì tôi mong đợi so với khởi động bình thường. Dù sao, tôi chỉ không biết nên đặt giá trị nào.

Tôi đã khởi động lại thông qua DVD trực tiếp và sau đó chọn cài đặt Ubuntu. Sau đó, tôi đã tạo một phân vùng với các tiêu chí được đề cập - điểm gắn kết, 200MB, FAT32, cờ khởi động.

Tuy nhiên, tôi tiếp tục gặp vấn đề này và tôi cho rằng đó là vì trên phân vùng đó không có phần sụn EFI, nó chỉ là một phân vùng trống, phù hợp để có phần sụn EFI.

Vậy một lần nữa, làm cách nào để tạo phân vùng EFI, có phần mềm EFI, để máy tính xách tay có thể khởi động lại ở chế độ UEFI một lần nữa?

GIẢI PHÁP Cảm ơn cả hai bạn đã trả lời. Những gì tôi đã làm là cài đặt Windows 8.1 từ đầu bằng cách định dạng toàn bộ đĩa và sau đó cài đặt (lần này là đúng) Ubuntu bên cạnh nó. Đây là những phân vùng của tôi bây giờ:

Phân vùng đĩa

Trong quá trình thiết lập Win 8, ngay sau khi tôi xóa tất cả các phân vùng hiện có và để Windows định dạng lại đĩa, nó sẽ tự động tạo, bên cạnh phân vùng cài đặt chính, ba phân vùng bổ sung, cụ thể là 1, 2, 3. Bây giờ, sau khi tôi có một ESP phù hợp , Tôi có thể khởi động cả từ ổ cứng hoặc DVD ở chế độ UEFI.

Bạn nói rằng ESP không lưu trữ bất kỳ thông tin nào theo mặc định, nhưng tôi đoán rằng khi một hệ điều hành cài đặt, nó sẽ đặt một số thông tin ở đó. Vì vậy, tôi đoán trường hợp của tôi là như sau: Tôi đã xóa sạch nó và mặc dù tôi đã tạo lại nó, nó không chứa bất kỳ thông tin nào, vì việc tạo ra ESP đã được thực hiện sau khi hệ điều hành được cài đặt. Tôi đã mất cài đặt Ubuntu (dù sao cũng không phải là cài đặt mới), nhưng tôi đoán rằng để lưu nó, tôi nên làm theo lời khuyên của grawity . Mặc dù không có thời gian, nhưng hạnh phúc là mọi thứ đều ổn.


1
Các cửa hàng ESP lưu trữ bộ tải khởi động. Do đó, nếu bạn đã có bản cài đặt hiện có và xóa ESP, bạn sẽ mất khả năng khởi động máy tính. Loại vấn đề này thực sự khá đơn giản để khắc phục - NẾU bạn biết cách!
Rod Smith

Vâng đó là tất cả những gì câu hỏi của tôi là về :)
Alex Popov

Câu trả lời:


37

Đầu tiên, bạn không đặt điểm gắn kết trong GParted; được thực hiện thủ công (và tạm thời) thông qua mountlệnh hoặc vĩnh viễn bằng cách chỉnh sửa /etc/fstab. Vì vậy, mối quan tâm của bạn về vấn đề này là thất lạc.

Thứ hai, Phân vùng hệ thống EFI (ESP) chỉ đơn giản là phân vùng FAT với mã loại cụ thể (cụ thể là C12A7328-F81F-11D2-BA4B-00A0C93EC93B trên các đĩa GPT). Lưu ý rằng điểm gắn kết /etc/fstabkhông phải là một phần của định nghĩa của ESP; Nó chỉ là thông thường (nhưng không bắt buộc) trong Linux để truy cập vào ESP bằng cách gắn nó tại /boot/efi, thông thường thông qua một /etc/fstabmục. Cách bạn đặt mã loại thay đổi từ chương trình này sang chương trình khác:

  • Trong gdisk, bạn đặt mã loại thành EF00. ( gdisksử dụng mã loại hai byte mở rộng ra mã loại thực trên đĩa; "EF00" chỉ là một ký hiệu cho "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)
  • Trong GParted hoặc parted, bạn đặt "cờ khởi động." Tuy nhiên, lưu ý rằng điều này chỉ hoạt động trên các đĩa GPT; bạn không thể đặt mã loại ESP trên các đĩa MBR với các chương trình này. (Đây thường không phải là vấn đề lớn, vì các máy tính dựa trên EFI thường khởi động từ các đĩa GPT.)
  • Trong trình cài đặt Ubuntu, bạn xác định phân vùng là "phân vùng khởi động EFI." Sau đó, nó đặt mã loại sẽ thiết lập /etc/fstabphù hợp.
  • Trong các phiên bản gần đây của Linux fdisk, bạn đặt loại phân vùng theo số của nó (1 cho "Hệ thống EFI" trên đĩa GPT hoặc 0xEF trên đĩa MBR) hoặc bằng cách nhập mã loại đầy đủ trên đĩa GPT.

Thứ ba, ESP không giữ phần sụn - theo định nghĩa, phần sụn được lưu trữ trong các chip trên bo mạch chủ. Do đó, nỗ lực của bạn để cài đặt phần mềm EFI trên ESP là một cuộc săn đuổi ngông cuồng. (Có hai trường hợp ngoại lệ cho quy tắc này. Đầu tiên, bạn có thể lưu trữ tệp chương trình cơ sở trên ESP để cập nhật chương trình cơ sở trên máy tính của mình. Tuy nhiên, đây chỉ là khu vực giữ tạm thời. Tuy nhiên, Thứ hai, bộ tải khởi động DUET hoặc Cỏ ba lá , EFI được nạp như một chương trình thường xuyên, thông thường là từ ESP những công cụ này BIOS trình nạp khởi động, tuy nhiên, cho phép BIOS chỉ máy tính để khởi động như thể chúng là máy EFI;. họ khôngthường được sử dụng trên các máy tính có chương trình cơ sở EFI mà bạn cho rằng máy tính của mình có. Về mặt kỹ thuật, cả DUET và Cỏ ba lá đều không phải là phần sụn; chúng là các bộ tải khởi động BIOS hoạt động tương tự như EFI.)

Cuối cùng, tôi có thể nghĩ ra một số nguyên nhân có thể gây ra vấn đề của bạn, nhưng không có thêm thông tin, tôi cần viết một nửa cuốn sách để đề cập đến tất cả. Tôi khuyên bạn nên chạy Boot Info Script trên máy tính. Điều này sẽ tạo ra một tập tin gọi là RESULTS.txt. Đăng nó lên một trang web pastebin và gửi lại với URL vào tài liệu của bạn. Điều đó sẽ cung cấp dữ liệu cứng trên cấu hình của bạn, điều này sẽ làm giảm đáng kể phạm vi các nguyên nhân có thể gây ra sự cố của bạn.


Làm cách nào để sử dụng gdiskđể "đặt mã loại thành EF00"?
B Bảy

@BSeven t, 1, ef00.
hobbs

11

Phân vùng EFI không giữ phần sụn (được lưu trữ trong chip trên bo mạch chủ); nó giữ bộ tải khởi động cho các hệ điều hành được cài đặt. Về cơ bản, nó là giải pháp thay thế EFI cho việc đặt bộ tải khởi động vào khu vực thứ 0 của đĩa của bạn, như trường hợp của PC BIOS.

Điều này có nghĩa là một khi bạn có một phân vùng như vậy, nó sẽ tự động được điền khi bạn cài đặt hệ điều hành. (Cũng có khả năng mặc dù đĩa cài đặt cũng phải được khởi động ở chế độ EFI, nếu không, nó sẽ không làm phiền việc thiết lập khởi động UEFI ... thực tế, một số phần của thiết lập thậm chí không thể được thực hiện từ chế độ BIOS.)

Nếu bạn đã cài đặt Ubuntu, bạn sẽ cần:

  1. Cài đặt phiên bản UEFI của GRUB; Tôi nghĩ rằng nó là trong grub-efi-amd64-signedgói.

    grub-install --target=x86_64-efi-signed
    

    (Đối với grub-efi-amd64phiên bản chưa ký , đó là x86_64-efi.)

  2. Đảm bảo rằng GRUB đã tự cài đặt như \EFI\Boot\bootx64.efitrong phân vùng hệ thống EFI. (Tôi đang sử dụng cú pháp đường dẫn EFI ở đây; nếu bạn gắn kết phân vùng /boottrên Linux, thì nó sẽ như vậy /boot/EFI/Boot/bootx64.efi.)

    Nếu không, hãy sao chép grubx64.efithủ công vào vị trí đó.

    Điều này là cần thiết vì grub-installkhông thể tự thêm vào menu khởi động EFI trừ khi hệ thống đã khởi động ở chế độ EFI. ("Các biến EFI" không thể truy cập trong BIOS moed.) Do đó, cách duy nhất để khởi động GRUB là đặt nó ở vị trí "bộ tải khởi động dự phòng".

  3. Khởi động lại. Hãy thử chọn một số loại chế độ EFI trong menu khởi động phần sụn của bạn (phần cứng EFI có menu khởi động riêng, ngay cả trước GRUB).

  4. Kiểm tra xem có dmesg | grep "efi:"hiển thị gì không, để xác nhận rằng bạn đang ở chế độ EFI.


1
Tôi không có ý đưa ra một chủ đề cũ, nhưng tôi đang cố gắng tìm một giải pháp cho vấn đề của mình và tình cờ thấy chủ đề này. Tôi đang cố cập nhật chương trình cơ sở BIOS trên máy tính Dell của mình và Dell cung cấp nó dưới dạng EXE ở định dạng Windows hoặc một số tệp nên đặt trên phân vùng có định dạng EFI. tức là tôi được yêu cầu "Tải tệp xuống phân vùng EFI trên thiết bị đa phương tiện di động." Tôi không biết OP có ý này không, nhưng chỉ muốn chỉ ra những gì bạn nói trong đoạn đầu tiên.
Ray

@Ray: Bạn đang tải firmware tương lai vào phân vùng này. Nó vẫn không được sử dụng như phần sụn thực tế khi bạn bật máy tính; nó chỉ được sử dụng như một tệp dữ liệu cho chương trình "cập nhật chương trình cơ sở" sẽ ghi / flash nó vào bo mạch chủ. (Hãy nhớ khi các hướng dẫn như vậy được sử dụng để nói "tải tệp xuống đĩa mềm có thể khởi động MS-DOS" hoặc một cái gì đó? À, đĩa đó cũng không giữ BIOS chính của bạn. Nó chỉ giữ chương trình phản chiếu và dữ liệu được cho là flash . Giống nhau ở đây.)
grawity

1
Vâng tôi biết. Tôi đoán tôi chỉ nói rằng OP có thể không nhất thiết sai, nhưng chỉ là không chính xác. Tương tự như vậy, bạn đúng rằng phần sụn được lưu trữ trên chip và bây giờ tôi được yêu cầu lưu trữ phần sụn trong tương lai trên phân vùng EFI. Nhưng, ai đó có thể nói rằng phần sụn được lưu trữ trong EFI nếu họ bất cẩn với mô tả của họ. (nghĩa là không hoàn toàn sai nhưng sai một nửa)
Ray

2

Tạo hai tệp bằng notepad và lưu chúng vào ổ đĩa cài đặt USB Windows của bạn.
SaveAs: CreatPartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Tạo một tệp văn bản khác bằng Notepad:
SaveAs: đĩapart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Nếu bạn đang sử dụng MBR, lệnh sẽ là, chuyển đổi mbr.

Để có được kích thước của phân vùng Windows, Nhân kích thước HD của bạn nhân với 1024 lần, ổ cứng 100 gig lần 1024 bằng 102400 trừ 210 (kích thước efi) trừ 16 (kích thước msr) trừ 460 (kích thước dành riêng) bằng với kích thước bạn sẽ đặt kích thước phân vùng Windows. (xxxxxx)

Bạn có thể thay đổi kích thước phân vùng từ thiết bị đầu cuối (Dấu nhắc lệnh) cd / d D:> notepad CreatePartitions-UEFI.txt

Trong khi bạn đang ở trong ổ USB mở bằng notepad đĩapart-UEFI.txt và để mở hoặc viết lệnh xuống để bạn không mắc lỗi. Khi bạn đã thay đổi kích thước của các phân vùng theo ý thích của mình, hãy đóng nó, sau đó cd / dx: / Nguồn sau đó chạy đĩapart / s D: \ CreatePartitions-URFI.txt.
liệt kê âm lượng như lệnh cuối cùng hiển thị cho bạn các phân vùng, nếu vui, thoát> tắt máy tính> khởi động lại> cài đặt


-2

sử dụng gnome-đĩa, gói "gnome-đĩa-Utility", nó rất tiện dụng.


2
Chào mừng bạn đến với Siêu người dùng! Tôi không phải là DV-er, nhưng trong khi câu trả lời một dòng đôi khi có thể hoạt động, nhưng nếu bạn chỉnh sửa câu trả lời của mình để bao gồm một lời giải thích thì nó sẽ hoạt động tốt hơn :) Làm thế nào họ tạo phân vùng hệ thống EFI trong tiện ích đĩa gnome.
bertieb
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.