เพิ่มรายการ Windows 10 ใน GRUB OS


29

ฉันเพิ่งได้รับคอมพิวเตอร์จากโรงเรียน มันมาพร้อมกับ Windows 8.1 ที่ติดตั้ง ฉันติดตั้ง Windows 8.1 อีกชุดหนึ่ง (ดังนั้นจึงต้องใช้สิทธิ์การใช้งาน Windows Pro ในตัว) และอัปเกรดเป็น Windows 10 ฉันจึงติดตั้ง Ubuntu พร้อมทั้ง Windows 8 และ 10

โปรดทราบว่าฉันทำพาร์ติชัน ext2 255MB แยกต่างหากสำหรับ / boot

ตอนนี้เมื่อฉันบูตคอมพิวเตอร์ฉันจะเห็นพรอมต์ด้วงก่อน (ฉันยกเลิกการซ่อนพรอมต์ด้วง 'เพราะฉันชอบแบบนั้น) ด้วยตัวเลือก Windows 8 และ Ubuntu อย่างไรก็ตามไม่มีตัวเลือก Windows 10 หากฉันเลือก Ubuntu คอมพิวเตอร์จะบู๊ตเข้าสู่ Ubuntu อย่างไรก็ตามหากฉันเลือกตัวเลือก Windows 8 ฉันจะถูกส่งไปยัง bootloader ของ Windows ซึ่งจะให้ตัวเลือกในการบูต Windows 8 หรือ Windows 10 ได้ (อย่างไรก็ตาม ณ จุดนี้คอมพิวเตอร์โหลดเคอร์เนลและทั้งหมดแล้ว เห็นได้ชัดว่า Microsoft เข้าใจผิดเกี่ยวกับแนวคิดของบูตโหลดเดอร์และตัดสินใจว่านั่นหมายถึง "บูตจริงทั้งระบบก่อนที่จะแสดง bootloader จริง ๆ " โดยทั่วไป Microsoft)

ฉันจะปิดการใช้งาน bootloader ของ Windows และเพิ่มตัวเลือก Windows 10 ใน GRUB ได้อย่างไร แก้ไข: มีคนตอบว่าบอกให้ฉันปิดการใช้งาน bootloader ของ Windows อย่างไรก็ตามฉันยังไม่รู้วิธีเพิ่ม Windows ในรายการ GRUB OS มีใครช่วยอะไรได้บ้าง

แก้ไข 2: หลังจากลบ Windows 10 จาก bootloader ของ Windows ด้วย EasyBCD ดูเหมือนว่าหลังจากรีบูตสักสองสามครั้งมันจะคลายตัวเองอย่างต่อเนื่องและ Windows 10 จะปรากฏขึ้นอีกครั้ง อย่างไรก็ตามหลังจากนั้นฉันก็ลบ Windows 10 ออกจากรายการ OSes ใน msconfig และดูเหมือนว่าจะยังคงถูกลบอยู่

อย่างไรก็ตามฉันยังไม่ได้จัดการเพื่อให้ Windows 10 ปรากฏใน GRUB มันเหมือนกับว่าด้วงไม่ตรวจจับมัน

นอกจากนี้ฉันจะใส่คำถามนี้เพื่อให้ผู้คนเห็น - ฉันได้ลองใช้boot-repairอย่างไรก็ตามมันไม่ได้ช่วยอะไรเลย


1
@ daltonfury42 หยุดเชื่อถ้าคุณไม่ฟังหรือไม่เข้าใจข้อกำหนดของ OP คืออะไร! การแนะนำเครื่องมือที่เน้นปัญหาที่พบบ่อยในการตั้งค่าการบูตแบบดั้งเดิมโดยทั่วไปสำหรับการติดตั้ง UEFI แบบผิดปกติที่มีข้อกำหนดพิเศษคือการทำให้เข้าใจผิดและการต่อต้านการผลิต
LiveWireBT

2
@LiveWireBT ฉันขอโทษ ฉันเห็นคำตอบของคุณ ฉันได้ลบความคิดเห็นของฉัน (และหยุดความเชื่อ: P) ขอบคุณ!
daltonfury42

1
ฉันคิดว่าฉันจะลบทั้งพาร์ติชัน Windows 10 และย้ายไปยัง VM ต่อไป
Hitechcomputergeek

จริงๆแล้วไม่แน่ใจว่าทำไมผู้คนถึงยังถอนตัวออกจากเรื่องนี้เนื่องจาก IMO ไม่ใช่คำถามที่ยอดเยี่ยม อย่างไรก็ตามปีนี้ฉันแก้ไขมันด้วยวิธีอื่น - โดยการแปลงจาก MBR เป็น GPT และ UEFI boot โดยทั่วไปฉันแปลงรูปแบบการแบ่งพาร์ติชันเป็น GPT ปรับขนาดพาร์ติชัน Windows เพิ่มพาร์ติชันระบบ EFI และใส่ rEFInd ไว้บนนั้นและสร้าง Windows BCD โดยใช้ดิสก์การติดตั้ง Windows ตอนนี้ระบบบู๊ตโดยใช้การบู๊ต UEFI ทำให้ง่ายต่อการเล่นกับระบบปฏิบัติการ ตรงกันข้ามกับที่อินเทอร์เน็ตบอกไว้มันไม่ยากเกินกว่าที่จะแปลงการติดตั้ง Windows จาก BIOS ไปเป็น UEFI แต่ก็ไม่ง่ายเช่นกัน
Hitechcomputergeek

1
สำหรับทุกคนในอนาคตที่ต้องการทำสิ่งนี้และต้องการใช้ไบออสผมเชื่อว่าคำตอบนั้นอยู่ใน Windows BCD ฉันเชื่อว่าการติดตั้ง Windows 10 ไม่มี bootloader หรือ BCD ที่เหมาะสมหรืออะไรบางอย่างและไม่สามารถบูตได้อย่างอิสระ หากทำอย่างถูกต้องฉันมีลางสังหรณ์ที่ GRUB ควรเริ่มต้นค้นหาพาร์ติชัน Windows 10 โดยอัตโนมัติ
Hitechcomputergeek

คำตอบ:


25

ใช้:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

คำสั่งในเทอร์มินัลของ Ubuntu อาจจะช่วยแก้ปัญหาของคุณได้

โดยคำสั่งนี้ระบบจะตรวจจับการติดตั้ง Windows ของคุณโดยอัตโนมัติและเพิ่มลงในรายการ GRUB


2
นี่มันใช้งานไม่ได้ ดูเหมือนไม่พบพาร์ติชัน Windows 10
Hitechcomputergeek

1
ที่จริงฉันมีปัญหาเดียวกันกับระบบของฉัน (มี windows 10 และ Ubuntu 14.04) และมันก็แก้ไขได้ด้วยคำสั่งนี้
Neel Shah

คำสั่งใดแก้ไขมันupdate-grubหรือgrub-install? และคุณมีพาร์ติชั่น / บูตแยกกันหรือไม่? สิ่งที่ฉันมีพาร์ติชันสำหรับบูตแยกต่างหากฉันคิดว่าจริง ๆ แล้วคือ sda6
Hitechcomputergeek

การทำทั้งสองคำสั่ง (ชัด) ไม่ได้แก้มัน
Hitechcomputergeek

7
sudo update-grubทำมัน
thameera

21

บางครั้ง os-prober ผิด

ดู UUID ของพาร์ติชัน Windows 10 ของคุณเพื่อดูตัวอย่าง:

sudo blkid /dev/sda2

จากนั้นแก้ไข/etc/grub.d/40_customและท้ายไฟล์เพิ่ม:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

อย่าลืมเปลี่ยน UUID

และในที่สุดก็อัพเดตไฟล์กำหนดค่า grub ของคุณ:

sudo update-grub

แหล่ง


2
ควรทราบว่าสำหรับ windows 10 มักจะเป็นพาร์ติชันแรกไม่ใช่ระบบ Windows (เช่น sdb2 ถูกต้องและ sdb1 ไม่ใช่) นี่เป็นเพราะวิธีการจัดเก็บ windows 10 บนดิสก์ในระหว่างการติดตั้งและพาร์ติชันระบบสำรอง หรือซ่อมแซมระบบก่อนเสมอ) ด้วงมักจะล้มเหลวในการหาพาร์ติชั่นที่สองหากพาร์ติชั่นแรกบนดิสก์นั้นมีบางสิ่งที่สามารถบู๊ตได้ วิธีที่ง่ายที่สุดในการค้นหา UUID ที่ถูกต้องคือการค้นหาพาร์ติชันที่ใหญ่ที่สุดผ่านทางsudo fdisk -lและจับคู่กับผลลัพธ์ของ blkid
janmyszkier

