Một số mô-đun có thể bị thiếu trong cảnh báo hình ảnh lõi


12

một ổ cứng bị hỏng từ RAID của tôi và tôi đã thêm một ổ cứng mới.
Bây giờ tôi muốn cài đặt GRUB vào ổ cứng mới: với grub-install /dev/sdb. Tôi nhận được những cảnh báo sau:

Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.

Trên update-grub2tôi nhận được:

Generating grub configuration file ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-3.13.0-30-generic
Found initrd image: /boot/initrd.img-3.13.0-30-generic
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done

Đầu ra của cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : active raid1 sdb4[3] sda4[2]
      1847608639 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb2[3] sda2[2]
      524276 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sdb3[3] sda3[2]
      1073740664 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[3] sda1[2]
      8387572 blocks super 1.2 [2/2] [UU]

unused devices: none

Tôi đã cài đặt lại cả hai nhân apt-get install --reinstallnhưng những lỗi / cảnh báo này vẫn tồn tại.
Có ai biết làm thế nào tôi có thể thoát khỏi chúng?

Cập nhật:

Vì đó chỉ là một cảnh báo, không phải là một lỗi (và GRUB vẫn phải ở trên sda) nên tôi đã khởi động lại hệ thống. Hệ thống khởi động và các cảnh báo đã biến mất. Tôi không biết những gì đã kích hoạt các cảnh báo.


Hình như bạn đang thiếu một cái gì đó. Bạn sử dụng cấp RAID nào? Sau khi bạn thêm thiết bị vào RAID, bạn không nên làm việc trực tiếp với nó. Xin vui lòng gửi kết quả của cat /proc/mdstatđây.
maniaque

thêm đầu ra cho bài viết của tôi. Cấp độ RAID là 1. resync đã được thực hiện.
pythonimus

Vì vậy, tất cả các đĩa và thiết bị md của bạn đều hoạt động. Bạn không nên cố gắng cài đặt grub trực tiếp - mdadm tự động đồng bộ hóa nội dung đĩa cứng. Nếu bạn muốn cài đặt grub cho thiết bị md, vậy hãy sử dụng grub-install /dev/md1, nhưng bạn có chắc bạn cần grub trên thiết bị md không? Bạn có khởi động từ thiết bị md?
maniaque

1
Tôi dit nó như được đề cập ở đây Bước 12: Cài đặt lại GRUB 2 ([...] Không chỉ định số phân vùng) [...] Nếu phân vùng hệ thống nằm trên phần mềm RAID, hãy cài đặt GRUB 2 trên tất cả các đĩa trong RAID. [...] Hoặc ở đây
pythonimus

Câu trả lời:


16

Có điều tương tự ngày hôm nay. Hóa ra nguyên nhân là do grub-probecố gắng truy cập các phân vùng thông qua /dev/sda, không liên kết với bộ đệm /dev/sda1(và sda2vân vân).

Bạn có thể sửa nó bằng

blockdev --flushbufs /dev/sda1

(lặp lại cho các phân vùng khác khi cần thiết).


điều này đã làm điều đó cho tôi, nó đã đủ để chạy nó trên phân vùng / boot
lifeofguenter

15

Tôi đã gặp vấn đề tương tự trong khi xây dựng lại một mảng SW-RAID đã xuống cấp và tình cờ gặp vấn đề này trên một trang web khác:

Nguồn grub-2.00 nơi phát sinh cảnh báo là ./grub-core/disk/diskfilter.c và có nhận xét này:

/* TRANSLATORS: This message kicks in during the detection of
   which modules needs to be included in core image. This happens
   in the case of degraded RAID and means that autodetection may
   fail to include some of modules. It's an installation time
   message, not runtime message.  */

(Lấy từ https://bbs.archlinux.org/viewtopic.php?id=160785 )

Nói cách khác, lỗi lạ này xảy ra khi bạn đã làm suy giảm các mảng RAID và sẽ biến mất (như đã xảy ra trong trường hợp của bạn) khi các mảng của bạn hoạt động bình thường.

Khi mảng RAID của tôi cuối cùng đã hoàn tất đồng bộ hóa, lỗi đã biến mất trên cả bản cập nhật-grub và grub-install.


1
Tôi chỉ thay đổi một đĩa cứng và xây dựng lại cuộc đột kích. Khi tôi chạy grub-install trong quá trình xây dựng lại, tôi đã nhận được những cảnh báo này. Tôi có thể xác nhận rằng khi quá trình xây dựng lại hoàn tất và tôi chạy lại cài đặt grub, những cảnh báo này đã biến mất!
Vangelis Tasoulas

2
Tôi đã không biến mất trong 3 ngày. Rebuild đã được thực hiện khi lần đầu tiên tôi cố gắng cài đặt grub.
pythonimus

3

Vì đó chỉ là một cảnh báo, không phải là một lỗi (và GRUB vẫn phải ở trên sda) nên tôi đã khởi động lại hệ thống.
Hệ thống khởi động và các cảnh báo đã biến mất.
Tôi không biết những gì đã kích hoạt các cảnh báo.


2

Sử dụng grub2-install trong khi di chuyển từ một đĩa đơn sang raid1, tôi có các triệu chứng rất giống nhau, là nhiều dòng cảnh báo như sau. Tôi không sẵn sàng khởi động lại chỉ để "kiểm tra" xem đây có phải là vấn đề nghiêm trọng hay không. Trong trường hợp của tôi, tôi muốn đặt / khởi động lên RAID1 4 đĩa trong khi các phân vùng khác sẽ được tách RAID1 2 đĩa:

grub2-install: warning: Couldn't find physical volume ‘(null)’. Some modules may be missing from core image..

grub2-mkconfig cũng cho thấy nhiều lỗi trong cấu hình kết quả:

/usr/sbin/grub2-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..

Tôi thấy vấn đề là tôi đã tạo ra mảng RAID mà không chỉ định phiên bản siêu dữ liệu. Các phiên bản grub cũ hơn yêu cầu --metadata = 0,90 khi tạo mảng. Sau khi thực hiện lại bit này trên phân vùng / boot, grub2-install đã hoạt động 100%. Hãy nhớ rằng phân vùng ban đầu với / boot là / dev / sda1, do đó tại sao các lệnh bên dưới có 3 đĩa + 1 bị thiếu thay vì cả 4 đĩa.

Trước:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 /dev/sd{b,c,d}1 missing

Sau:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 --metadata=0.90 /dev/sd{b,c,d}1 missing

Liên quan đến bản đồ thiết bị, grub có lệnh "grub-mkdevicemap". Điều này đã được thay thế bằng cờ "--recheck" trong grub2-install:

Cũ:

$ grub-mkdevicemap -n
$ grub-install /dev/sda

Mới:

$ grub2-install --recheck /dev/sda

Cũng xin nhớ, nếu sử dụng nhiều đĩa, để lặp lại lệnh trên tất cả các đĩa. Điều này ngăn tình huống bạn chỉ cài đặt grub trên một đĩa nhưng đĩa đó sẽ chết trên bạn (điều này sẽ dẫn đến một hệ thống không thể khởi động):

$ for disk in sd{a,b,c,d} ; do grub2-install --recheck /dev/$disk ; done
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.

1

Điều này xảy ra vì bản đồ thiết bị grub (/boot/grub/device.map) không còn chính xác nữa, sau khi trao đổi một ổ đĩa từ cuộc đột kích. Đơn giản chỉ cần chạy

grub-mkdevicemap -n

để cập nhật bản đồ thiết bị và

grub-install

cho các thiết bị tương ứng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.