ติดตั้ง Windows 8 และ Linux UEFI สำหรับบูตคู่ไว้ล่วงหน้าบนแล็ปท็อป


10

ฉันกำลังพยายามตั้งค่า Windows 8 และ Arch Linux บน Sony Vaio E14 ใหม่พร้อม windows 8 ที่ติดตั้งไว้ล่วงหน้า

จนถึงตอนนี้:

  • ติดตั้ง W8 เป็น SSD ใหม่ของฉัน (เปลี่ยนเป็น HDD ดั้งเดิม) โดยใช้ Recovery Media
  • ลดขนาดพาร์ติชัน W8 ลบพาร์ติชันการกู้คืนปิดการใช้งานการสลับ
  • ยืนยันการบูท W8 เรียบร้อยดี

ไปยัง Arch:

  • ปิดใช้งาน Secure Boot ใน BIOS
  • ยืนยันการบูท W8 เรียบร้อยดี
  • บูตอาร์คออกจากซีดีและติดตั้งทุกอย่างไปยังพาร์ติชันที่ 4 และ 5
  • ตั้งค่า rEFInd สำหรับ bootloader เคอร์เนล EFIstub

หลังจากนั้นมันก็แย่ลง ฉันไม่สามารถบู๊ตสิ่งอื่นนอกเหนือจาก Windows 8 (แม้ว่าฉันจะดีใจที่อย่างน้อยพวกเขาก็ยังทำงานได้ดี)

พยายาม:

  • สร้าง EFI \ refind \ และวาง .efi ไว้ที่นั่น (ตามคู่มือ Arch
  • เขียนทับ EFI \ boot \ bootx64.efi
  • เขียนทับ EFI \ Microsoft \ Boot \ bootmgr.efi
  • เขียนทับ EFI \ Microsoft \ Boot \ bootmgfw.efi --- ใช่ rEFInd ปรากฏขึ้น!

จนถึงตอนนี้ดีมาก ฉันเก็บ Boot \ directory W8 ทั้งหมดไว้ใน EFI \ windows8 แล้วตั้งค่าเมนูการบู๊ตสำหรับมัน และมันก็บูทได้ดี

แต่เมื่อรีสตาร์ททุกอย่างผิดปกติ - 'ไม่พบระบบปฏิบัติการ' แทน bootloader (refind หรือ w8)

บูตกลับเข้าสู่ Arch โดยใช้ซีดีสดเพื่อค้นหาว่าพาร์ติชัน EFI มีตาราง FAT ที่ผิดพลาด fsck.vfat แก้ไขแล้วและฉันพบว่า EFI \ Microsoft \ Boot กลับสู่สถานะเดิม (ลบ refind ไฟล์ทั้งหมดและแทนที่ด้วย bootloaders W8) ฉันเขียนทับพวกเขาอีกครั้งและกลับไปที่ rEFInd แสดงอย่างถูกต้องและ Arch สามารถบู๊ตได้อย่างสมบูรณ์แบบ

หลังจากนั้นฉันได้ลองเปลี่ยนชื่อ EFI \ Microsoft \ Boot \ bootmgfw.efi เป็น bootmgfw.001.efi เท่านั้น (จากนั้นคัดลอก. efi ของ refind ไปเป็น bootmgfw.efi และเก็บทุก ๆ ไฟล์เหมือนเดิม) แต่ด้วยผลลัพธ์เดียวกันทั้งหมด พยายามทำเครื่องหมายพาร์ติชัน GPT EFI เป็นผลลัพธ์แบบอ่านอย่างเดียว

ตอนนี้ฉันโชคไม่ดี Arch เริ่มต้นได้ดี W8 จะทำเช่นนั้น แต่จะทำลายพาร์ติชัน EFI ในกระบวนการ

ขอบคุณสำหรับความคิดใด ๆ Googling นำมาให้ฉันจนถึงขณะนี้และฉันไม่สามารถหาสิ่งใดได้ดีกว่านี้อีกแล้ว

PS - windows 8 MAYBE ทำลายพาร์ติชันเมื่อปิดเครื่อง - เมื่อฉันสั่งปิดใน W8 มันใช้เวลานานผิดปกติ (ประมาณครึ่งนาทีแทนที่จะเป็น ~ 5 วินาที) ในทางทฤษฎีแล้วฉันสามารถแก้ปัญหานี้ได้โดยการรีเซ็ตฮาร์ดแล็ปท็อปแทนการปิดเครื่องตามปกติ แต่นั่นก็ไม่ดี


ฉันกลัวว่าฉันจะช่วยไม่ได้ที่นี่ฉันไม่มีเครื่องจักร UEFI เพื่อทดสอบสิ่งของ แม้ว่ามันอาจไม่ใช่วิธีที่ต้องการมากที่สุดในการทำเช่นนั้นคุณอาจลองเพิ่มรายการ Linux ลงใน bootloader ของ Windows และบูตที่นั่น แต่ฉันไม่ได้ลองในเครื่อง UEFI ดูที่นี่สำหรับขั้นตอน: superuser.com/a/499652/18050นอกจากนี้ฉันมักจะใช้ Archboot เพื่อติดตั้ง Arch ให้ภาพถ้าคุณใช้ภาพอย่างเป็นทางการเพราะการติดตั้งนำระบบ UEFI เข้าบัญชี: bbs.archlinux org / viewtopic.php? id = 150833
Xandy

ดูเหมือนความขัดแย้งระหว่าง Arch Linux และสิ่งที่ Windows 8 ทำ คุณลอง distro อื่นเพื่อควบคุมมันไม่ใช่ Arch Linux ที่มีปัญหาหรือไม่?
Ramhound

ขอบคุณสำหรับคำแนะนำ easyBCD ฉันจะลองทำดู ฉันไม่สนใจว่าจะใช้ตัวจัดการการบู๊ตใดดังนั้นหาก Windows สามารถทำได้ฉันจะมีความสุขมากกว่านี้ จะโพสต์ผลในวันพรุ่งนี้เมื่อมีเวลาว่างจากการทำงานอีกครั้งเพื่อทำสิ่งสกปรก :) @Ramhound มันจะเป็นความเจ็บปวดในขณะนี้และฉันไม่คิดว่ามันเกี่ยวข้องกับ Arch - rEFInd เป็นโครงการแยกต่างหากและฉัน ติดตั้งมันทั้งหมดด้วยมือ (ตามชาย)
itchy355