9

วิธีการแก้ปัญหานี้ให้รายการที่เหมาะสมในเมนู grub2 และ chainloads โดยตรงใน Windows 10 โดยไม่อ้างอิงถึง BIOS มันมาจากhttps://ihaveabackup.net/article/grub2-entry-for-windows-10-uefiดังนั้นฉันจึงไม่อ้างสิทธิ์เครดิต มันเป็นความโล่งใจที่จะหาทางแก้ไข

สั้น ๆ แก้ไข /etc/grub.d/40_custom และเพิ่ม:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

ในการค้นหา UUID สำหรับ --set = root line (CC66-4B02 ในตัวอย่าง) คุณใช้ sudo fdisk -l เพื่อระบุพาร์ติชัน EFI จากนั้น sudo blkid / dev / sda1 (หรืออะไรก็ตาม) เพื่อค้นหา UUID ของพาร์ติชัน EFI . โปรดทราบว่าไม่ใช่พาร์ติชัน Windows แต่เป็น EFI ที่คุณต้องการ เมื่อคุณบันทึกการแก้ไขแล้วให้เรียกใช้ sudo update-grub เพื่อสร้างไฟล์ /boot/grub/menu.cfg จากนั้นรีสตาร์ทเพื่อทดสอบ


ฉันเดาว่าคำสั่ง sudo / dev / sda1 ควรเป็น sudo blkid / dev / sda1
makapuf

