Вопрос или проблема
Я пытаюсь сделать загрузочную флешку с 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-накопитель с тремя разделами:
- EFI/Boot раздел: FAT32 для поддержки загрузки UEFI.
- Основной раздел: EXT4, где расположены файлы операционной системы Linux.
- Linux Swap раздел.
При загрузке через UEFI USB-накопитель переходит в меню GRUB, но не может загружаться в Linux, выдавая ошибку "unknown filesystem" при обращении к основному разделу.
Возможные причины
- Неподдерживаемые функции EXT4: Некоторые новые функции EXT4 могут не поддерживаться установленной версией GRUB. Это может быть связано с особенностями, такими как
metadata_csum_seed
,ea_inode
,large_dir
иcasefold
. - Отсутствующие модули GRUB: Возможно, не все необходимые модули установлены, хотя
lsmod
указывает на присутствиеext2
иpart_gpt
.
Решение проблемы
-
Обновление GRUB: Используйте более свежую версию GRUB, которая поддерживает новые функции EXT4. Если это невозможно, рассмотрите другие шаги ниже.
-
Отключение определенных функций EXT4:
- Проверьте активные функции файловой системы командой:
tune2fs -l /dev/sdX | grep "Filesystem features"
- Отключите проблемные функции, например
metadata_csum_seed
, при помощи команды:tune2fs -O ^metadata_csum_seed /dev/sdX
- Чтобы гарантировать совместимость, проверьте отсутствуют ли другие ключевые функции, которые могут вызвать проблемы.
- Проверьте активные функции файловой системы командой:
-
Переустановка GRUB: Как вы уже отметили, переустановка GRUB помогла решить проблему. Это может исправить проблемы с отсутствующими модулями или конфигурациями.
-
Касаемо конфигурации 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-накопителя.
- Убедитесь в правильности конфигурации, например:
Полезные ресурсы
- Ознакомьтесь с документами по спецификациям GRUB для более детального понимания проблемы.
- Изучите отчеты об ошибках, такие как данный баг-трекер, где рассматриваются схожие проблемы.
Таким образом, устраняя конкретные проблемы с функциональностью файловой системы EXT4 и, по возможности, обновляя или переписывая версии GRUB, вы сможете обеспечить успешную загрузку системы.