ฉันจะซ่อมด้วงได้อย่างไร (จะติดตั้ง Ubuntu ได้อย่างไรหลังจากติดตั้ง Windows)


344

ฉันติดตั้ง Windows 7 ซึ่งกินไฟล์บู๊ตของ Ubuntu เมื่อเริ่มคอมพิวเตอร์มันจะตรงไปที่ Windows โดยไม่ต้องให้ฉันเลือกบูตอูบุนตู

ฉันจะคืน Ubuntu ได้อย่างไร


ฉันคิดว่ามันเป็นงานทั่วไปฉันมี HDD สองตัวและ Ubuntu + Windows ฉันหวังว่าคุณสามารถซ่อมแซมได้ด้วยวิธีที่ถูกต้อง พยายามที่จะทำตามนี้กวดวิชา คำถามใด ๆ ถามฉัน!
antivirtel

1
ที่เกี่ยวข้อง (เมื่อติดตั้ง GRUB ไปยังMBR ของไดรฟ์ผิด ): ปัญหาการช่วยเหลือด้วงหลังจากติดตั้ง Ubuntu
Eliah Kagan

ใช่คุณสามารถทำได้คุณจะต้องทำการบู๊ตปกติและติดตั้งด้วย windows จากนั้นมันควรจะแสดงในเมนูการบูต Grub ที่เริ่มต้นคอมพิวเตอร์
Rampoo1208

ฉันรู้ว่านี่เป็นเธรดเก่า แต่ฉันแก้ไขปัญหาด้วยการเปลี่ยนโหมดการบูตในไบออสจาก UEFI เป็น Legacy

1
หมายเหตุ: คำตอบที่ยอมรับได้เป็นคำแนะนำทั่วไปเกี่ยวกับวิธีการซ่อมแซมด้วง นอกจากนี้ยังสามารถใช้กับสถานการณ์ที่หลากหลายเมื่อโปรแกรมติดตั้ง GRUB เขียนอย่างไม่ถูกต้อง (ubiquity)
Danatela

คำตอบ:


348

เมื่อคุณติดตั้ง Windows Windows จะถือว่าเป็นระบบปฏิบัติการ (OS) เพียงตัวเดียวในเครื่องหรืออย่างน้อยก็ไม่ได้มีบัญชีสำหรับ Linux ดังนั้นจึงแทนที่ GRUB ด้วยบูตโหลดเดอร์ของตนเอง สิ่งที่คุณต้องทำคือแทนที่ Windows boot loader ด้วย GRUB ผมเคยเห็นคำแนะนำต่าง ๆ สำหรับการเปลี่ยนด้วงโดยสิรอบกับคำสั่งด้วงหรือบางอย่าง แต่ฉันวิธีที่ง่ายที่สุดก็คือการเข้ามาของคุณติดตั้งและรันchroot ดีมากเพราะช่วยให้คุณสามารถทำงานกับการติดตั้งจริงของคุณแทนที่จะพยายามเปลี่ยนเส้นทางสิ่งต่าง ๆ ที่นี่และที่นั่น มันสะอาดจริงๆupdate-grubchroot

