ข้อผิดพลาดของด้วง: ไม่พบไฟล์ '/grub/i386-pc/normal.mod'?


17

ฉันเพิ่งติดตั้ง arch (หวังว่าจะสำเร็จ) ในเครื่องของฉัน เมื่อฉันไปรีบูต แต่ฉันมีปัญหา ฉันมีหน้าจอสีดำพร้อมข้อความบอกว่า

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

ฉันมีตั้งแต่ googled มองหาคำตอบ ฉันเกือบจะพบที่นี่ในฟอรั่มอูบุนตูแล้วฉันก็เห็นหนึ่งในความคิดเห็นที่บอกว่ามันไม่จริง นอกจากนี้ยังมีคำตอบอื่น แต่ฉันไม่แน่ใจว่าฉันต้องการติดตั้งจากซีดีสดเพราะกลัวว่าจะทำสิ่งสกปรก

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

ใครรู้วิธีง่ายๆในการด้วงทำงาน?


ข้อเสนอแนะที่สอง (พร้อม liveCD และ chroot) น่าจะคุ้มค่าที่จะลอง หรือรูปแบบที่หลากหลาย: ฉันไม่ใช่ผู้ใช้ arch แต่ติดตั้งมาก่อนและจากสิ่งที่ฉันจำได้คุณอาจต้องการพิจารณาข้อเสนอแนะที่เกี่ยวข้องกับขั้นตอนต่างๆของการติดตั้ง arch ซึ่งบางส่วนเกี่ยวข้องกับ chroot หากคุณสามารถย้อนกลับไปยังขั้นตอนก่อนหน้านี้เพื่อบู๊ต CD Arch จากนั้นทำการติดตั้งและตรวจสอบการติดตั้งคุณควรลองgrub-installได้ คุณไม่ต้องทำซ้ำขั้นตอนใด ๆ เพียงแค่ใช้มันเป็นแนวทางในการรับ chrooted จาก liveCD
goldilocks

ในขณะที่ฉันไม่ได้อยู่ที่คอมพิวเตอร์ตอนนี้ฉันเชื่อว่าฉันลองติดตั้งด้วงแล้วและมันก็ไม่ทำงาน
Griffin

@Griffin มันไม่ทำงานเหมือนใน "grub-install" ล้มเหลวหรือไม่สามารถแก้ปัญหาได้?
Derobert

@derobert grub-install ไม่ได้เป็นคำสั่งที่ถูกต้อง \
Griffin

@goldilocks คนที่สองไม่ทำงานอย่างใดอย่างหนึ่ง
Griffin

คำตอบ:


9

สิ่งที่น่ารำคาญจริงๆ ...

เห็นได้ชัดว่าไดเรกทอรี / boot / grub / i386-pc นั้นไม่ได้อยู่ในตำแหน่งสุดท้ายฉันก็แก้ปัญหาโดยการคัดลอกทั้ง / usr / lib / grub / i386-pc ไปที่ / boot / grub นั่นคือทั้งหมดที่

cp -r /usr/lib/grub/i386-pc /boot/grub

ฉันก็ทำเช่นนั้นเพราะมันก็หายไป น่าเสียดายที่นั่นไม่ได้แก้ไข
Wolfpack'08

8

ฉันอยู่ตรงกลางของปัญหาที่คล้ายกัน

Grub ล้มเหลวในการค้นหาไฟล์นี้และเรียกใช้เพราะใช้คำนำหน้า "ไม่ถูกต้อง"

นี่คือสิ่งที่คุณทำ คุณบูตเข้าสู่โหมดด้วงช่วยเหลือแล้วคุณก็จะรู้วิธีที่จะทำให้มันบูทได้

ครั้งแรกที่คุณเรียกใช้การตั้งค่านี้จะแสดงรายการตัวแปรตัวอย่างเช่นของฉันคือ

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

ตอนนี้คำนำหน้าเป็นตัวแปรที่ด้วงมองหาไฟล์ normal.mod ในกรณีของฉันhd1, msdos3เหมือนกับ/ dev / sdb3 (ในทำนองเดียวกัน, hd0, msdos1 จะเป็น / dev / sda1) สิ่งที่คุณอาจต้องการทำเพื่อดูรายการของพาร์ติชันที่ถูกต้องคือพิมพ์ในls

ตอนนี้ในกรณีของฉันอีกครั้งด้วงถูกติดตั้งบน / dev / sdb1 ซึ่งติดตั้งเป็น / boot ใน arch partition ของฉันดังนั้นคำนำหน้าที่ถูกต้องจะเป็น(hd1, msdos1) / grub

ดังนั้นสำหรับฉันที่จะบูตฉันต้องทำสิ่งนี้:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