@makapuf - ถูกต้องแน่นอนขอบคุณ การแก้ไข
peterthevicar

ฉันได้ทำตามบทช่วยสอนที่แน่นอนและฉันได้รับ "ข้อผิดพลาด: ไม่พบพาร์ติชัน" เมื่อฉันพยายามบูตรายการ เมื่อติดตั้งพาร์ติชันดูเหมือนว่า "EFI / Microsoft / Boot / bootmgfw.efi" ไม่มีอยู่ในพาร์ติชันนั้น
Xerus

8

ใช้แอพนี้ EasyBCD สำหรับ windows http://neosmart.net/EasyBCD/ดาวน์โหลดเวอร์ชั่นฟรีแล้วติดตั้ง

เมื่อคุณเปิดมันคุณจะเห็นรายการสำหรับ windows 8 และอีกหนึ่งสำหรับ windows 10

ลบรายการ windows 8 และคุณจะไปได้ดี

อัปเดต หลังจากทำตามขั้นตอนด้านบนแล้วกลับไปที่ Ubuntu

เปิดเครื่องโดยกดctrl+ alt+T

จากนั้นคัดลอกคำสั่งนี้ไปยังคำสั่งถัดไป

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

และโดยสิ่งนี้คุณจะติดตั้งเครื่องมือที่เรียกว่า boot-repair

เปิดการซ่อมแซมการบูตจากเส้นประและคุณจะได้หน้าต่างนี้

ป้อนคำอธิบายรูปภาพที่นี่

เลือกการซ่อมแซมที่แนะนำและทำตามขั้นตอน

หมายเหตุคุณจะต้องเชื่อมต่อกับอินเทอร์เน็ตเมื่อใช้การซ่อมแซมการบูต