นี่คือวิธี:

  1. บูตจากซีดีสดหรือ USB สดในโหมด "ลอง Ubuntu"
  2. กำหนดหมายเลขพาร์ติชันของพาร์ติชันหลักของคุณ sudo fdisk -l, sudo blkidหรือ GParted (ซึ่งควรจะติดตั้งอยู่แล้วโดยค่าเริ่มต้นในเซสชั่นมีชีวิตอยู่) สามารถช่วยให้คุณที่นี่ ฉันจะสมมติในคำตอบนี้ว่ามัน/dev/sda2แต่ให้แน่ใจว่าคุณใช้หมายเลขพาร์ทิชันที่ถูกต้องสำหรับระบบของคุณ!

    หากพาร์ติชั่นหลักของคุณอยู่ใน LVMอุปกรณ์นั้นจะอยู่ในตำแหน่งที่เป็น/dev/mapper/ไปได้มากที่สุด/dev/mapper/{volume}--{os}-rootซึ่ง{volume}เป็นชื่อวอลุ่ม LVM และ{os}เป็นระบบปฏิบัติการ ดำเนินการls /dev/mapperสำหรับชื่อที่แน่นอน

  3. เมานต์พาร์ติชันของคุณ:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    หากคุณมีแยกต่างหาก/boot, /varหรือ/usrพาร์ทิชันทำซ้ำขั้นตอนที่ 2 และ 3 จะติดพาร์ทิชันเหล่านี้เพื่อ/mnt/boot, /mnt/varและ/mnt/usrตามลำดับ ตัวอย่างเช่น,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr
    

    เปลี่ยนsdXW, sdXYและsdXZมีจำนวนพาร์ทิชันที่เกี่ยวข้อง

  4. ผูกติดสิ่งที่จำเป็นอื่น ๆ :

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    
  5. หากติดตั้ง Ubuntu ในโหมด EFI ( ดูคำตอบนี้หากคุณไม่แน่ใจ ) ใช้sudo fdisk -l | grep -i efiหรือ GParted เพื่อค้นหาพาร์ติชัน EFI ของคุณ EFIก็จะมีป้ายของ เมาท์พาร์ติชันนี้โดยแทนที่sdXYด้วยหมายเลขพาร์ติชันที่แท้จริงสำหรับระบบของคุณ:

    sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot ติดตั้ง Ubuntu ของคุณ:

    sudo chroot /mnt
    
  7. ณ จุดนี้คุณอยู่ในการติดตั้งไม่ใช่เซสชันสดและใช้งานเป็นรูท อัพเดทด้วง:

    update-grub
    

    หากคุณได้รับข้อผิดพลาดหรือไปจนถึงขั้นตอนที่ 7 ไม่สามารถแก้ไขปัญหาของคุณได้ให้ไปที่ขั้นตอนที่ 8 (ไม่เช่นนั้นจะเป็นตัวเลือก)

  8. คุณอาจต้องติดตั้งด้วงใหม่:

    grub-install /dev/sda
    update-grub # In order to find and add windows to grub menu.
    
  9. หากมีการติดตั้งอูบุนตูในโหมด EFI และพาร์ติชัน EFI UUID /etc/fstabมีการเปลี่ยนแปลงที่คุณอาจจำเป็นต้องปรับปรุงใน เปรียบเทียบ:

    blkid | grep -i efi
    grep -i efi /etc/fstab
    

    ถ้าพาร์ติชัน EFI ปัจจุบัน UUID (จากblkid) แตกต่างจากพาร์ติชั่น/etc/fstabให้อัปเดต/etc/fstabด้วย UUID ปัจจุบัน

  10. หากทุกอย่างทำงานได้โดยไม่มีข้อผิดพลาดแสดงว่าคุณพร้อมแล้ว:

    exit
    sudo reboot
    
  11. ณ จุดนี้คุณควรจะสามารถบู๊ตได้ตามปกติ

หากคุณไม่สามารถบู๊ตได้ตามปกติและไม่ได้ทำขั้นตอนที่ 8 เพราะไม่มีข้อความแสดงข้อผิดพลาดลองอีกครั้งกับขั้นตอนที่ 8

  • ในบางครั้งการให้ GRUB2 การกำหนดค่าที่ถูกต้องสำหรับพาร์ติชันของคุณไม่เพียงพอและคุณต้องติดตั้งจริง ๆ (หรือติดตั้งใหม่) ลงใน Master Boot Record ซึ่งขั้นตอนที่ 8 ทำ ประสบการณ์การช่วยเหลือผู้ใช้ในการแชทแสดงให้เห็นว่าบางครั้งขั้นตอนที่ 8 เป็นสิ่งที่จำเป็นแม้ว่าจะไม่มีข้อความแสดงข้อผิดพลาด

1
ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
โธมัสวอร์ด

ฉันยังต้องการให้ Windows เป็นระบบปฏิบัติการสำหรับเริ่มระบบหลักของฉัน นี่คือการแก้ไขที่ถูกต้องหรือไม่? ฉันจะเลือกระบบปฏิบัติการที่จะบูตได้อย่างไร F11?
Jeff

1
@ScottSeverance ที่ฉันเห็นจากโปรไฟล์ของคุณที่คุณอาศัยอยู่ใน DFW คุณคิดว่าจะให้ชั้นเรียนหรือแบบฝึกหัดสดๆเพื่อให้ผู้คนรู้จัก Linux อย่างลึกซึ้งหรือไม่
Mohammed Joraid

1
ปัญหาเหล่านี้ไม่ได้รับเก่า: D - ไม่ว่าเมื่อต้องรับมือกับ EFI คุณอาจต้องติดตั้งและถ้าคุณกำลังใช้บูตที่เชื่อถือได้ที่คุณต้องการที่จะใช้grub-efi-amd64 grub-install --uefi-secure-bootนี่คือรายละเอียดในsuperuser.com/a/376471/197980
Raffael

1
วิธีนี้ใช้ได้สำหรับ Windows 10 บนคอมพิวเตอร์ที่มี BIOS (เช่นไม่ใช่ UEFI) คำถามเกี่ยวกับการที่หนึ่งคุณต้องสามารถตอบด้วยเคล็ดลับนี้ - thewindowsclub.com/check-if-uefi-or-bios
okolnost

115

โปรแกรมติดตั้ง Windows ไม่สนใจระบบปฏิบัติการอื่นในระบบ ดังนั้นมันจึงเขียนโค้ดของตัวเองลงบนมาสเตอร์บูตเรคคอร์ด โชคดีที่การแก้ปัญหาเป็นเรื่องง่ายเช่นกัน