คำตอบ:


5

มันอาจจะคุ้มค่าที่จะทำการปิดระบบแบบเย็น (กดปุ่มเปิดปิด) ใน Windows เพื่อดูว่าคุณสามารถบูตหลังจากนั้นได้หรือไม่ เห็นได้ชัดว่าคุณไม่ต้องการทำสิ่งนี้เป็นประจำ แต่อาจเป็นประโยชน์ในการยืนยันว่า Windows กำลังเขียนทับข้อมูล ESP ที่คุณแก้ไข ถ้ามันเป็นความเสียหายของระบบไฟล์จริง ๆ ในการปิดระบบ Windows นี่เป็นเหมือนข้อผิดพลาดของ Windows ที่ควรรายงานต่อ Microsoft หากเป็นเพียงการแทนที่bootmgfw.efiไฟล์แสดงว่าเป็นเรื่องทางเทคนิคภายใน Microsoft purvue ดังนั้นจึงไม่ใช่ข้อผิดพลาดจริงๆ

แม้ว่าคุณจะพูดอย่างกว้าง ๆ คุณลองใช้efibootmgrโปรแกรมของ linux เพื่อลงทะเบียน rEFInd กับ EFI ภายใต้ชื่อของตัวเอง (พูดEFI/refindใน ESP) หรือไม่? อธิบายไว้ในเอกสารประกอบของ rEFInd ในส่วนของการติดตั้ง Linux ด้วยตนเอง หรือคุณสามารถติดตั้งโดยใช้install.shสคริปต์ วิธีใดวิธีหนึ่งจะต้องใช้การบู๊ตโหมด EFI ให้สำเร็จ แต่คุณสามารถทำได้โดยใช้ซีดี rEFInd หรือการบู๊ตจากดิสก์ฉุกเฉินในโหมด EFI

หากใช้efibootmgrไม่ได้ให้ลองใช้bcfgในโปรแกรมเชลล์ EFI ดังที่อธิบายไว้ในหน้า Arch wiki

