update-grub/grub-probe: hiba: ismeretlen fájlrendszer

Probléma: az update-grub parancs futtatásakor a következő hibaüzenetet kapod: /usr/sbin/grub-probe: hiba: ismeretlen fájlrendszer.

Grub logó
Grub logó

Probléma: az update-grub parancs futtatásakor a következő hibaüzenetet kapod: /usr/sbin/grub-probe: hiba: ismeretlen fájlrendszer.

Konkrét update-grub kimenet:

~# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
GRUB beállítófájl előállítása…
Megtalált linux lemezkép: /boot/vmlinuz-5.15.0-88-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.15.0-88-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.15.0-87-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.15.0-87-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.8.0-63-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.8.0-63-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.4.0-166-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.4.0-166-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
/usr/sbin/grub-probe: hiba: ismeretlen fájlrendszer.
Megtalált openSUSE Tumbleweed ezen: /dev/sda2
/usr/sbin/grub-probe: hiba: ismeretlen fájlrendszer.
kész

Miért?

Valószínűleg be van kapcsolva az ext4 metadata_csum_seed funkciója azon a kérdéses partíción. Ez azért gond, mert a Grub nem képes ezt a funkciót kezelni, ezért nem tudja az ilyen ext4-et olvasni. Részletek ebben a jegyben: https://savannah.gnu.org/bugs/index.php?56897

Ha nincs a kérdéses partíción kernel, amit a Grubnak be kellene töltenie, akkor nincs teendőd.

Megoldás (gyors és egyszerű)

Hacsak nem ragaszkodsz a metadata_csum_seed funkcióhoz, akkor kapcsold ki (az openSUSE telepítő automatikusan ezzel a funkcióval hozza létre az ext4 fájlrendszert).

A következő parancsokat (ahogy az a promptból is látszik) rootként kell kiadni.

0. lépés: ne legyen csatolva a kérdéses partíció!

1. lépés: ellenőrizd, gurb-probe parancssal a problémásnak vélt partíciót (nálam a /dev/sda2 lesz a célpont).

~# grub-probe --target=fs --device /dev/sda2
grub-probe: hiba: ismeretlen fájlrendszer.

2/a. lépés: A tune2fs -l paranccsal kérdezd le fájlrendszer adatait, hogy tényleg be van-e kapcsolva a problémás funkció:

~# tune2fs -l /dev/sda2
tune2fs 1.45.5 (07-Jan-2020)
Filesystem volume name:   OpenSUSE
Last mounted on:          /run/media/linux/OpenSUSE
Filesystem UUID:          5c938dd8-7be7-4a90-8c30-1b9a98ad5d0b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index FEATURE_C12 filetype extent 64bit flex_bg metadata_csum_seed sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
...

2/b lépés: A kimenetre közvetlenül rá is szűrhetsz, úgy talán átláthatóbb:

~# tune2fs -l /dev/sda2 | grep metadata_csum_seed
Filesystem features:      has_journal ext_attr resize_inode dir_index FEATURE_C12 filetype extent 64bit flex_bg metadata_csum_seed sparse_super large_file huge_file dir_nlink extra_isize metadata_csum

3. lépés: Kapcsoljuk ki a funkciót:

~# tune2fs -O ^metadata_csum_seed /dev/sda2
tune2fs 1.45.5 (07-Jan-2020)

4. lépés: Ellenőrizzük, hogy sikeres volt-e a művelet, és a Grub immár hozzá tud-e férni a partícióhoz:

~# grub-probe --target=fs --device /dev/sda2
ext2

5. lépés: Futtassuk újra az update-grub parancsot:

# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
GRUB beállítófájl előállítása…
Megtalált linux lemezkép: /boot/vmlinuz-5.15.0-88-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.15.0-88-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.15.0-87-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.15.0-87-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.8.0-63-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.8.0-63-generic
Megtalált linux lemezkép: /boot/vmlinuz-5.4.0-166-generic
Megtalált initrd lemezkép: /boot/initrd.img-5.4.0-166-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Megtalált openSUSE Tumbleweed ezen: /dev/sda2
kész

Készen vagyunk! Ha minden igaz, akkor mostantól nem csak, hogy a Grub nem pampog, de indul is a problémás rendszer (a mi esetünkben egy openSUSE Tumbleweed).

Megoldás (bonyolult)

Van egy patch a Grubhoz, ami elvileg megoldja a problémát itt: https://git.savannah.gnu.org/cgit/grub.git/patch/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763.

Ha érzed magadban a bátorságot, akkor a foltot felhasználva csinálhatsz egy javított Grubot. Ennek a folyamata sajnos túlnő a kisokos keretein.