คุณต้องซ่อมแซม MBR ทำดังต่อไปนี้

บูตโดยใช้ usb / cd สดของ Ubuntu ใช้boot-repairเพื่อแก้ไขปัญหา

หลังจากบู๊ตด้วย live usb / cd ให้เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

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

Recomended Repairใช้

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

ข้อมูลเพิ่มเติม - https://help.ubuntu.com/community/Boot-Repair


2
คุณหมายถึงการพูดโดยเจตนาโดยคน Microsoft? การบูทคู่ก็ใช้งานได้กับ windows 7 ดังนั้นจึงไม่ขัดแย้งกับบรรทัดแรกของคุณว่า "ตัวติดตั้ง windows ไม่สนใจระบบปฏิบัติการอื่นในระบบ"
Shagun Sodhani

Windows หยุดด้วงตลอดเวลามันเป็นปัญหาที่พบบ่อยมากและหนึ่ง ive ต้องจัดการกับตัวเอง คำตอบยังดีและควรแก้ไขปัญหา
เมียน

6
คุณได้ติดตั้ง windows 7 ไว้ก่อนแล้วจากนั้น linux ดังนั้น linux จึงรู้จัก windows ไม่ใช่ windows ที่รู้จักกับ linux ลองติดตั้ง windows7 อีกครั้งคุณจะเห็นว่าฉันหมายถึงอะไร
Web-E

อย่าทำอย่างนี้เมื่อคุณมีพาร์ติชั่นที่เข้ารหัส (ลูก) มันทำให้มันยุ่ง นอกจากนี้ยังติดตั้ง GRUB ด้วย apt-get อีกครั้งโดยไม่รู้ว่าทำไมถึงทำเช่นนั้น
Meng Tian

1
การซ่อมแซมการบูตรองรับโหมดดั้งเดิมได้เป็นอย่างดีบางทีคุณอาจต้องบูตสด cd / usb ในโหมดดั้งเดิมด้วย @fuzzyanalysis :)
Web-E

25

บูตจาก pendrive Ubuntu USB สดหรือซีดีและ
ติดตั้ง Boot-Repair บน Ubuntu โดยทำตามขั้นตอน

เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้

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

หลังจากเสร็จสิ้นการติดตั้งคุณสามารถเปิดจาก System-> Administration-> เมนู Boot-Repair หากคุณใช้ Gnome หรือค้นหา "boot-repair" ในเส้นประถ้าคุณใช้ Unity จากนั้นทำตามภาพหน้าจอต่อไปนี้:

วิธีที่ 1

  • คลิกที่ตัวเลือกขั้นสูง

หน้าจอเริ่มต้น

  • ทำเครื่องหมายตัวเลือกที่แสดงด้านล่าง

ตัวเลือกขั้นสูง

  • เปลี่ยนแท็บเป็นแท็บที่ตั้งด้วงและเลือกตัวเลือกที่แสดงในรูป

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

กดใช้และรีบูตระบบ

วิธีที่ 2

  • เลือกตัวเลือกการซ่อมแซม Boot ที่แนะนำตามที่แสดงในภาพหน้าจอแรก

เอกสารประกอบ:


Web-E ได้ให้คำตอบนี้แล้ว อาจปรับปรุงให้ดีขึ้นแทน? ฉันแสดงความคิดเห็นว่าทำไมจึงไม่ทำงาน
Dan Dascalescu

2
วิธีนี้ใช้ได้ผลกับฉันหลังจากกรณีที่น่ารังเกียจอย่างยิ่งของการเขียนทับการอัพเดต Windows 10 GRUB และทำลายตัวโหลดบูตของตัวเอง ทำตามขั้นตอนนี้จะได้ทั้ง Windows และ Linux กลับมา ในกรณีของฉันมันคือ Linux Mint 18.1 และเมนูการซ่อมแซมการบู๊ตดูแตกต่างออกไปเล็กน้อย แต่ทั้งหมดก็ใช้ได้ดี ขอบคุณ!
TheBigH

11

เพียงติดตั้งeasyBCDใน Windows 7 และทำ

เพิ่มรายการใหม่> Linux / BSD> (เลือก) Grub2> (กด) เพิ่มรายการ

จากนั้นคุณสามารถเลือกUbuntuบน bootloader ของ Windows 7 เพื่อไปที่Grub2 (bootloader ก่อนหน้า)


3
คำแนะนำเหล่านี้เพียงอย่างเดียวไม่ได้เรียกคืน Grub Bootloader - เมื่อฉันลองพวกเขาพวกเขาได้เพิ่มตัวเลือกการบูตพิเศษใน Windows ที่เลือกรีสตาร์ทเครื่องของฉันแล้วนำฉันไปที่พรอมต์ด้วง> ดังนั้นเราต้องมีขั้นตอนเพิ่มเติมว่าจะทำอย่างไรต่อไป
therobyouknow

