Grub có một hình ảnh lõi nhỏ được tải khi khởi động. Hình ảnh cốt lõi tự động tải các mô-đun cung cấp thêm chức năng. i386-pc/normal.mod not found
chỉ ra rằng grub không thể tải normal.mod , đây là mô đun grub cung cấp lệnh bình thường . Để tải normal.mod, bạn cần cho grub biết nó ở đâu. Để làm điều này, bạn có thể sử dụng dòng lệnh grub (còn gọi là Bảng điều khiển cứu hộ). Grub sẽ khởi động dòng lệnh nếu có sự cố khi khởi động hoặc bạn có thể khởi động thủ công bằng cách giữ phím shift khi grub bắt đầu (để hiển thị menu grub), rồi nhấn phím 'c'.
Sử dụng grub bạn có thể khám phá các ổ đĩa, phân vùng và hệ thống tập tin. Bạn cần phải:
- xác định vị trí cài đặt grub bằng ls hoặc search.file
- đặt các biến grub $ tiền tố và $ root
- tải và chạy mô-đun bình thường
Thí dụ
Sau đây chỉ là một ví dụ. Bạn sẽ cần phải điều chỉnh nó để thiết lập phân vùng và ổ đĩa cục bộ của bạn.
Bình thường.mod ở đâu? nhìn vào một số vị trí có khả năng
grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod
grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod
grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1
Nếu bạn nhận được "Unknown command 'search.file'"
điều này có nghĩa là lệnh search.file không khả dụng. Điều này có thể là do bạn đang ở grub rescue>
dấu nhắc và không grub>
nhắc. Trong trường hợp này, bạn vẫn có thể tiếp tục và sử dụng ls
lệnh và kiến thức về bố cục phân vùng của bạn để tìm normal.mod
.
tìm thấy nó tại (hd0, msdos1)
grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod
Tại sao grub không tìm thấy nó?
kiểm tra tiền tố $ - vị trí tuyệt đối của thư mục grub
(điều này được đặt khi grub được cài đặt bởi grub-install)
grub> echo $prefix
(hd0,msdos2)/boot/grub
kiểm tra $ root - thiết bị mặc định để biết các đường dẫn không bao gồm một
grub thiết bị ban đầu đặt điều này cho thiết bị từ tiền tố $
grub> echo $root
hd0,msdos2
gốc và tiền tố đang trỏ đến phân vùng sai (hd0, msdos2)
đặt $ root và $ prefix cho phân vùng nơi chúng tôi tìm thấy normal.mod (hd0, msdos1)
grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub
tải và chạy mô-đun bình thường
grub> insmod normal
grub> normal
Một số lệnh khác có thể hữu ích
ls liệt kê tất cả các thiết bị và phân vùng
grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)
phân vùng ls
grub> ls (hd0,msdos1)
Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib
Hệ thống tập tin ls (ghi chú / ở cuối)
grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/
Nhìn vào bên trong / boot / grub
của thư mục i386-pc có nghĩa đây là
sự hiện diện cài đặt BIOS của thư mục x86_64-efi sẽ chỉ ra cài đặt EFI
grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg
use your windows partition as your primary boot device
. Đó là bước cuối cùng là điều cần thiết. KHÔNG SỬ DỤNG / khởi động. Có thể có một giải pháp khác: thử thay đổi thủ công thiết bị khởi động của bạn trong khi khởi động; Tuy nhiên, tôi không nghĩ rằng nó sẽ làm việc. Đây là một vấn đề tồn tại từ lâu đã tồn tại trong Ubuntu và bao gồm 17.10. Cảm ơn bạn.