ในกรณีของคุณคุณจะต้องจำหรือเดาพาร์ติชันที่คุณติดตั้งด้วงไว้ คุณสามารถเดาผิดได้มันจะไม่ทำอันตรายใด ๆ คำสั่ง insmod จะล้มเหลวและคุณสามารถลองอีกครั้งด้วยพาร์ติชันอื่น

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

เฉพาะในกรณีที่สิ่งนี้ล้มเหลว (เช่นหากคำนำหน้าถูกต้อง แต่คุณยังไม่สามารถบู๊ตได้) คุณควรใช้ชีวิตหรือช่วยเหลือซีดีเพื่อแก้ไขปัญหา (ควรหลีกเลี่ยงปัญหานั้น)


นี่อาจเป็นคำถามเก่า ๆ แต่ฉันพบว่ามีบางคนต้องตอบวิธีใช้ด้วงช่วยชีวิตแทนการใช้เครื่องมือซีดีและยูเอสบีเพื่อแก้ไขปัญหา เราไม่ได้มีสื่อสดเพื่อช่วยเราเสมอและถึงแม้ว่าเราจะทำมันก็มักจะดีกว่าถ้าทำงานจากสภาพแวดล้อมที่เราต้องการ
Cestarian

คำอธิบายที่ดี! (โดยเฉพาะอย่างยิ่งหมายเหตุเกี่ยวกับ "การคาดเดาผิดจะไม่ทำร้ายอะไร") ฉันพบปัญหาเดียวกันกับ dual boot windows + ระบบ Ubuntu หลังจากที่คิดผิดพลาดว่าการลบพาร์ติชั่นwindowsจะไม่มีผลกระทบกับ Ubuntu อย่างไรก็ตามโพสต์นี้ช่วยจริงๆในการทำความเข้าใจวิธีการแก้ไขข้อผิดพลาด ตั้งแต่ผมจำไม่ได้ที่พาร์ทิชันที่มีด้วงฉันอยู่เพียงพวกเขาทั้งหมดด้วยlsแล้วพยายามที่พวกเขาหนึ่งโดยหนึ่งจนกว่าฉันจะตีสิทธิการรวมกัน :-)
ลีห์

@Leigh ดีใจที่มันช่วยให้คน :)
Cestarian

1
การแก้ไขบางสิ่งนั้นดีอยู่เสมอ แต่การเข้าใจว่าคุณแก้ไขมันได้ดีกว่า :-) ไชโย
Leigh

คุณเป็นอัจฉริยะ
Ashish Doneriya

5

ฉันเพิ่งมีปัญหานี้วันนี้หลังจากการติดตั้งใหม่ของ Mint 15

โปรแกรมติดตั้งสร้าง/boot/grub/x86_64-efiโมดูล แต่ไม่ใช่/boot/grub/i386-pcโมดูลปกติ

การติดตั้ง Grub ใหม่จาก Live CD ได้แก้ไขปัญหา

แทนที่/ dev / sdaและ/ dev / sda1ด้วยอุปกรณ์สำหรับบูตและพาร์ติชันสำหรับบูตของคุณและเรียกใช้คำสั่งต่อไปนี้จาก Live CD:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot

1

ขอบคุณสำหรับการโพสต์ของคุณ ฉันแก้ไขข้อความแสดงข้อผิดพลาดเกือบเหมือนกัน - "file '/grub2/i386-pc/normal.mod' ไม่พบ" หลังจากติดตั้ง Linux CentOS 5.11 ใหม่บนคอมพิวเตอร์ Dell Optiplex เก่ากับ Windows Vista เพื่อให้เป็น dual - ระบบบูท

สถานการณ์ที่ซับซ้อนของฉันคือว่าฉันได้ลองและไม่สามารถติดตั้ง Fedora 20 distro รุ่นใหม่ซึ่งใช้ GRUB2 แทน GRUB (LEGACY) บนพาร์ติชั่นเริ่มต้นของ FEDORA จากนั้นฉันพยายามติดตั้ง CentOS โดยตรงเพื่อรักษาพาร์ติชัน Windows และเขียนทับพาร์ติชัน FEDORA

ในระหว่างการติดตั้ง CentOS ฉันออกจากพาร์ติชัน (Windows) แรกของฉันเพียงอย่างเดียว (hd0,0) และสร้างไดเรกทอรี / boot บนพาร์ติชันที่สอง (บูต) (hd0,1) ฉันเลือกที่จะไม่แก้ไข MBR ในเวลานั้นและเลือกตัวเลือกอื่น (bootloader บนพาร์ติชันอื่นแทน)

หลังจากสิ่งที่ดูเหมือนว่าจะประสบความสำเร็จในการติดตั้งมันรีบูตเข้าไปในข้อผิดพลาดด้านบน