1
easyBCD อนุญาตให้ฉันเพิ่มและลบตัวเลือกการบูตที่ฉันเห็นทั้งใน Windows Boot Loader และ BIOS แต่พวกเขาไม่เคยทำงานเพราะ easyBCD อาศัยการเรียงลำดับของเวทมนตร์อัตโนมัติเพื่อค้นหาพาร์ติชัน Linux ... มันไม่ทำงานเมื่อพาร์ทิชัน Linux ของฉัน อยู่บนฮาร์ดไดรฟ์ที่แยกต่างหาก
วิเคราะห์ฟัซซี

7

สำหรับระบบที่ใช้ EFI (เช่นระบบส่วนใหญ่ที่มาพร้อมกับ Windows 8 หรือใหม่กว่า) บางครั้ง Windows จะอัปเดตบูตโหลดเดอร์หรือรีเซ็ตเป็นบูตโหลดเดอร์เริ่มต้น นี่เป็นเรื่องปกติโดยเฉพาะอย่างยิ่งเมื่อทำการติดตั้งระบบปฏิบัติการใหม่หรือทำการอัปเดตระบบหลัก (เช่นการอัพเกรดเป็น Windows รุ่นล่าสุดเป็นต้น) โปรดทราบว่า Windows ไม่น่าจะลบไฟล์ GRUB ใด ๆ บนคอมพิวเตอร์ที่ใช้ EFI ทุกสิ่งที่จำเป็นในการบูต Ubuntu ยังคงอยู่ มันเพิ่งถูกบายพาส ในกรณีเหล่านี้การติดตั้ง GRUB ใหม่อย่างสมบูรณ์นั้นเกินความจริงและในความเป็นจริงนั้นมีโอกาส (เล็กน้อย) ที่จะสร้างปัญหาใหม่

ดังนั้นแทนที่จะติดตั้ง GRUB ใหม่ในกรณีเหล่านี้ฉันแนะนำให้รีเซ็ต GRUB (หรือตัวจัดการการบูตหรือตัวจัดการการบูตที่คุณต้องการ) เป็นค่าเริ่มต้น มีหลายวิธีในการทำเช่นนี้รวมถึง:

  • EasyUEFI - วิธีที่ง่ายที่สุดในการปรับลำดับการบู๊ตหากระบบบู๊ตตรงไปยัง Windows คือการใช้EasyUEFIซึ่งเป็นเครื่องมือ GUI บุคคลที่สามฟรี (สำหรับรุ่นพื้นฐาน) สำหรับการจัดการลำดับการบู๊ต EFI มันอธิบายได้ด้วยตัวเองสวย - ค้นหาubuntuรายการในรายการตัวเลือกการบูตและย้ายไปด้านบนของรายการ ในครั้งต่อไปที่คุณรีบูตด้วงควรจะเกิดขึ้น (หากคุณใช้สิ่งอื่นที่ไม่ใช่ GRUB คุณจะต้องค้นหารายการของมัน)
  • bcdedit- bcdeditสามารถใช้เครื่องมือWindows เพื่อตั้งค่า GRUB เป็นลำดับการบูตเริ่มต้น คำสั่งที่bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efiพิมพ์ในหน้าต่างพรอมต์คำสั่งของผู้ดูแลระบบจะทำเช่นนี้ อย่างไรก็ตามหากคอมพิวเตอร์ของคุณบูทด้วย Secure Boot bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efiจะเปิดใช้งานแทน ที่จริงแล้วคำสั่งหลังปกติจะใช้ได้แม้ว่า Secure Boot จะไม่ได้ใช้งานดังนั้นฉันจะใช้คำสั่งนั้นก่อน โปรดทราบว่ามีเครื่องมือเชลล์ Windows ขั้นสูงที่ต้องใช้ไวยากรณ์ที่แตกต่างจากที่ฉันนำเสนอเล็กน้อย แต่ฉันจำรายละเอียดไม่ได้
  • การบู๊ตครั้งเดียวไปยัง Ubuntu - EFIs ส่วนใหญ่จะมีตัวจัดการการบูตในตัวซึ่งเข้าถึงได้โดยกดปุ่มฟังก์ชั่น, Esc หรือ Enter แต่เนิ่นๆในกระบวนการเริ่มต้นระบบ โอกาสที่จะubuntuเข้าสู่การบูตอูบุนตูนั้นจะปรากฏในเมนูตัวจัดการการบูตนี้ทำให้คุณสามารถบู๊ตกับ Ubuntu ได้ อีกวิธีหนึ่งคุณสามารถบูตไปที่สื่อกลางของ Ubuntu ได้เช่นตัวติดตั้งที่บูทในโหมด "ลองก่อนติดตั้ง" ไม่ว่าจะด้วยวิธีใดคุณสามารถใช้efibootmgrเพื่อปรับลำดับการบู๊ต:
    1. พิมพ์sudo efibootmgrเพื่อดูรายการบูต
    2. หมายเหตุBootOrderบรรทัดปัจจุบัน
    3. ค้นหารายการubuntuและจดบันทึกBoot####หมายเลข
    4. พิมพ์sudo efibootmgr -o xxxx[,yyyy,zzzz,....]เพื่อเปลี่ยนลำดับการบูตโดยสร้างxxxxหมายเลขสำหรับ Ubuntu สิ่งที่เกิดขึ้นหลังจากนั้นไม่น่าจะสำคัญมากนักแม้ว่าฉันสังเกตว่า Windows ดูเหมือนว่าจะเพิ่มตัวเองกลับไปที่จุดเริ่มต้นของคำสั่งบูตหากยังไม่ได้อยู่ในรายการ ดังนั้นคุณควรตรวจสอบให้แน่ใจว่า Windows อยู่ในรายการและอาจปลอดภัยที่สุดในการสั่งซื้อรายการใหม่เพื่อให้มีรายการดั้งเดิมทั้งหมดอยู่ที่นั่นเพียงแค่มีubuntuรายการที่ย้ายไปด้านบนของรายการ
  • ยูทิลิตี้การตั้งค่าเฟิร์มแวร์ - ยูทิลิตี้การตั้งค่าของ EFIs บางตัวช่วยให้คุณสามารถปรับลำดับการบู๊ตได้ รายละเอียดแตกต่างกันอย่างมากจาก EFI หนึ่งไปยังอีกดังนั้นฉันจะไม่เข้าไปเฉพาะ แต่คุณสามารถหาตัวเลือกดังกล่าวในยูทิลิตี้การตั้งค่าของคุณ