หากขั้นตอนเหล่านี้จะไม่ได้ทำงานให้ลองใช้efibootmgrหรือbcfgเพื่อลบรายการสำหรับbootmgfw.efiจาก NVRAM แล้วติดตั้ง refind EFI/BOOT/bootx64.efiเป็น ในทางทฤษฎีแล้วคอมพิวเตอร์อาจเปิด rEFInd ซึ่งควรทำงานตามปกติและเปิดใช้งานการบูทระบบปฏิบัติการอย่างใดอย่างหนึ่ง มีสอง gotchas ที่อาจเกิดขึ้นแม้ว่า: เฟิร์มแวร์อาจชอบEFI/Microsoft/boot/bootmgfw.efiมากกว่าEFI/BOOT/bootx64.efi; และ Windows อาจตรวจสอบตัวเลือกการบูตและเพิ่มตัวบู๊ตโหลดเดอร์กลับไปยัง NVRAM เมื่อบู๊ต ถึงกระนั้นวิธีนี้ก็คุ้มค่าที่จะลอง

ข้อมูลจำเพาะของ EFI ต้องใช้คอมพิวเตอร์เพื่อให้เป็นไปตามการตั้งค่า NVRAM ของพวกเขา (ซึ่งจัดการโดยefibootmgrใน Linux, bcfgในเชลล์ EFI หรือโปรแกรมที่คล้ายกัน) ดังนั้นหากยูทิลิตี้เหล่านี้ไม่ทำงานเฟิร์มแวร์ของคุณจะใช้งานไม่ได้ คอมพิวเตอร์สำหรับรุ่นอื่น (โปรดบอก Sony ว่าเหตุใดคุณจึงส่งคืนคอมพิวเตอร์หากทำเช่นนั้น!) ปัญหาประเภทนี้พบได้บ่อยจริงๆ ฉันมี Gigabyte board ที่มี "Hybrid EFI" ที่ลืมการตั้งค่า NVRAM ไปเรื่อย ๆ อย่างน้อยกับบอร์ดนี้ แต่ก็เป็นไปได้ที่จะข้ามปัญหาโดยการตั้งชื่อจัดการการบูตของฉัน / EFI/BOOT/bootx64.efiรถตักดินของทางเลือก

หากคุณไม่สามารถใช้งานได้และไม่เต็มใจหรือไม่สามารถเปลี่ยนคอมพิวเตอร์ได้ฉันมีคำแนะนำสองประการสำหรับการแก้ไขปัญหา:

  • คุณสามารถเก็บซีดีหรือ USB แฟลชไดรฟ์ที่สามารถบู๊ตได้พร้อม rEFInd และใช้งานเมื่อคุณต้องการบูท Linux นี่อาจจำเป็นต้องใช้ปุ่มฟังก์ชั่นเพื่อบอกให้คอมพิวเตอร์บูตจากสื่อแบบถอดได้แทนที่จะมาจากฮาร์ดดิสก์ทุกครั้งที่คุณบู๊ต
  • คุณสามารถล้างพาร์ติชันจากดิสก์แบ่งพาร์ติชันโดยใช้ MBR และติดตั้งระบบปฏิบัติการทั้งสองใหม่ในโหมด BIOS แทนในโหมด EFI สิ่งนี้จะลบความไม่ชัดของ EFI ออกจากภาพและให้คุณใช้ GRUB โหมด BIOS เป็นตัวโหลดบูต สิ่งนี้อาจต้องใช้สำเนาของตัวติดตั้ง Windows 8 ที่วางจำหน่าย อย่างน้อยสำหรับ Windows 7 สำเนา OEM จะไม่ยืดหยุ่นเกี่ยวกับโหมดการติดตั้ง (BIOS เทียบกับ EFI) หรืออาจแปลงจากการบูทโหมด EFI ไปเป็นบูทโหมด BIOS โดยไม่ต้องทำการติดตั้งใหม่ สวิตช์ตรงข้ามเป็นไปได้ (ฉันจะโพสต์ลิงก์ไปยังเว็บไซต์ที่มีการอธิบายไว้ แต่ไซต์นี้จะไม่ให้ฉันโพสต์มากกว่าสองลิงก์ขออภัย) และฉันดูเหมือนจะจำการทำงานข้ามคำอธิบายของการทำ EFI- การแปลงเป็นไบออสเป็นบางแห่ง แต่ฉันไม่มี URL ที่เป็นประโยชน์ การค้นหาของ Google อาจทำให้บางสิ่งเกิดขึ้น