ฉันสงสัยว่าข้อมูลการบู๊ตบนพาร์ติชั่นแรกยังคงชี้ไปที่ตำแหน่งของ GRUB2 ซีพียูไม่สามารถหาคนปกติได้บางทีอาจเป็นเพราะพาร์ติชั่น FEDORA00 ที่สร้างขึ้นก่อนหน้านี้ถูกลบไปแล้ว

นี่คือขั้นตอนของฉัน:

  1. บูตจากซีดีการติดตั้ง Centos 5 ของฉันไปที่โหมดช่วยเหลือ ("linux rescue")

  2. เมานต์ไดรฟ์ในเครื่อง: chroot / mnt / sysimage

  3. เปลี่ยนเป็นโหมดผู้ใช้คนเดียว: su

  4. อัพเดตการติดตั้ง CentOS: yum update

  5. ใช้โปรแกรมแก้ไข emacs เพื่อเพิ่ม "Microsoft Windows Vista" ลงในไฟล์ grub.conf: emacs /boot/grub/grub.conf และทำให้ Vista เป็นระบบปฏิบัติการเริ่มต้น

    ( หมายเหตุ:ดู www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ และhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html /Installation_Guide/sn-medialess-editing-grub-conf.html )

  6. พยายามอัพเดต MBR: grub-install / dev / hda

  7. รีบูตไปที่ข้อผิดพลาด GRUB ที่ไม่ปรากฏชื่อซึ่ง CPU จะหยุดทำงานหลังจากแสดง "GRUB"

  8. รีบูตจากดิสก์การติดตั้ง Windows Vista ดั้งเดิม (หรือดิสก์การกู้คืน Windows อื่น ๆ ) และเลือกตัวเลือกเพื่อซ่อมแซมดิสก์ รับข้อความว่า MBR ได้รับการซ่อมแซม

  9. รีบูตอย่างถูกต้องใน Windows Vista

ฉันแน่ใจว่ามีวิธีแก้ปัญหาที่หรูหรากว่านี้ แต่มันก็ใช้ได้กับฉัน ฉันยังพยายามดาวน์โหลดแพคเกจการย้ายข้อมูล GRUB ไปยัง GRUB2 ตามที่อธิบายไว้ที่http://help.ubuntu.com/community/Grub2/Upgradingโดยพยายาม:

$ yum install grub-pc

แต่ไม่พบแพ็คเกจ yum install grubบางทีฉันควรจะได้เพียงแค่พยายาม



0

ฉันได้เข้าสู่ระบบ CentOS 6.7 ของฉันในสองขั้นตอน ก่อนอื่นฉันได้ทำตามคำแนะนำจาก flittermice ด้านบนบูตจากซีดีสดติดตั้ง / dev / sda2 ของฉันเป็น / mnt และเพิ่งคัดลอกโฟลเดอร์ i386-pc จาก / mnt / usr / ... (คุณสามารถค้นหาว่าคุณอยู่ที่ไหน โดยfind /|grep i386) ถึง / boot / grub และรีบูต

สิ่งนี้ทำให้ฉันด้วง> แทนที่จะช่วยด้วง> ;-)

จากนั้นฉันได้ทำตามคำแนะนำที่นี่ [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/]เพื่อค้นหาและบูตเข้าสู่ พาร์ติชันของฉัน มันเป็น (hd0,2) เพราะ (hd0,1) ถูกใช้โดยการแลกเปลี่ยน

ต่อมาฉันพบว่าการทำให้การบูตนี้เป็นไปไม่ได้อาจเป็นเพราะ / boot ของฉันใช้ ext4 ที่มีขนาด inode 256 และ grub1 เก่าต้องการ 128 ฉันจะลองทำตามคำสั่งจาก [ http: // kb.kristianreese.com/index.php?View=entry&EntryID=113]เพื่อเตรียมพาร์ติชันก่อนการติดตั้ง


0

ติดตั้ง Ubuntu ใหม่ ไปที่ "ทำอย่างอื่น" เลือกพาร์ติชันการติดตั้ง Windows ของคุณเป็นตำแหน่งที่ตั้งที่ควรติดตั้งบูตโหลดเดอร์

หากคุณมีการติดตั้ง Windows อยู่คุณต้องติดตั้งด้วงไปยังพาร์ติชันเดียวกัน มิฉะนั้นคุณจะพบปัญหาในคำถาม

สิ่งนี้เกี่ยวข้องกับ 14, 15, 16, 17 Ubuntu ทุกรุ่นและอาจเป็นเวอร์ชั่นก่อนหน้า เมื่อถูกถามว่าจะติดตั้งบูตโหลดเดอร์อย่าสร้างและเลือกพาร์ติชั่น / boot ให้ใช้พาร์ติชัน Windows แทน

ขอขอบคุณ.


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