มีตัวแปรอื่น ๆ ในโพรซีเดอร์เหล่านี้เช่นการใช้bcfgในเชลล์ EFI, ใช้blessใน macOS, ใช้rEFIndของฉันเพื่อทำการบูทแบบครั้งเดียว, เป็นต้นฉันจะเริ่มด้วย EasyUEFI; มันน่าจะเป็นทางออกที่ง่ายที่สุด บางครั้ง Windows ยืนยันที่จะทำให้ตัวเองเป็นค่าเริ่มต้นทุกครั้งที่เริ่มต้นและรายงานระบุว่าbcdeditอาจทำงานได้ดีขึ้นในการจัดการกับปัญหานั้น

โปรดทราบว่าไม่มีการใช้ก่อนหน้านี้กับการติดตั้งโหมด BIOS อย่างไรก็ตามในขณะที่คอมพิวเตอร์ส่วนใหญ่ที่มาพร้อมกับ Windows 8 หรือบูตในโหมด EFI การติดตั้งโหมด BIOS จะกลายเป็นของหายากมากขึ้นดังนั้นในหลายกรณีการจัดการกับปัญหาในทาง EFI แทนที่จะติดตั้ง GRUB แบบสุ่ม ๆ


1
การบูทด้วยตนเองครั้งเดียวในลินุกซ์ (fedora28 ในกรณีของฉัน) ผ่านตัวจัดการการบูตระบบในตัวของ EFIs ทำให้ฉันสามารถใช้efibootmgrสั่งการบูทลำดับใหม่ได้ (ตามที่อธิบายโดย Rod -> ขอบคุณ!) ซึ่งยุ่งกับ win10 ปรับปรุง หลังจากนั้น GRUB-bootmanager จะปรากฏขึ้นเหมือนที่เคยเป็นมาก่อนการอัพเดตดังนั้นฉันสามารถยืนยันได้ว่าวิธีการแก้ปัญหาที่ให้นั้นใช้ได้สำหรับฉัน ฉันหารุ่นพื้นฐานของ EasyUEFI ไม่พบ แต่มีเฉพาะรุ่นทดลองสำหรับรุ่นที่ไม่ใช่รุ่นโปรให้ฟรี
antiplex

5

ขณะนี้มีวิธีแก้ไขที่ง่ายกว่า:

  1. รีบูตและป้อนตัวเลือก BIOS ของคอมพิวเตอร์ของคุณ (F2 หรือบางครั้ง F11)
  2. ไปที่เมนูBootและเลือกBoot Device Priority
  3. ตรวจสอบว่าWindows Boot Managerอยู่เหนือไดรฟ์สำหรับเริ่มระบบหลักหรือไม่ (ปกติคือHDD HDD …หรือIDE HDD … ) หากเป็นเช่นนั้นให้ย้ายลำดับความสำคัญของดิสก์สำหรับเริ่มระบบเหนือของ Windows Boot Manager
  4. บันทึกตัวเลือก BIOS ของคุณและออก (ปกติคือ F10)

สิ่งนี้ได้รับการทดสอบบนแล็ปท็อป Samsung Series 7 Chronos บูตคู่ Windows 8 และ Ubuntu 13.10 ปิดการใช้งานการบูตที่ปลอดภัย UEFI และการเปิดใช้งานการบูตแบบดั้งเดิม


