Ошибка установки GRUB с упоминанием airootfs — распространённая проблема при инсталляции Arch Linux из live-окружения (archiso). Утилита grub-install пытается обратиться к корневой файловой системе live-среды вместо целевого диска и падает с ошибкой failed to get canonical path of airootfs. Причина — некорректный вход в chroot или невыполненные bind-монтирования каталогов /dev, /proc, /sys, /run перед запуском загрузчика.
Когда ты грузишься с установочного ISO Arch Linux, основная файловая система live-окружения называется airootfs. Это временный корневой rootfs, созданный archiso на базе squashfs. Весь контент live-системы живёт именно здесь — пакеты, утилиты, окружение.
Проблема возникает, когда ты запускаешь grub-install или grub-mkconfig из среды, которая недостаточно изолирована от live-окружения. Утилита определяет корневой раздел через grub-probe, натыкается на airootfs вместо реального блочного устройства и падает:
grub-probe: error: failed to get canonical path of `airootfs`
Корень проблемы прост: grub-install не может найти реальное блочное устройство, потому что среда live перехватывает запросы к файловой системе.
Обычно проблема всплывает в двух случаях.
Самая частая ошибка — прямой запуск установки загрузчика из shell установочного ISO. grub-install работает в контексте live-системы и видит только airootfs. Правильный путь — выполнять все команды настройки загрузчика внутри chroot на целевой системе.
Даже если ты вошёл через chroot /mnt, но не смонтировал системные каталоги — загрузчик не получит доступ к нужным устройствам. Инструмент arch-chroot из пакета arch-install-scripts сам подцепляет /dev, /proc, /sys и /run. Но если ты используешь обычный chroot, всё придётся делать руками.
Также ошибка появляется, если в целевой системе просто не установлен пакет grub. Проверь:
# pacman -S grub efibootmgr
Убедись, что корень примонтирован в /mnt и разделы на месте:
# lsblk
# mount | grep /mnt
Корневой раздел должен быть смонтирован в /mnt. Для UEFI EFI-раздел — в /mnt/boot или /mnt/efi. Если что-то не так, исправь:
# mount /dev/sdX2 /mnt
# mount --mkdir /dev/sdX1 /mnt/boot
Используй arch-chroot — он автоматически выполнит bind-монтирования:
# arch-chroot /mnt
Если arch-chroot по какой-то причине не работает, сделай всё вручную:
# mount --rbind /dev /mnt/dev
# mount --rbind /proc /mnt/proc
# mount --rbind /sys /mnt/sys
# mount --rbind /run /mnt/run
# cp /etc/resolv.conf /mnt/etc/resolv.conf
# chroot /mnt /bin/bash
Внутри chroot установи необходимые пакеты и выполни установку GRUB.
UEFI-система:
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
Если EFI-размонтирован в /efi, замени --efi-directory=/boot на --efi-directory=/efi.
BIOS/MBR-система:
# pacman -S grub
# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
Важно: для BIOS указывай именно диск (/dev/sda, /dev/nvme0n1), а не раздел (/dev/sda1).
# ls /boot/grub/grub.cfg
# efibootmgr -v
Если файл конфигурации на месте и вывод efibootmgr показывает запись GRUB — всё в порядке. Выходи из chroot (exit), размонтируй и перезагружайся.
Перед запуском grub-install убедись, что ты внутри chroot. Выполни cat /etc/hostname — должен показать имя целевой системы, а не live-окружения. Выполни pwd — корень должен быть /.
arch-chroot автоматически настраивает bind-монтирования и копирует resolv.conf. Это исключает классическую ошибку «забыл примонтировать /dev». Если хочешь разобраться в процессе инсталляции глубже — смотри пошаговое руководство по установке Arch Linux.
Перед выходом из chroot сохрани лог установки. Если после перезагрузки окажется чёрный экран — загляни в руководство по исправлению чёрного экрана после установки. А если GRUB поломался уже после установки — поможет статья о переустановке GRUB после поломки.
grub-probe не смог определить реальное блочное устройство для корневой ФС. Причина — ты запускаешь команду из live-окружения или из chroot с неправильно смонтированными каталогами /dev, /proc, /sys. Решение — войти через arch-chroot и повторить.
Теоретически да, с ключом --boot-directory=/mnt/boot. Но это не решает проблему определения корневого устройства. Надёжнее всегда работать из chroot.
Проверь, что пакет grub установлен в chroot (pacman -S grub). Убедись, что для BIOS указан именно диск, а не раздел. Для UEFI укажи --target=x86_64-efi и правильный --efi-directory.
Да. Если загрузчик установлен некорректно или повреждён, его можно переустановить по тому же алгоритму. Подробнее — в статье о переустановке GRUB после поломки.
Ошибка «airootfs» при установке GRUB — типичная проблема при работе из live-окружения archiso. Загрузчик запущен вне chroot или без необходимых bind-монтирований. Исправление: войди через arch-chroot /mnt, убедись, что пакеты grub и efibootmgr установлены, и запусти grub-install с правильными параметрами. Для BIOS указывай диск, для UEFI — целевой EFI-каталог. Если возникли трудности с разметкой — проверь разметку диска GPT/MBR.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии