หลังจากพยายามหลายครั้งเพื่อแก้ไขปัญหานี้ในที่สุดฉันก็แก้ไขมันได้ด้วยเคล็ดลับจากแหล่งต่าง ๆ ก่อนอื่นฉันขอขอบคุณความช่วยเหลือจากทุกคนในการพยายามแก้ไขปัญหานี้ ไม่มีคำตอบใดที่ทำงานได้โดยตรง แต่พวกเขาทั้งหมดช่วยฉันในการหาวิธีแก้ปัญหาดังนั้นขอขอบคุณ
การติดตั้ง GRUB ลงใน MBR ของ / dev / sda ไม่ได้ผลเพราะฉันเชื่อว่า Windows และ Sony ทำงานได้ดีมากโดยปลอมตัวว่า Windows บู๊ตเครื่องจริง ในที่สุดฉันต้องคัดลอกไฟล์ "grubx64.efi" ไปยังไฟล์ตัวจัดการการบูตสำหรับ Windows นี่คือขั้นตอนที่ฉันทำเพื่อทำสิ่งนี้อย่างปลอดภัยและมีประสิทธิภาพ ฉันจะผ่านทุกขั้นตอนที่ฉันทำในการติดตั้ง Ubuntu เพราะใครก็ตามที่มีปัญหาคล้ายกันต้องได้รับคำตอบอย่างละเอียด
เตรียมฮาร์ดไดรฟ์สำหรับการติดตั้ง Ubuntu
- บูตเข้าสู่ Windows
- หากต้องการคุณสามารถจัดเรียงข้อมูลฮาร์ดไดรฟ์ของคุณ แต่ไม่จำเป็น
- ลดขนาดพาร์ติชัน Windows ของคุณตามจำนวนที่ต้องการ ฉันขอแนะนำให้ตัดสินใจว่าคุณต้องการพื้นที่เท่าใดสำหรับไฟล์ทั้งหมดของคุณและการติดตั้งและจากนั้นเพิ่มขนาดแรมของคุณเป็นจำนวนนี้
- สำหรับบทช่วยสอนแบบภาพเกี่ยวกับวิธีย่อขนาดพาร์ติชันของคุณคลิกที่นี่
- ตัวอย่าง: ฉันต้องการ 50GB ที่สงวนไว้สำหรับระบบ Ubuntu ของฉันและฉันมี RAM 16GB ดังนั้นฉันจึงหดพาร์ติชัน 66GB Windows จะคำนวณการย่อขนาดเป็น MB ดังนั้นคุณต้องคูณขนาดที่คุณต้องการด้วย 1024 ในกรณีของฉัน66 x 1024 = 67584MB
- หมายเหตุ: หากติดตั้งปัจจุบันของคุณไม่ได้มีอยู่แล้ว (Partition EFI System) ESP แล้วผมขอแนะนำให้ต่อไปนี้การสอนสำหรับการติดตั้งอีก บทช่วยสอนนี้มีเป้าหมายเพื่อติดตั้งบนคอมพิวเตอร์ที่มี ESP ซึ่งทำให้เกิดปัญหาการบูตโดยเฉพาะเนื่องจากมาตรการรักษาความปลอดภัยของ Windows เรียนรู้เพิ่มเติมเกี่ยวกับ UEFI และ ESP ที่นี่
Boot Ubuntu จาก Live CD หรือ USB
- เมื่อเมนู GRUB ปรากฏขึ้นให้คลิก "ลอง Ubuntu โดยไม่ต้องติดตั้ง" หากคุณไม่คุ้นเคยกับ Ubuntu ฉันแนะนำให้เล่นไปสักพักเพื่อให้แน่ใจว่านี่เป็นสิ่งที่คุณต้องการติดตั้ง โปรดทราบว่าทุกสิ่งจะโหลดช้ามากเมื่อคุณใช้แผ่นซีดีหรือ USB
ในที่สุดเมื่อ Ubuntu พร้อมใช้งานให้คลิกที่โลโก้บนเดสก์ท็อปที่ระบุว่า "ติดตั้ง Ubuntu XX.XX" กับเวอร์ชันที่คุณกำลังติดตั้ง ในกรณีของฉันมันคือ 15.04
คลิกที่เมนูตามคำแนะนำ (ฉันแนะนำให้คลิกที่กล่องกาเครื่องหมาย "ไดรเวอร์ของบุคคลที่สาม" และ "ติดตั้งการปรับปรุง" หากคุณมีการเชื่อมต่ออินเทอร์เน็ตที่รวดเร็วและโดยเฉพาะอย่างยิ่งถ้าคุณกำลังติดตั้งบน SSD
หากคุณรู้สึกว่ามีการติดตั้งที่รวดเร็วกว่าอย่าทำเครื่องหมายในช่องเหล่านี้เพราะคุณสามารถทำตามขั้นตอนเหล่านี้ได้ในภายหลัง
สำคัญ:เมื่อคุณไปถึงเมนูที่ระบุว่า "จัดสรรพื้นที่ว่างบนไดรฟ์" คุณต้องการคลิกตัวเลือกที่ระบุว่า "Something Else" เพราะนี่คือที่เราตั้งค่าพาร์ติชันที่คุณเตรียมไว้ในขั้นตอนที่ 1
สร้างพาร์ติชัน:
- สร้างพาร์ติชันสำหรับการแลกเปลี่ยน เลือกพาร์ติชันของพื้นที่ว่างจากนั้นคลิกปุ่มบวกทางด้านซ้ายล่าง ทำให้ขนาดเท่ากับ RAM ของคุณในกรณีของฉันคือ 16GB (16384MB) เลือก "หลัก" สำหรับประเภทของพาร์ติชัน "จุดเริ่มต้นของพื้นที่" สำหรับตำแหน่งและ "สลับ" เพื่อใช้เป็นส่วน หมายเหตุ: ตัวเลือกจุดเมานท์ควรหายไปเมื่อเลือก "สลับ" คลิก "ตกลง"
สร้างพาร์ติชันสำหรับไฟล์และรูททั้งหมดของคุณ นี่คือพาร์ติชันหลักที่ไฟล์และโปรแกรมทั้งหมดของคุณจะอยู่ เลือกพื้นที่ว่างคลิกปุ่มบวกทางด้านซ้ายล่าง ทำให้ขนาดเท่ากับพื้นที่ว่างที่เหลืออยู่ที่คุณมี (ตัวแก้ไขควรทำโดยอัตโนมัติ) เลือก "หลัก" สำหรับประเภทพาร์ติชัน "จุดเริ่มต้นของพื้นที่นี้" สำหรับตำแหน่ง "ระบบไฟล์เจอร์นัล Ext4" เพื่อใช้เป็นและสุดท้ายเลือก "/" (รูท) สำหรับจุดเมานท์ คลิก "ตกลง"
หมายเหตุ: ไม่ควรมี "พื้นที่ว่าง" เหลืออีก หากคุณมีบางส่วนที่เหลือให้ตรวจสอบว่าขนาดพาร์ติชันทั้งหมดของคุณเพิ่มขึ้นเป็นจำนวน MB ทั้งหมดที่คุณหดหน้าต่างในขั้นตอนที่ 1
สำคัญ:เมื่อเลือกตัวเลือกสำหรับ "อุปกรณ์สำหรับการติดตั้งบูตโหลดเดอร์" คุณต้องการเลือกตำแหน่งเดียวกันกับไดเรกทอรี "/ boot" ของคุณ เนื่องจากนี่เป็นการติดตั้งบนระบบ ESP ไดเรกทอรีการบูตของคุณจะอยู่ในตำแหน่งเดียวกับตัวจัดการการบูตของ Windows
ในกรณีของฉันนี่คือ "/ dev / sda3" แต่ควรมีคำอธิบายว่า "ตัวจัดการการบูตของ Windows" หรือบางอย่างนั้นเพื่อให้คุณทราบว่าอุปกรณ์ของคุณเปิด ESP อยู่
หากไม่มีคำอธิบายในตัวติดตั้งให้เปิด GParted แล้วดูในส่วนฉลากเพื่อหาสิ่งที่อธิบายถึงตัวจัดการการบูตของ Windows นี่คือตำแหน่งที่คุณกำลังมองหา เลือกอุปกรณ์นั้นใน "อุปกรณ์สำหรับการติดตั้งบูตโหลดเดอร์"
ตอนนี้คลิกปุ่ม "ติดตั้งทันที" ที่ด้านล่างขวา นี่คือจุดของการไม่กลับมา ต่อเนื่องหากคุณแน่ใจว่าคุณได้ตั้งค่าทุกอย่างถูกต้อง
เมื่อการติดตั้งเสร็จสิ้นอย่าคลิกรีสตาร์ท โปรดคลิกลิงก์"ลองใช้งาน Ubuntu"และไปยังขั้นตอนที่ 7
ปิดโปรแกรมและหน้าต่างที่เปิดอยู่ทั้งหมด
หมายเหตุ: ในส่วนนี้แทนที่ "/ dev / sda3" ด้วยอุปกรณ์ที่คุณเลือกสำหรับการติดตั้งบูตโหลดเดอร์เมื่อสิ้นสุดขั้นตอนที่ 6
เปิด Terminal และทำสิ่งต่อไปนี้ในขณะที่อ่านอย่างละเอียดและใช้เวลาของคุณ
เราจำเป็นต้องตรวจสอบว่าไฟล์ Windows Boot Manager ของคุณอยู่ที่ไหน เป็นไปได้มากที่สุดที่จะอยู่ในเส้นทางของ "/EFI/Microsoft/Boot/bootmgfw.efi" เช่นเดียวกับฉัน แต่เราต้องตรวจสอบให้แน่ใจ
วิธีเดียวที่ฉันรู้วิธีการทำคือการอัปเดตด้วงและแจ้งให้เราทราบว่าพบตัวจัดการการบูตได้ที่ไหน ทำสิ่งนี้โดยพิมพ์ข้อความต่อไปนี้อย่าลืมแทนที่ "/ dev / sda3" ด้วยอุปกรณ์ที่คุณติดตั้งบูตโหลดเดอร์ไว้ใน:
sudo mount /dev/sda3 /mnt
cd /mnt
sudo update-grub
cd /mnt
คำสั่งเป็นสิ่งจำเป็นเพื่อที่จะได้เป็นไดเรกทอรีที่ด้วงถูกติดตั้งและยังจะเป็นประโยชน์ต่อมาเมื่อมีการนำไปยังไดเรกทอรีที่แตกต่างกัน update-grub
คำสั่งควรคายบางสิ่งบางอย่างออกมาอย่างดังต่อไปนี้ นี่คือสิ่งที่ฉันถ่มน้ำลาย:
jrichter@RICKY:~$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.19.0-22-generic
Found initrd image: /boot/initrd.img-3.19.0-22-generic
Found linux image: /boot/vmlinuz-3.19.0-15-generic
Found initrd image: /boot/initrd.img-3.19.0-15-generic
Found Windows Boot Manager on /dev/sda3@/EFI/Microsoft/Boot/bootmgfw.efi
done
ดูที่บรรทัดสุดท้ายบรรทัดก่อน "เสร็จสิ้น" เราควรดูว่าตัวจัดการการบู๊ตถูกพบที่ไหน Mine บอกว่าพบตัวจัดการการบูตของ Windows /dev/sda3
ที่ตำแหน่ง/EFI/Microsoft/Boot/bootmgfw.efi
นี่คือตำแหน่งที่แน่นอนของไฟล์บูตที่เรียกว่าเมื่อระบบของคุณบูทตามปกติและนี่คือสิ่งที่เราต้องเปลี่ยน
หมายเหตุ:หากคุณได้รับข้อผิดพลาดในการอัปเดต GRUB หรือไม่พบตำแหน่งสำหรับตัวจัดการการบูตของ Windows คุณอาจติดตั้งอุปกรณ์ผิดหรือติดตั้งตัวโหลดการบูตลงบนอุปกรณ์ที่ไม่ถูกต้องในระหว่างการติดตั้ง
หากทุกอย่างทำงานโดยไม่มีข้อผิดพลาดและตอนนี้คุณเข้าใจไฟล์และตำแหน่งที่บู๊ต Windows แล้วเราก็พร้อมที่จะดำเนินการต่อไป สำหรับขั้นตอนที่เหลืออย่าลืมเปลี่ยนตำแหน่งที่ไฟล์บู๊ตของฉันอยู่ด้วยตำแหน่งของคุณแม้ว่าฉันจะเดิมพันพวกเขาก็เหมือนกัน
ดำเนินการต่อโดยพิมพ์คำสั่งต่อไปนี้:
ไปที่ไดเรกทอรีที่ไฟล์บู๊ตของคุณอยู่:
cd EFI/Microsoft/Boot
คัดลอกไฟล์บูต Windows ปกติไปยังข้อมูลสำรองและไฟล์ใหม่ที่เราเรียกว่า "bootwin.efi" ซึ่งเราจะตั้งให้ Windows 7 บูตเข้าสู่ด้วง:
sudo cp bootmgfw.efi bootmgfw.efi.bkp
sudo cp bootmgfw.efi bootwin.efi
คัดลอกไฟล์โหลดเดอร์ GRUB ไปยังไฟล์บูต Windows ปกติ นี่เป็นการปลอมเครื่องของคุณโดยคิดว่ากำลังโหลด Windows แต่จะโหลดเมนู GRUB แทน พิมพ์ต่อไปนี้:
cd /mnt/EFI
sudo cp ubuntu/grubx64.efi Microsoft/Boot/bootmgfw.efi
เปลี่ยนกลับไปเป็นไดเรกทอรีหลักถอดอุปกรณ์บูตโหลดเดอร์ของคุณและรีบูตคอมพิวเตอร์ โปรดทราบว่าคำสั่งเพื่อยกเลิกการต่อเชื่อมเรียกว่าumount
NOT unmount
:
cd
sudo umount /dev/sda3
sudo reboot
หลังจากคอมพิวเตอร์รีบูตเครื่องควรบูตเข้าสู่เมนูด้วง
หมายเหตุ: เราไม่ได้ใช้ Live CD หรือ USB อีกต่อไปดังนั้นตรวจสอบให้แน่ใจว่าได้ลบออกแล้ว หากไม่ได้บูตไปที่ GRUB คุณอาจทำผิดพลาดไปตามถนนหรือไฟล์ที่เราคัดลอกมา ("bootmgfw.efi") ไม่ใช่ไฟล์ที่เรียกว่าเมื่อ Windows Boot Manager เริ่มทำงาน
- หากคุณพบข้อผิดพลาดนี้ฉันขอแนะนำให้ดาวน์โหลด rEFInd ลงในซีดีที่สามารถบู๊ตได้ ใส่แผ่นซีดีที่สามารถบู๊ตได้และเริ่มคอมพิวเตอร์ของคุณ rEFInd ควรจะสามารถเห็นไฟล์บูตทั้งหมดและให้ตัวเลือกในการบูต ฉันแนะนำให้ทำตามตัวเลือกเหล่านี้จนกว่าคุณจะพบตัวเลือกที่บู๊ต Windows ได้ตามปกติ หมายเหตุ: ไฟล์ที่ถูกเรียกเมื่อบู๊ตอยู่ภายใต้ตัวเลือกใน rEFInd ใช้สิ่งนี้เป็นไฟล์ที่จะคัดลอกไปด้วย "grubx64.efi"
เมื่อคุณโหลดเมนูด้วงแล้วกรุณาบู๊ตเข้า Ubuntu
หมายเหตุ: หากดำเนินการทุกขั้นตอนอย่างถูกต้องการเลือกตัวเลือก Boot Manager ของ Windows ควรนำคุณกลับไปที่เมนู GRUB นี่เป็นเพราะเราคัดลอกไฟล์ไว้เพื่อบู๊ต Windows Boot Manager พร้อมไฟล์ที่จะบู๊ตด้วง
ตอนนี้เรากลับมาที่ Ubuntu แล้วเปิด Terminal และพิมพ์คำสั่งต่อไปนี้:
เริ่มเทอร์มินัลผู้ดูแลระบบโดยพิมพ์:
sudo -s
สิ่งนี้ทำให้เราสามารถสร้างคำสั่งระดับรูทได้โดยไม่ต้องพิมพ์ sudo ทุกครั้ง ตอนนี้พิมพ์ต่อไปนี้เพื่อค้นหาไฟล์ที่จะเพิ่มรายการ Windows ไปที่:
cd /etc/grub.d
ls
ควรให้รายการไฟล์แก่คุณ ค้นหาหนึ่งที่ดูเหมือน "XX_custom" โดยที่ XX คือตัวเลขอาจเป็นหลายสิบ ในกรณีของฉันมันคือ "40_custom" นี่คือสิ่งที่ไฟล์ควรมีลักษณะ:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
พิมพ์คำสั่งต่อไปนี้เพื่อเพิ่มรายการเมนูสำหรับ Windows (แทนที่ "40_custom" ด้วยชื่อไฟล์ที่เหมาะสม):
nano 40_custom
เพิ่มรายการเมนูด้านล่างความคิดเห็นทั้งหมด (แสดงด้วย #)
หมายเหตุ: แทนที่ 'hd0, gpt3' ด้วยฮาร์ดไดรฟ์และอุปกรณ์ที่เหมาะสมที่บูตโหลดเดอร์ของคุณ (ซึ่งเป็นตำแหน่งเดียวกับที่คุณติดตั้งบูตโหลดเดอร์ของคุณในระหว่างการติดตั้งโดยที่ gpt3 แสดงถึง sda3 เป็นต้น) นอกจากนี้ให้แทนที่บรรทัดหลัง "chainloader" ด้วยตำแหน่งเดียวกับที่คุณกำหนดว่าไฟล์บูต Windows ของคุณจะอยู่ใน
ตอนนี้ให้พิมพ์ดังต่อไปนี้ตรวจสอบให้แน่ใจว่าชื่อไฟล์ท้ายที่สุดคือชื่อไฟล์ที่เราสร้างขึ้นก่อนหน้านี้โดยการคัดลอก "bootmgfw.efi" ฉันชื่อเหมือง "bootwin.efi":
menuentry "Windows 7" {
root='hd0,gpt3'
chainloader /EFI/Microsoft/Boot/bootwin.efi
}
ตอนนี้กด "Ctrl-X" แล้วกด "Y" แล้วกด "Enter" เพื่อบันทึกการเปลี่ยนแปลง ตรวจสอบให้แน่ใจว่าคุณอยู่ในsudo -s
อาคารผู้โดยสารมิฉะนั้นคุณจะไม่ได้รับอนุญาตให้ทำการเปลี่ยนแปลง
และสุดท้ายเราต้องอัพเดต GRUB ด้วยรายการใหม่ของเราและรีบูตระบบเพื่อให้แน่ใจว่าทุกอย่างทำงานได้ ทำได้โดยพิมพ์:
update-grub
reboot
เมื่อระบบบูทของคุณ GRUB ควรโหลดตามค่าเริ่มต้นและคุณจะเห็นรายการใหม่พร้อมชื่อที่คุณให้ไว้ในไฟล์ "XX_custom" ในกรณีของฉันมันบอกว่า "Windows 7" เลือกตัวเลือก Windows เพื่อให้แน่ใจว่าโหลดอย่างถูกต้องเนื่องจากควรบู๊ต Windows ในลักษณะเดียวกับที่ทำก่อนการติดตั้ง
รีบูทและยืนยันว่าตัวเลือก Ubuntu ยังคงใช้งานได้
ยินดีด้วย! คุณทำเสร็จแล้วและหากทุกอย่างดำเนินไปอย่างถูกต้องคุณได้ติดตั้ง Ubuntu อย่างเป็นทางการบนเครื่องที่มี ESP พร้อมกับ Windows ตอนนี้คุณสามารถบูตสองระบบปฏิบัติการที่ดีที่สุดสองระบบได้แล้ว :)