Гид по технологиям

Запуск ISO-образов напрямую через GRUB2

6 min read Linux Обновлено 01 Dec 2025
Запуск ISO напрямую через GRUB2
Запуск ISO напрямую через GRUB2

Зачем это нужно

  • Оценить дистрибутив без расхода носителей.
  • Быстро переключаться между разными live‑образами.
  • Упростить тестирование и аварийное восстановление.

Получение и проверка загрузочных ISO‑образов

Обычно ISO скачивают с официального сайта дистрибутива. Выберите образ, совместимый с вашей архитектурой (например, amd64) и способом загрузки (Live, DVD, netinst). Если образ загружается с USB, он, скорее всего, загрузится и из GRUB2 при корректной конфигурации.

После загрузки проверьте целостность образа контрольной суммой. Самый простой метод — md5 (или предпочтительнее — sha256, если доступно): это выдаст длинную комбинацию цифр и букв, которую нужно сравнить со значением на странице загрузки.

Контрольная сумма MD5 для ISO

Важно: если на странице загрузки указан sha256, используйте его вместо md5. md5 всё ещё работает, но слабее защищён от коллизий.

Подготовка GRUB2

ISO содержит файловую систему с ядром и initrd. Задача GRUB2 — указать на файл ISO, примонтировать его через loopback и загрузить ядро + initrd изнутри ISO.

В примере ниже мы настроим запуск Kubuntu 15.04 на машине с Ubuntu 14.04 в качестве пункта меню GRUB. Этот подход работает для большинства современных Ubuntu‑производных, но пути к ядру и initrd внутри ISO могут отличаться у других дистрибутивов.

Предположим, что файл kubuntu-15.04-desktop-amd64.iso находится в каталоге /home/maketecheasier/TempISOs/ на разделе /dev/sda1.

Откройте для правки файл:

/etc/grub.d/40_custom

Этот файл позволяет добавить собственные пункты меню. Обычно он уже существует и содержит несколько строк по умолчанию.

Пустой файл 40_custom перед добавлением

Добавьте ниже комментариев (не удаляя оригинального содержимого) блок с вашей записью. В примере для Kubuntu добавлен пункт меню:

menuentry "Kubuntu 15.04 ISO"{  
setisofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"  
loopback loop (hd0,1)$isofile  
echo"Starting $isofile..."  
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash  
initrd (loop)/casper/initrd.lz  
}

Новый блок в 40_custom с записью ISO

Разбор кода по строкам

  • setisofile — переменная с путём к ISO. Измените её, если ISO лежит в другом месте.
  • loopback loop (hd0,1)$isofile — создаёт loop‑устройство внутри GRUB и указывает, где найти ISO. Обратите внимание на обозначение (hd0,1).

GRUB использует нумерацию дисков и разделов по‑своему: диски считаются от 0 (hd0 — первый диск), а разделы — от 1 (1 — первый раздел). Например, /dev/sda1 в GRUB будет hd0,1, а /dev/sdb3hd1,3.

  • linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash — указывает на ядро, которое нужно загрузить из ISO. На Ubuntu‑производных ядро обычно лежит в каталоге /casper и может называться vmlinuz или vmlinuz.efi. Если вы используете другой дистрибутив, ядро может быть в другом месте — проверьте ISO с помощью архиватора.

  • initrd (loop)/casper/initrd.lz — загружает initrd (или initramfs). Этот файл отвечает за создание RAM‑диска и инициализацию live‑сесии.

Проверка и обновление GRUB2

Чтобы применить изменения, выполните в терминале:

sudo update-grub

Обновление конфигурации GRUB

После перезагрузки в меню GRUB появится новый пункт. Выберите его, чтобы загрузиться в live‑среду прямо из ISO, как если бы вы загрузились с DVD или USB.

Пункт меню GRUB для загрузки ISO

Когда это не сработает (примеры и ограничения)

  • Образы, использующие нестандартные загрузчики или зашифрованные контейнеры внутри ISO, могут не поддерживать такую схему.
  • Некоторые дистрибутивы ожидают, что ISO будет на USB и используют особые скрипты — в таком случае потребуется дополнительная настройка.
  • Если ISO использует нестандартное имя ядра или initrd, GRUB не найдёт файлы; нужно открыть ISO и проверить структуру.

Важно: если при загрузке возникает ошибка, проверьте правильность пути в setisofile и номер раздела в объявлении loopback.