1
@ ไฮเทคคอมพิวเตอร์ถ้าคุณต้องการความช่วยเหลือเพิ่มเติมแจ้งให้ฉันทราบว่าฉันจะบูตไปที่ windows และทำให้คุณมีภาพหน้าจอ
RonnieDroid

นั่นเพิ่ม Windows 10 ใน GRUB หรือไม่ (ให้ฉันเดา: ไม่) ฉันต้องการที่จะสามารถเข้าถึงทั้งสาม OS จาก GRUB และนั่นแก้ปัญหาได้เพียงบางส่วนเท่านั้น
Hitechcomputergeek

ฉันอัปเดตคำถามเพื่อถามวิธีเพิ่ม Windows 10 ในรายการ GRUB OS ฉันอัปเกรดคำตอบของคุณเพราะเป็นส่วนหนึ่งของปัญหา แต่เนื่องจากฉันยังต้องเพิ่ม Windows 10 ใน GRUB ฉันยังไม่ยอมรับคำตอบ
Hitechcomputergeek

2
นอกจากนี้ฉันสังเกตเห็นว่าคุณพูดเพื่อเปิด Boot Repair จากเส้นประ แต่บรรทัดsudo apt-get install -y boot-repair && boot-repairจะเปิดขึ้นมาแล้ว
Hitechcomputergeek

1
คุณยังสามารถใช้เครื่องมือนี้ใน "test mode of ubuntu (โหมด live cd)" iso ที่คุณสามารถติดตั้งเรียกใช้และใช้งานได้หลังจากเชื่อมต่อกับอินเทอร์เน็ตหรือภรรยา
Alamjit Singh

4

เท่าที่ฉันเข้าใจคำถามของคุณคุณมีสองการติดตั้ง Windows ที่แตกต่างกันในฮาร์ดไดรฟ์หนึ่งตัวหรือมากกว่าและคุณไม่ต้องการให้โหลดเดอร์ของ Windows เข้าหาทางหรือจัดการกับการติดตั้ง Windows ทั้งสอง ฉันจำได้ว่ามันเป็นไปได้ในการตั้งค่าดั้งเดิมเพื่อบูตเคอร์เนล Windows โดยตรงจาก Grub (ฉันอาจจะผิดที่นี่) แต่ฉันไม่สามารถทำได้ในการตั้งค่า UEFI การกำหนดค่า bootloader Windows อิสระสองตัวที่สามารถเรียกได้จาก Grub อย่างอิสระควรใกล้เคียงกับสิ่งที่คุณกำลังมองหา

มันมาพร้อมกับ Windows 8.1 ที่ติดตั้ง