นี้เป็นตัวเลือกที่สะอาดที่สุดสำหรับฉัน มันเป็นจังหวะสำคัญอีกสองสามข้อ แต่เดี๋ยวก่อนมันใช้ได้ ฉันมีอุปกรณ์ที่บู๊ตเป็น Legacy และ UEFI หากผู้ใช้กำลังบู๊ตระบบปฏิบัติการมากกว่าหนึ่งระบบอื่น ๆ ระบบนี้สามารถทำได้เร็วกว่าและปลอดภัยกว่าในระยะยาว
วิเคราะห์ฟัซซี

สิ่งนี้ได้ผลสำหรับฉันเช่นกันหลังจาก Windows 10 อัปเดตตัวเองโดยอัตโนมัติ
luis_js

วิธีนี้ใช้ได้ผลกับฉันเมื่อฉันลบ Ubuntu ออกจาก windows 10
Vikas Gupta

3

Boot-Repair ใช้งานได้สำหรับฉัน มันง่ายมากที่จะใช้แอปพลิเคชั่นกราฟิกคุณไม่จำเป็นต้องใช้บรรทัดคำสั่งคุณเพียงแค่คลิกปุ่ม :)

ตัวเลือกการซ่อมแซมที่มีอยู่ทั้งหมดได้อธิบายไว้ในเอกสารประกอบของ Ubuntuและมีหน้าแยกอธิบายถึงวิธีการเริ่มการซ่อมแซมการบูต (โดยการสร้างดิสก์ที่สามารถบู๊ตได้หรือติดตั้งในอูบุนตูไลฟ์ดิสก์ที่มีอยู่)

เพียงแค่บูต Ubuntu live CD ติดตั้ง Boot-Repair แล้วเปิดใช้


มันจะดีถ้ามีวิธีที่ง่ายกว่าในการรับ Boot Repair มันเร็วกว่าที่จะเพียงแค่ติดตั้งการchrootซ่อมแซมมากกว่าไปยัง Google เพื่อติดตั้งเครื่องมืออื่น ๆ
Scott Severance

2

เมื่อ GRUB เสียหายผู้ใช้ทั่วไปไม่สามารถเข้าถึงระบบดังนั้นการซ่อมแซมจะต้องดำเนินการจากเซสชันสด (live-CD หรือ live-USB)

มีสาเหตุที่เป็นไปได้มากมายที่ทำให้ GRUB break: Windows เขียนลงบน MBR, DRM ป้องกันไม่ให้ GRUB ติดตั้งอย่างถูกต้อง, ข้อผิดพลาดของตัวติดตั้ง, การเปลี่ยนฮาร์ดแวร์ ... การอัพเดต GRUB ตามที่เสนอไว้ครั้งแรกโดย Scott นั้นไม่เพียงพอ มีประสิทธิภาพมากขึ้น แต่ยังมีสถานการณ์ต่าง ๆ ที่ต้องการการปรับแต่งอื่น ๆ (การเพิ่มตัวเลือกในเคอร์เนล, การซ่อนเมนู GRUB, การเปลี่ยนตัวเลือก GRUB, การเลือกสถาปัตยกรรมโฮสต์ที่เหมาะสม ... ) ปัญหาอื่น ๆ สำหรับการซ่อมแซมด้วงคือการใช้ chroot และการเลือกพาร์ติชั่น / ดิสก์ที่เหมาะสม

ทั้งหมดนี้ได้รับการทำให้ง่ายในเครื่องมือกราฟิกน้อย: Boot-ซ่อม มันจะถูกรวมเข้ากับ Ubuntu 12.04 CD เพื่อการใช้งานที่ง่ายขึ้น แต่สำหรับคนที่ต้องการมันตอนนี้มี distros บางตัวที่รวมเข้าด้วยกัน: Ubuntu-Secured-Remix (Ubuntu CD ที่รวม Boot-Repair), Boot-Repair-Disk - ซ่อมแซมเมื่อเริ่มต้น), ...

หวังว่านี่จะช่วยได้


1

คำตอบที่ได้รับจาก Scott และ Web-E นั้นดีพอและช่วยเหลือได้หลายครั้ง แต่หลายครั้งเครื่องมือซ่อมแซมการบูตไม่สามารถซ่อมแซมด้วงได้เนื่องจากปัญหาที่เกี่ยวข้องกับแพลตฟอร์ม i386 และ amd64 หรือที่ด้วงไม่สามารถหาefiไดเรกทอรีได้
สิ่งที่ได้แก้ไขปัญหาของฉันเช่นมากกว่า 10 ครั้งคือการล้างการติดตั้งด้วงเก่าด้วยตนเองและติดตั้งใหม่