Альтернативные подходы

  • Использовать системный инструмент типа Ventoy — он позволяет копировать множество ISO на USB и выбирать их при старте без записи каждого образа.
  • Записать ISO на отдельный раздел диска и настроить GRUB на его монтирование.
  • Создать виртуальную машину (VirtualBox, QEMU) и запускать ISO в ней — удобно для тестирования разных ОС параллельно.

Пошаговая методология (мини‑метод)

  1. Скачайте ISO и проверьте контрольную сумму.
  2. Поместите ISO в постоянный каталог на разделе, доступном GRUB (обычно не в зашифрованном домашнем каталоге).
  3. Откройте /etc/grub.d/40_custom и добавьте пункт меню.
  4. Скорректируйте (hdX,Y) под ваш диск и раздел.
  5. Сохраните файл и выполните sudo update-grub.
  6. Перезагрузите и выберите пункт в меню GRUB.

Рекомендации по безопасности и практичности

  • Кладите ISO на незашифрованный раздел, если вы часто будете его использовать, или на отдельный раздел, читаемый до расшифровки LUKS. GRUB обычно не читает зашифрованные разделы без дополнительной настройки.
  • Держите резервную копию /etc/grub.d/40_custom перед изменениями.
  • Используйте sha256 для проверки целостности, когда это возможно.

Отладка и частые ошибки

  • Пустой экран или dropped to shell: проверьте правильность путей к ядру и initrd.
  • «File not found»: скорее всего указан неверный (hdX,Y) или путь внутри ISO.
  • ISO не видит накопители: некоторые live‑системы ожидают наличие файловой метки или особых параметров загрузки.

Краткий чеклист для отладки:

  • Путь в setisofile корректен и файл существует.
  • Номер диска/раздела в loopback совпадает с расположением ISO.
  • Файлы vmlinuz / initrd действительно присутствуют внутри ISO (проверьте архиватором).
  • Выполнен sudo update-grub и перезагрузка.

Роли и обязанности (короткие чеклисты)

  • Для домашнего пользователя: убедиться, что ISO на локальном разделе, сделать бэкап 40_custom, протестировать.
  • Для системного администратора: документировать путь, версию ISO, хранить файл в доступном месте и контролировать права доступа.

Критерии приёмки

  • Пункт меню появляется в GRUB после sudo update-grub.
  • Вы можете загрузиться в live‑среду и получить рабочую сессию.
  • Система внутри live‑образа видит ожидаемые устройства (USB, диски) при тестировании.

Краткий глоссарий (1‑строчные определения)

  • GRUB2 — загрузчик, управляющий начальной загрузкой ОС.
  • loopback — механизм, позволяющий монтировать файл как блок‑устройство.
  • initrd/initramfs — крошечная файловая система, загружаемая в память для подготовки основного корня.

Примеры использования и тестовые сценарии

  • Тест: поместите два ISO в каталог, создайте два пункта в 40_custom и убедитесь, что оба загружаются.
  • Краевой случай: ISO на зашифрованном разделе — убедитесь, что GRUB может читать раздел до расшифровки.

Быстрый план восстановления (rollback)

  1. Если система после изменения не загружается, при загрузке выберите старую запись GRUB (если есть).
  2. Загрузитесь с live‑USB и восстановите /etc/grub.d/40_custom из резервной копии.
  3. Выполните sudo update-grub и перезагрузитесь.

Итог

Запуск ISO напрямую через GRUB2 — удобный и гибкий способ тестировать live‑среды без постоянного использования USB или DVD. Главные шаги: положить ISO в доступное место, создать loopback‑запись в /etc/grub.d/40_custom, проверить пути к ядру и initrd и выполнить sudo update-grub. В большинстве случаев это работает для Ubuntu‑производных, но всегда проверяйте структуру конкретного ISO.

Важно: перед изменениями делайте резервную копию конфигурационных файлов и проверяйте контрольные суммы загруженных образов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Авто-включение геолокации Google Maps на Samsung
Руководство

Авто-включение геолокации Google Maps на Samsung

Проверить скорость ОЗУ в Windows
Железо

Проверить скорость ОЗУ в Windows

Как использовать GitHub Copilot в Visual Studio
Разработка

Как использовать GitHub Copilot в Visual Studio

Обновление до Windows 10 Fall Creators Update
Windows

Обновление до Windows 10 Fall Creators Update

Рукописный ввод в Gboard — настройка и советы
Мобильные приложения

Рукописный ввод в Gboard — настройка и советы

Удалить объявление с Rightmove — инструкция
Недвижимость

Удалить объявление с Rightmove — инструкция