ฉันจะสมมติว่านี่เป็นคอมพิวเตอร์ที่มีความสามารถใน UEFI

  1. โปรดตรวจสอบว่าคอมพิวเตอร์มีความสามารถใน UEFI จริง ๆ (ฉันจะลบคำตอบถ้าไม่ใช่) และทำความคุ้นเคยกับความแตกต่างระหว่าง BIOS และ UEFI ( โหมดการบูตที่แตกต่างกัน) , efibootmgr, ตารางพาร์ติชันที่แตกต่างกัน, พาร์ติชันระบบ EFI (ESP), loader EFI ... )
  2. จากนั้นตรวจสอบว่าติดตั้งระบบปฏิบัติการทั้งหมดในโหมด UEFI แล้วและตรวจสอบว่าคุณมีตารางพาร์ติชัน GPT คุณสามารถใช้ Windows 'dismเพื่อสำรองและกู้คืนพาร์ทิชันไปยังเค้าโครงตารางพาร์ติชันใหม่และใช้พรอมต์คำสั่งจากสื่อการติดตั้ง Windows ล่าสุดเพื่อติดตั้ง bootloader รายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ในจุดต่อไป
    • เนื่องจากคุณได้รับการแนะนำให้ลองใช้เครื่องมืออื่น ๆ ที่ไม่ได้แก้ไขปัญหาของคุณคุณจะต้องยกเลิกการเปลี่ยนแปลงเหล่านี้กลับสู่สภาพดั้งเดิมไม่เช่นนั้นจะทำให้เกิดความสับสนมากขึ้นเรื่อย ๆ ขอโทษสำหรับเรื่องนั้น. :(
  3. คุณสามารถใช้คำตอบของฉันจากวิธีการบูต Windows 8 จากพาร์ติชัน MBR ดั้งเดิมในโหมด UEFI ผ่าน GRUB?
    • คำตอบนี้จะติดตั้งการกำหนดค่าบูตโหลดเดอร์ Windows อิสระผ่านbcdbootในตำแหน่งอื่นที่ Grub จะเรียกมันว่า เพื่อความสะดวกฉันได้เลือก Windows root partition คุณจะต้องทำสิ่งนี้สำหรับการติดตั้ง Windows ทุกครั้งเพื่อให้การติดตั้ง Windows ทุกครั้งมีของตัวเองและจะบูตเองเท่านั้น (ล้างเมนูการบูต Windows แต่ละรายการจากรายการอื่น ๆ )
    • จำไว้ว่าคุณต้องสร้างแต่ละรายการสำหรับการติดตั้ง Windows แต่ละครั้งที่คุณต้องการบูต /etc/grub.d/40_customและทำตามคำแนะนำและคำอธิบายเกี่ยวกับ UUIDs พาร์ติชันและตารางพาร์ติชัน
    • อาจปิดการใช้งานทุกคุณสมบัติกึ่งสมาร์ทที่ตรวจจับระบบปฏิบัติการที่แตกต่างกันเช่น OS-prober ใน Grub ( GRUB_DISABLE_OS_PROBER) หรือการแก้ไขปัญหาการบูตด้วย Windows หรือการซ่อมแซมการบูต (หรือล้างด้วยตนเองหลังจากนั้น)

หมายเหตุ: คำขอของคุณคือสามารถจัดการระบบปฏิบัติการทั้งหมดด้วย Grub ได้ แต่ด้วย UEFI คำว่า "dualboot" แบบดั้งเดิมจะกลายเป็นชื่อเรียกผิด UEFI อนุญาตให้มีการรวมกันของหลาย bootloaders ใน ESP และคุณสามารถเลือกที่จะบูต (ถ้าพวกเขาได้รับการลงทะเบียนในเฟิร์มแวร์ UEFI และเฟิร์มแวร์ผู้ผลิตไม่ได้ออกจากสเป็คสนับสนุนเช่น Windows บูตเท่านั้น) สิ่งที่น่าเศร้าก็คือมีเพียงไม่กี่คนเท่านั้นที่คิดเกี่ยวกับการติดตั้ง Windows (Linux ) มากกว่าหนึ่งรุ่น Linux หรือ Ubuntu หนึ่งรุ่นบนคอมพิวเตอร์หนึ่งเครื่อง(หรือฮาร์ดไดรฟ์ที่ใช้กับคอมพิวเตอร์หลายเครื่องและบู๊ตการติดตั้งต่างกันของระบบปฏิบัติการรุ่นเดียวกันบนคอมพิวเตอร์แต่ละเครื่อง) สิ่งเหล่านี้ส่วนใหญ่เป็นไปได้อยู่แล้ว แต่กลไกใน Windows และ Ubuntu (Fedora, …) เลือกที่จะเขียนทับสิ่งที่อยู่ในเนมสเปซของพวกเขาภายใต้สมมติฐานที่ผิด ๆ

(ฉันทำการบูท Windows8 / 10, Ubuntu, Ubuntu LTS และ Fedora บนคอมพิวเตอร์เครื่องหนึ่งและมี tinkered สองสามครั้งด้วยการบูท UEFI ภายใต้ข้อกำหนดที่แตกต่างกัน)


1
ฉันไม่ได้ใช้ Windows แต่มีใครลองคัดลอก / EFI / Windows ไปที่ / EFI / Windows10 และ / หรือ / EFI / Windows8 และแก้ไข BCD แต่ละรายการให้เป็นรุ่นนั้นหรือไม่ และจากนั้นใน UEFI สร้างรายการสำหรับแต่ละ หากใช้งานได้จาก UEFI แล้วด้วงสามารถเชื่อมโยงเข้าด้วยกันโดยตรง
oldfred

@oldfred นั่นคือสิ่งที่ฉันต้องการชี้ไปที่ส่วนล่างและอาจมีพารามิเตอร์สำหรับbcdbootระบุไดเรกทอรีเป้าหมายอื่น แต่ฉันไม่แน่ใจ การทำการปลดล็อกไบนารีของ EFI อื่น ๆ จาก ESP เพียงอันเดียวนั้นช่วยลดความยุ่งยาก40_customและทำให้เกิดข้อผิดพลาดได้น้อยลง ฉันคิดว่าถูกเน้นมากเกินไปในสถานการณ์หลายฮาร์ดไดรฟ์ (ในกรณีนี้คุณควรจะสามารถบอก bcdboot ให้บูต Windows บน hdd2 จาก ESP บน hdd1 ได้ฉันคิดว่า) m (
LiveWireBT

คอมพิวเตอร์มีความสามารถใน UEFI แต่ฉันก็ไม่รู้จริงๆว่า wtf ขึ้นอยู่กับพาร์ทิชันในขณะนี้ โรงเรียนมีการติดตั้งอิมเมจ Windows 8 แบบกำหนดเองและถึงแม้ว่ามันจะใช้ UEFI และ Secure Boot (ฉันเชื่อว่า BIOS ได้รับการกำหนดค่าให้อนุญาตทั้ง UEFI และ legacy boot ในตอนนี้ฉันจำได้ว่าปิดการใช้งาน Secure Boot) MBR ที่นี่มีภาพหน้าจอ: imgur.com/1vDS4jf (ใช่ฉันวางแผนที่จะปรับขนาดพาร์ทิชันในไม่ช้า) นอกจากนี้อูบุนตูเอง (จาก grepping dmesg) ดูเหมือนว่าจะไม่ได้เริ่มต้นในโหมด EFI แต่ ฉันไม่รู้ว่าด้วงตัวเองสามารถ
Hitechcomputergeek

@Hitechcomputergeek ภาพหน้าจอแสดงตารางพาร์ติชัน msdos / MBR พร้อมด้วยพาร์ติชันเสริมและไม่มีพาร์ติชัน EFI อย่างที่ได้กล่าวไปแล้วก่อนหน้านี้คุณควรมี GPT และคุณสามารถใช้dismกับพาร์ติชัน Windows
LiveWireBT

จะเริ่มต้นเป็น UEFI แต่จากนั้นเริ่มระบบปฏิบัติการอื่น ๆ ที่ไม่ใช่ UEFI หรืออะไรบางอย่าง UEFI กำลังสับสน แก้ไข: GRUB ไม่ได้เริ่มต้นเป็น UEFI ฉันไม่รู้ว่าเกิดอะไรขึ้นกับ Windows ดั้งเดิม จริง ๆ แล้วลองคิดดูฉันคิดว่ามันเป็นไปได้ที่มันจะไม่เป็น UEFI ในตอนแรก ฉันคิดว่ามันเป็นเพราะมันเป็นไปไม่ได้เลยที่จะเข้าไปในไบออสเพราะสิ่งจำศีลใน Windows 8 เว้นแต่คุณจะบู๊ตครั้งแรกแล้วกด "เริ่มใหม่" จากนั้นพยายามเข้าไปในไบออส ฉันไม่จำเป็นต้องทำเช่นนั้นอีกเลยตั้งแต่ติดตั้ง Ubuntu (และด้วง)
Hitechcomputergeek

2

เพียงเข้าสู่ระบบ Ubuntu OS ของคุณเปิดเทอร์มินัล:

sudo update-grub

รีบูต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.