สารบัญ:
- คำศัพท์
- แปลง
- การกำหนดค่า (+ บูตคู่)
คำศัพท์
BIOS = ระบบอินพุต / เอาท์พุตพื้นฐาน
(U) EFI = (รวมเป็นหนึ่ง) ส่วนต่อประสานเฟิร์มแวร์ที่ขยายได้
MBR = มาสเตอร์บูตเรคคอร์ด
GPT = GUID ตารางพาร์ติชัน
UEFI / EFI / BIOS = ส่วนต่อประสานเฟิร์มแวร์
MBR / GPT = คอมพิวเตอร์รู้ได้อย่างไร (ต่อฮาร์ดดิสก์) ว่าพาร์ติชั่นใดบ้างที่อยู่ในไดรฟ์และวิธีการบู๊ตจากพวกเขา
UEFI / BIOS
อินเตอร์เฟซเฟิร์มเป็นวิธีการที่เฟิร์ม (ซอฟแวร์ที่อยู่ภายในอุปกรณ์) และโต้ตอบระบบปฏิบัติการ มันเริ่มต้นฮาร์ดแวร์จากนั้นเรียกใช้ระบบปฏิบัติการและตรวจสอบให้แน่ใจว่าไดรเวอร์ระบบปฏิบัติการสามารถใช้งานฮาร์ดแวร์ได้
ไบออสเป็นอินเทอร์เฟซของเฟิร์มแวร์ทั่วไปที่ใช้งานอยู่ UEFI เป็นอินเทอร์เฟซที่ใหม่กว่าที่มีคุณสมบัติหลายอย่างเช่นการเร็วขึ้นการมี GUI และความสามารถในการเริ่มต้นการ์ดเครือข่ายและรับที่อยู่ IP UEFI แทนที่ EFI (ผู้ที่พัฒนา EFI เห็นว่ามีคนอื่นทำสิ่งที่คล้ายกันและเข้าร่วมกับพวกเขานำแนวคิดของ EFI มาด้วยพวกเขาจากนั้นกลายเป็น UEFI)
BIOS กำหนดให้ bootloader เป็นจุดเริ่มต้นของดิสก์อย่างไรก็ตาม UEFI ใช้พาร์ติชันสำหรับสิ่งนี้และสามารถเลือกได้จาก boot loader หลาย ๆ ตัวที่จะใช้
MBR / GPT + GRUB
MBRเป็นส่วนของรหัสที่เริ่มต้นของดิสก์ที่มีบูต (สำหรับไบออส) เช่นเดียวกับแผนที่พาร์ทิชันและตัวระบุดิสก์ที่ไม่ซ้ำกัน
ในการติดตั้ง GRUB ลงในดิสก์ที่มี MBR นั้น GRUB จะวางโปรแกรมขนาดเล็กลงใน MBR เพื่อโหลดส่วนที่เหลือของ GRUB จากส่วนอื่นของดิสก์ (ทำได้เนื่องจาก MBR มีขนาดเล็กเกินไปที่จะเก็บ GRUB ทั้งหมด) พื้นที่ที่เลือกคือช่องว่างระหว่าง MBR และพาร์ติชันแรกซึ่งมักจะมีอยู่
GPT เป็นมาตรฐานสำหรับวิธีการระบุพาร์ทิชั่น มันมี MBR 'ป้องกัน' อย่างไรก็ตามนี่เป็นเพียงการอนุญาตให้คอมพิวเตอร์ที่ใช้ BIOS บูตและหยุดเครื่องมือที่รู้เกี่ยวกับ MBR เท่านั้นเพื่อพยายามที่จะทิ้ง GPT มันสามารถมี
(วิธีการจัดการ GPT ขึ้นอยู่กับว่าจะทำการบูทโดยใช้ BIOS (หรือระบบ UEFI ในโหมดการจำลอง BIOS) หรือ UEFI ฉันจะเน้นที่ UEFI ตามที่เกี่ยวข้องกับคำถาม)
บูตโหลดเดอร์สำหรับระบบปฏิบัติการจะถูกเก็บไว้ในพาร์ติชันที่เรียกว่า EFI System Partiton ซึ่งจัดรูปแบบ (ปกติ) ด้วย FAT32 นี่คือที่ติดตั้ง GRUB
แปลง
แรก ...
เรากำลังเล่นกับตารางพาร์ทิชันดังนั้นจึงไม่สามารถรับประกันความปลอดภัยได้ เป็นการดำเนินการที่มีความเสี่ยง อย่างไรก็ตามวิธีการไม่ควรสูญเสียข้อมูล
ผู้อื่นที่เจอปัญหานี้: อย่าใช้กับ Apple Mac
ตอนนี้ ...
คุณจะต้องทำสิ่งนี้ในซีดีสด (หรือการติดตั้ง linux อื่นที่ติดตั้งในดิสก์อื่น)
เมื่อจัดการกับดิสก์ GPT เราจำเป็นต้องใช้โปรแกรม GPT 'GPT fdisk' เป็นเครื่องมือที่ดีในการใช้และสิ่งที่ฉันจะใช้ มันสามารถถูกเรียกgptfdisk
หรือ
gdisk
ขึ้นอยู่กับการกระจาย (Ubuntu เรียกมันว่าgdisk
) บางส่วน (และ Gparted) ก็รู้ GPT ด้วยเช่นกันดังนั้นสามารถใช้ 'ปลอดภัย' กับดิสก์ GPT
ในการแปลงคุณต้อง:
- ปรับขนาดพาร์ติชันให้พอดีกับข้อมูล GPT และพาร์ติชันระบบ EFI
- แปลงดิสก์และเพิ่มพาร์ติชัน
- ติดตั้ง GRUB ไปยังพาร์ติชันระบบ EFI
1) ปรับขนาดพาร์ติชัน
ใช้parted
(บรรทัดคำสั่ง) หรือgparted
(GUI) เพื่อปรับขนาดพาร์ติชันแรกและพาร์ติชันสุดท้าย ส่วนแรกควรมีประมาณ 200MiB ก่อนหน้านี้และพาร์ติชันสุดท้ายควรมี 1MiB ถึง 2MiB (จะทำ) ปิดท้าย
2) แปลงดิสก์
วิ่ง
gdisk /dev/sdx
/dev/sdx
เปลี่ยนอุปกรณ์ที่คุณต้องการแปลงเป็น
มันควรจะบอกคุณว่ามันจะแปลงตาราง partiton
GPT fdisk (gdisk) version 0.6.14
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):
ตอนนี้เพิ่มพาร์ติชันใหม่ทำให้เป็นประเภท 'ระบบ EFI' ควรหาพื้นที่ว่างที่จุดเริ่มต้น (ฉันแนะนำหมายเลขเซกเตอร์ที่ต่ำเช่น 34) และใช้พื้นที่ว่างทั้งหมดโดยอัตโนมัติ ตัวอย่างนี้ใช้แฟลชไดรฟ์ USB 4GB ที่มีพาร์ติชั่นอยู่แล้ว 1 ตัวปรับขนาดตามที่กล่าวไว้ข้างต้น
Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}:
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data 0c01 Microsoft reserved 2700 Windows RE
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8301 Linux reserved 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup
bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3
bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service ef00 EFI System ef01 MBR partition scheme
ef02 BIOS boot partition fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'
ตอนนี้คุณควรมีพาร์ติชัน EFI
Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 421888 7829503 3.5 GiB 0700 Linux/Windows data
2 2048 421887 205.0 MiB EF00 EFI System
จากนั้นออกจาก gdisk
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
ตอนนี้ใช้ Gparted (หรือบรรทัดคำสั่งmkfs.vfat
) เพื่อจัดรูปแบบพาร์ติชันเป็น FAT32
3) ติดตั้ง GRUB
นี้มาพร้อมกับความมั่นใจน้อยกว่าที่ส่วนก่อนหน้านี้ในขณะที่ฉันไม่ได้ลองด้วยตัวเอง
ฉันไม่แน่ใจเกี่ยวกับขั้นตอนนี้ดังนั้นฉันเดาว่าใช้คำแนะนำของ RAOF :
หากต้องการเปลี่ยนเป็น grub-efi คุณต้องการ
- ค้นหาพาร์ติชัน EFI ของคุณ ติดตั้งใน / boot / efi เพิ่มลงใน / etc / fstab¹
- ติดตั้งแพ็คเกจ grub-efi
- เปลี่ยนลำดับความสำคัญในการบูต BIOS จาก UEFI และ Legacy เป็น UEFI เท่านั้น (หรือตัวเลือกที่คล้ายกัน)
คุณควรทำงานกับ grub-efi รุ่นใดเพื่อติดตั้ง
ioreg -l -p IODeviceTree | grep firmware-abi
ถ้ามันบอกว่าEFI32
ติดตั้งgrub-efi-ia32
แพคเกจถ้ามันบอกว่าEFI64
ติดตั้งgrub-efi-amd64
แพคเกจ คุณสามารถติดตั้งแพ็คเกจด้วย
sudo apt-get install <package name>
สิ่งนี้อาจใช้ได้ถ้าคุณบูตในโหมด EFI เท่านั้น
ถ้ามันไม่ทำงานคุณสามารถลองเหล่านี้ขั้นตอนตามคำแนะนำขั้นตอน (ภายใต้ "ติดตั้งใน GRUB2 (ระบบ U) EFI") ครั้งหนึ่งเคยgrub-efi
มีการติดตั้ง
การกำหนดค่า (+ บูตคู่)
หากคำแนะนำของ RAOK ทำงานได้คุณควรจะเพิ่มบรรทัดต่อไปนี้
/etc/grub.d/40_custom
menuentry "Windows 7" {
set root='(hd0,gpt1)'
chainloader /EFI/microsoft/bootmgfw.efi
}
ถือว่า Windows เป็นที่รู้จักhd0
โดย GRUB อาจจำเป็นต้องเปลี่ยนเป็นhd1
เพื่อให้ทำงานได้
ตอนนี้ทำงาน
update-grub
เพื่ออัปเดตไฟล์ปรับแต่ง
การอ้างอิงและการอ่านเพิ่มเติม
ฉันใช้หลายแหล่ง
- Rod Smith's " GPT fdisk tutorial " เหมาะสำหรับข้อมูลเพิ่มเติม
- หน้าวิกิพีเดียUEFI , BIOS , MBRและGPT
- อูบุนตูของUEFI หน้าบูตวิกิพีเดีย ดีสำหรับวิธีการเพิ่มเติมหากคุณติดขัด
- UEFI ของตัวเองเกี่ยวกับหน้า