Grub2 не распознает файловую систему EXT4

Вопрос или проблема

Я пытаюсь сделать загрузочную флешку с Kali Linux, чтобы она работала на компьютерах с устаревшим BIOS. Однако UEFI вызывает некоторые проблемы. Флешка разделена на 3 раздела. Первый — это раздел efi/boot с файловой системой FAT32. Второй — основной раздел с обычной файловой системой (который я могу видеть с помощью инструмента под названием DiskGenius на моем основном компьютере с Windows). Третий — это раздел подкачки Linux. В данный момент она загружается в меню GRUB, но не загружается в Linux. Когда я перехожу в командную строку GRUB, я могу использовать команду ‘ls’, чтобы видеть разделы, и если я использую “ls (hd0,1)”, она показывает мне папки efi/boot, но если я пытаюсь “ls (hd0,2)” или любой другой раздел, пишет “неизвестная файловая система”.

Мне пришлось добавить некоторые файлы bootx64.efi и grub.cfg, чтобы моя флешка загружалась с UEFI. Я также добавил некоторые модули в GRUB, и когда я ввожу команду “lsmod”, я вижу модули “ext2” и “part_gpt”, так что я предполагаю, что это включает поддержку ext4, но не уверен, почему это не работает. Также отключена защищённая загрузка. Любая помощь будет очень кстати!

Вот команды, которые я пробовал:

set prefix=(hd0,2)/boot/grub
set root=(hd0,2)
linuxefi /boot/vmlinuz-4.18.0-kali2-amd64 noconfig=sudo username=root hostname=kali
initrdefi /boot/initrd.img-4.18.0-kali2-amd64

Выдаётся ошибка “unknown filesystem” после команды linuxefi

Я исправил это, переустановив GRUB. Думаю, что не хватало некоторых компонентов, но точно не уверен, что именно решило проблему.

Причина, вероятно, заключалась в том, что ext4 добавила некоторые функции, которые помешали GRUB распознать её как ext4. Использование более новой версии GRUB решит проблему. Если это невозможно, можно отключить проблемные функции.

# Проверьте, какие функции ext4 включены:
tune2fs -l /dev/sdaX | grep "Filesystem features"

# Отключите функцию metadata_csum_seed
tune2fs -O ^metadata_csum_seed /dev/sdaX

Согласно трекеру ошибок, следующие флаги могут вызвать проблемы:

  • metadata_csum_seed
  • ea_inode
  • large_dir
  • casefold

Смотрите также:

Ответ или решение

Проблема связана с тем, что GRUB2 не распознает файловую систему EXT4 на USB-накопителе при загрузке Kali Linux на компьютерах с UEFI, и это доставляет неудобства. Ниже приведены возможные причины и решения этой проблемы.

Фон проблемы

Вы организовали ваш USB-накопитель с тремя разделами:

  1. EFI/Boot раздел: FAT32 для поддержки загрузки UEFI.
  2. Основной раздел: EXT4, где расположены файлы операционной системы Linux.
  3. Linux Swap раздел.

При загрузке через UEFI USB-накопитель переходит в меню GRUB, но не может загружаться в Linux, выдавая ошибку "unknown filesystem" при обращении к основному разделу.

Возможные причины

  1. Неподдерживаемые функции EXT4: Некоторые новые функции EXT4 могут не поддерживаться установленной версией GRUB. Это может быть связано с особенностями, такими как metadata_csum_seed, ea_inode, large_dir и casefold.
  2. Отсутствующие модули GRUB: Возможно, не все необходимые модули установлены, хотя lsmod указывает на присутствие ext2 и part_gpt.

Решение проблемы

  1. Обновление GRUB: Используйте более свежую версию GRUB, которая поддерживает новые функции EXT4. Если это невозможно, рассмотрите другие шаги ниже.

  2. Отключение определенных функций EXT4:

    • Проверьте активные функции файловой системы командой:
      tune2fs -l /dev/sdX | grep "Filesystem features"
    • Отключите проблемные функции, например metadata_csum_seed, при помощи команды:
      tune2fs -O ^metadata_csum_seed /dev/sdX
    • Чтобы гарантировать совместимость, проверьте отсутствуют ли другие ключевые функции, которые могут вызвать проблемы.
  3. Переустановка GRUB: Как вы уже отметили, переустановка GRUB помогла решить проблему. Это может исправить проблемы с отсутствующими модулями или конфигурациями.

  4. Касаемо конфигурации GRUB:

    • Убедитесь в правильности конфигурации, например:
      set prefix=(hd0,2)/boot/grub
      set root=(hd0,2)
      linuxefi /boot/vmlinuz-4.18.0-kali2-amd64 noconfig=sudo username=root hostname=kali
      initrdefi /boot/initrd.img-4.18.0-kali2-amd64
    • Важно убедиться, что все директории и пути указаны корректно и соответствуют файловой системе вашего USB-накопителя.

Полезные ресурсы

Таким образом, устраняя конкретные проблемы с функциональностью файловой системы EXT4 и, по возможности, обновляя или переписывая версии GRUB, вы сможете обеспечить успешную загрузку системы.

Оцените материал
Добавить комментарий

Капча загружается...