ดังนั้นก่อนดำเนินการ 6 ขั้นตอนแรกจากคำตอบของ Scott ที่คุณสามารถข้ามขั้นตอนที่ 5 หากมีข้อผิดพลาด:

  1. บูตจากซีดีสดหรือ USB สดในโหมด "ลอง Ubuntu"
  2. กำหนดหมายเลขพาร์ติชันของพาร์ติชันหลักของคุณ sudo fdisk -l, sudo blkidหรือ GParted (ซึ่งควรจะติดตั้งอยู่แล้วโดยค่าเริ่มต้นในเซสชั่นมีชีวิตอยู่) สามารถช่วยให้คุณที่นี่ ฉันจะสมมติในคำตอบนี้ว่ามัน/dev/sda2แต่ให้แน่ใจว่าคุณใช้หมายเลขพาร์ทิชันที่ถูกต้องสำหรับระบบของคุณ!

    หากพาร์ติชั่นหลักของคุณอยู่ใน LVMอุปกรณ์นั้นจะอยู่ในตำแหน่งที่เป็น/dev/mapper/ไปได้มากที่สุด /dev/mapper/{volume}--{os}-rootซึ่ง{volume}เป็นชื่อวอลุ่ม LVM และ{os}เป็นระบบปฏิบัติการ ดำเนินการls /dev/mapperสำหรับชื่อที่แน่นอน

  3. เมานต์พาร์ติชันของคุณ:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    หากคุณมีแยกต่างหาก/boot, /varหรือ/usrพาร์ทิชันทำซ้ำขั้นตอนที่ 2 และ 3 จะติดพาร์ทิชันเหล่านี้เพื่อ/mnt/boot, /mnt/varและ/mnt/usrตามลำดับ ตัวอย่างเช่น,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr
    

    เปลี่ยนsdXW, sdXYและsdXZมีจำนวนพาร์ทิชันที่เกี่ยวข้อง

  4. ผูกติดสิ่งที่จำเป็นอื่น ๆ :

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    
  5. หากติดตั้ง Ubuntu ในโหมด EFI ([ดูคำตอบนี้หากคุณไม่แน่ใจ] [efi]) ใช้sudo fdisk -l | grep -i efiหรือ GParted เพื่อค้นหาพาร์ติชัน EFI ของคุณ EFIก็จะมีป้ายของ เมาท์พาร์ติชันนี้โดยแทนที่sdXYด้วยหมายเลขพาร์ติชันที่แท้จริงสำหรับระบบของคุณ:

    sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot ติดตั้ง Ubuntu ของคุณ:

    sudo chroot /mnt
    

จากนั้นทำตามขั้นตอนเหล่านี้:

  1. กำหนดค่าแพคเกจที่ค้างอยู่ทั้งหมด
    sudo dpkg --configure -a
  2. แก้ไขแพ็คเกจที่เสียหาย
    sudo apt install -fy
  3. ลบด้วงปัจจุบัน
    sudo apt purge -y grub*-common grub-common:i386 shim-signed
    นี่อาจเป็นการเตือนคุณว่าอุปกรณ์ของคุณจะไม่มี bootloader และอาจไม่สามารถบู๊ตได้ในครั้งต่อไป ไปข้างหน้าและยอมรับมัน
  4. sudo apt install -y grub-pc
    หลังจากรันคำสั่งนี้มันจะขอให้คุณชี้กระแสsdXYเพื่อติดตั้ง bootloader ค้นหาที่ติดตั้งระบบปฏิบัติการปัจจุบันของคุณโดยใช้sudo fdisk -lคำสั่ง Linuxมันจะถูกระบุว่าเป็น นำทางหน้าต่างนั้นโดยใช้Tabกุญแจและเลือกตัวเลือกโดยใช้Spaceปุ่ม
  5. หากทุกอย่างถูกต้องด้วงจะถูกติดตั้งอย่างถูกต้อง คุณสามารถsudo grub-updateตรวจสอบอีกครั้งได้

หากปัญหายังคงอยู่คุณสามารถอ่านวิกิของ Archเพื่อทำความเข้าใจเกี่ยวกับด้วงเพื่อจัดการกับปัญหาอื่น ๆ อีกมากมาย (ใช่ยังช่วยสำหรับ Ubuntu!)


0

Windows ไม่เห็นพาร์ติชันที่จัดรูปแบบ Linux คุณต้องใช้ gparted จาก liveCD และสร้างพาร์ติชันหลักที่ฟอร์แมต NTFS ด้วยแฟล็กสำหรับบูต

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

สำรองตารางพาร์ทิชันเป็นไฟล์ข้อความ & บันทึกไปยังอุปกรณ์ภายนอก

sudo sfdisk -d /dev/sda > PTsda.txt

นี่เป็นเพียงสำหรับระบบ MBR (msdos) หากการติดตั้ง Ubuntu ของคุณอยู่ในไดรฟ์พาร์ติชัน GPT คุณสามารถติดตั้ง Windows ในโหมด UEFI หรือแปลงไดรฟ์กลับเป็น MBR (msdos) เท่านั้น