ฉันสะดุดทั่วหน้านี้หลังจากโพสต์คำตอบแรกของฉันและมีสาเหตุที่เป็นไปได้อีกส่วนหนึ่งสำหรับปัญหาของคุณอย่างน้อย: Apparently Windows 8 ใช้วิธีการปิดที่คล้ายกับการดำเนินการ suspend-to-disk ผลลัพธ์คือพาร์ติชันที่เมาท์อาจเสียหายหากคุณปิดระบบ Windows แล้วบูต Linux แม้ว่าโดยปกติแล้ว ESP จะไม่ได้รับการติดตั้งใน Windows 7, AFAIK อาจเป็นไปได้ว่า Windows 8 ทำสิ่งที่แตกต่างออกไปหรืออาจจะติดตั้งESP ใน Windows 7 และดูเหมือนจะซ่อนอยู่ ไม่ว่าในกรณีใด ๆ คุณสามารถปิดใช้งานคุณลักษณะนี้ของ Windows 8 ได้โดยพิมพ์คำสั่งต่อไปนี้ในหน้าต่างพรอมต์คำสั่งผู้ดูแลระบบ:

powercfg /h off

อันที่จริง windows 8 จะไม่ทำลายอะไรเลยเมื่อปิดเครื่องเย็น ฉันไม่อยากโพสต์ข้อผิดพลาดเพราะหลังจากทั้งหมดฉันเป็นคนล้อเล่น bootloader ของพวกเขา :)
itchy355

ผมเคยพยายาม messing รอบกับefibootmgr; มันแสดงให้เห็นว่ามีจำนวนมากของ bootmanagers ผิดปกติ (มากกว่า 3 ฉันคาดหวัง) ซึ่งทำให้ฉันดูดิสก์ของฉันดีกว่า; และฉันพบว่าอันที่จริงฉันมีพาร์ติชั่น EFI สองตัว : -x มีเพียงพาร์ติชั่นที่สอง (/ dev / sda2) ที่แสดงเป็นEFI system partitionGDisk ดังนั้นทำให้ฉันคิดว่ามันถูกต้อง อีกส่วนหนึ่งเป็นเพียงพาร์ติชัน FAT (sda1) ที่มีขนาดเท่ากันและโครงสร้างไฟล์ EFI มาตรฐาน
itchy355

ถ้าฉันเปลี่ยนลำดับการบู๊ตเพื่อโหลด rEFInd ก่อนอื่นจะมีบางอย่างที่เรียกว่า ,, Original sony '' และอื่น ๆ มันจะเขียนทับตัวเองกลับไปเป็นค่าเริ่มต้น (windows, sony original, others (refind)) PS; สิ่งที่ทุกคนกล่าวว่าพิจารณาว่า ,, windows '' เป็นของฉันเขียนทับbootmgfw.efi
itchy355

1
ในระหว่างนี้ฉันได้ลองใช้งานpowercfg /h offใน w8 และนั่นก็คือ W8 ที่หักห้ามใจกับการแบ่งพาร์ทเมนต์ของ EFI .. นั่นคือจอกศักดิ์สิทธิ์ที่ฉันกำลังมองหาดูเหมือน :) ขอบคุณขอบคุณขอบคุณ!
itchy355

ฉันดีใจที่ได้ยินว่าpowercfg /h offแก้ไขปัญหาหลักของคุณ คุณอาจสนใจที่จะได้ยินว่าฉันได้พบข้อมูลที่มีการใช้งาน UEFI บางรหัสดูเหมือนจะย้ายบูตโหลดเดอร์ที่เรียกว่า "Windows Boot Manager" ไปด้านบนของรายการของพวกเขา ดังนั้นการเปลี่ยนชื่อบูตโฮลเดอร์ของคุณโดยใช้efibootmgrอาจช่วยให้คุณติดตั้ง rEFInd (หรืออะไรก็ได้ที่คุณต้องการ) ภายใต้ชื่อไฟล์ที่สมเหตุสมผลกว่า
ร็อดสมิ ธ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.