sfdisk & fdisk เวอร์ชันใหม่ที่ทำงานกับไดรฟ์ที่แบ่งพาร์ติชัน gpt ใน 16.04 หรือใหม่กว่าจะสำรองข้อมูลไดรฟ์ที่แบ่งพาร์ติชัน gpt ด้วยคำสั่งด้านบน oldfred จำไม่ได้ว่าสิ่งที่เขากินสำหรับอาหารค่ำคืนที่ผ่านมาจึงไม่แน่ใจว่าสิ่งที่เขาโพสต์กลับมาในปี 2013 :)
oldfred

สวัสดีเฟรดเมื่อฉันทำอาหารลืมอาหารค่ำเมื่อคืนเป็นพร เราลบความคิดเห็นก่อนหน้าของเรา
WinEunuuchs2Unix

0

fsckคำสั่งเท่านั้นที่แก้ไขgrub-rescueหน้าจอสำหรับฉัน

ใช้Boot-Repairเพื่อบู๊ตจาก Live-CD จากนั้นเปิด Terminal

รับอุปกรณ์ที่ถูกต้อง:

sudo fdisk -l

จำเป็นต้องค้นหาอุปกรณ์สำหรับบู๊ตอุปกรณ์สำหรับบู๊ตนั้น*อยู่ในหมวด Boot ดังนี้

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048   2000895   1998848  976M 82 Linux swap / Solaris
/dev/sda2  *    2000896 943716351 941715456  449G 83 Linux

ตอนนี้ซ่อมแซมดิสก์โดยใช้:

sudo fsck /dev/sda2 -y

หมายเหตุ: / dev / sda2 เป็นอุปกรณ์บูตในตัวอย่างนี้

รีบูตเมื่อเสร็จสิ้น เสร็จสิ้น


0

คำตอบก็อตต์ชดเชยเป็นที่ถูกต้องและมีรายละเอียด แต่มีความละเอียดที่ต้องไม่มีอุปกรณ์การบูตภายนอกchrootและจึงไม่จำเป็นต้องระบุและตนเองติดของพาร์ทิชันอูบุนตูที่นำไปสู่

ใน Windows 10 คุณสามารถใช้Advanced Recoveryเพื่อเลือกอุปกรณ์ (พาร์ติชันหรือไม่) เพื่อบู๊ตจาก

ไปที่SettingsและเลือกUpdate & Security:

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

ไปที่Recovery:

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

จากการAdvanced StartupเลือกRestart Now

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

จากนั้นเลือกUse a Deviceและตัวเลือกการบูตทั้งหมดควรถูกนำเสนอให้คุณ เลือกพาร์ติชั่น 'Ubuntu' จากนั้นพีซีของคุณควรบูทจากพาร์ติชั่นนั้น

เมื่อบูทเข้าสู่สภาพแวดล้อม Ubuntu ปกติของฉันฉันได้ลองใช้grub-updateแต่ก็ไม่มีการเปลี่ยนแปลง

จากนั้นผมก็พบของฉัน/boot/efiพาร์ทิชันซึ่งเป็น/dev/nvme0n1p1และวิ่งแล้วsudo grub-install /dev/nvme0n1p1sudo update-grub

นี้มีการเรียกคืน Master Boot Record ของฉันหลายครั้งในขณะนี้ดูเหมือนว่าจะมีนโยบายวินโดวส์ 10 ใหม่ของการเขียนทับ MBR ในการปรับปรุงเล็ก


0

ฉันมีปัญหาที่แตกต่างกันเกิดขึ้น (อาจ) โดยการboot-repairลบ/etc/grub.d/แม่แบบของฉันที่ระบุไว้ในคำถามของฉันที่นี่: Ubuntu 18.04 ไม่บูตหลังจากติดตั้ง Windows 10

ในฐานะที่เป็นแหลมออกโดย @karels ความคิดเห็น, /etc/grub.dการกำหนดค่าด้วงจะถูกสร้างขึ้นโดยใช้ไฟล์ใน มีไดเรกทอรีของฉันเท่านั้น/etc/grub.d/25_customซึ่งมีรายการเมนูแปลก ๆ ที่ชี้ไปยังรูปภาพ. fi ที่ไม่มีอยู่จริง ดูเหมือนว่า/etc/grub.dแม่แบบของฉันอาจถูกboot-repairซ่อนไว้ด้วย

ฉันแก้ไขสิ่งนี้โดย:

  1. บูตด้วย Live CD (อาจเป็นสิ่งสำคัญที่จะใช้ Ubuntu รุ่นเดียวกัน)
  2. sudo mount /dev/sdxx /mnt
  3. sudo cp /etc/grub.d/* /mnt/etc/grub.d/
  4. sudo update-grub
  5. รีบูทและผ่อนคลายหลังจาก 48 ชั่วโมงของอาการปวด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.