1

Я хотел бы загрузить Live Linux CD, не нуждаясь в CD. Взять, к примеру, GParted или CloneZilla. Который я периодически загружаю с их Live CD. Но я бы хотел исключить использование CD/DVD-носителей, потому что он медленный, шумный и подвержен ошибкам (царапинам на диске). Я бы предпочел загрузить эти инструменты с жесткого диска моего ПК для обслуживания / ремонта, который я использую для двойной загрузки между Win7 (NTFS) и FreeBSD (UFS2), используя Grub2.

Я уже достаточно прогуглил, чтобы понять, что загрузка образов ISO не работает хорошо (и я также понимаю, почему), и способ сделать это - извлечь содержимое Live CD и загрузить эти файлы напрямую.

Вот что мне удалось до сих пор:

  • Скопируйте файлы из образа ISO в папку в разделе UFS2.
  • Переведите записи меню isolinux на Live CD в подменю grub2.

Когда я выбираю один из элементов подменю во время запуска системы, запись начинает загружаться, но после некоторого многообещающего вывода на экран она начинает выплевывать одно и то же разочаровывающее сообщение несколько раз.

modprobe: module unknown not found in modules.dep

Я почти уверен, где и почему это не удается. Но я не знаю архитектуру и внутреннюю работу этих сборок Live Linux, чтобы сделать следующий шаг. И мой веб-поиск по этому вопросу не давал мне полезных результатов.

В качестве реального примера я буду использовать файлы с GParted Live CD здесь. Соответствующие из них:

  • filesystem.packages
  • filesystem.squashfs
  • initrd.img
  • vmlinuz

Это я поместил в /boot /Gparted /live / на моем разделе UFS2 ada0s2a ("hd0, msdos2, bsd1" в терминах grub2).

Записи grub2, которые я собрал из записей syslinux на Live CD, ...

menuentry "GParted Live" {
  insmod part_msdos
  insmod ufs2
  set root=(hd0,msdos2,bsd1)
  linux /boot/Gparted/live/vmlinuz boot=live config noswap ip=frommedia nosplash
  initrd /boot/GParted/live/initrd.img
}

и запись «GParted Live (to RAM)» со всеми теми же строками, кроме

  linux /boot/GParted/live/vmlinuz boot=live config noswap noprompt toram=filesystem.squashfs ip=frommedia nosplash

Мне кажется, что файл filesystem.packages не упоминается в этих записях. И снова, я не знаю, как должен работать процесс загрузки Linux, но я убежден, что проблема, с которой я сталкиваюсь, заключается в том, что загруженное ядро +initrd пытается использовать данные, хранящиеся в filesystem.packages или filesystem.squashfs изображения и он их не находит.

Чтобы решить проблему, я должен помочь ядру, сообщив ему, где находятся эти файлы изображений. Вопрос в том, как мне это сделать? Где мне это сделать?

Ссылка на filesystem.packages может быть где-то внутри initrd.img . И я могу использовать gunzip и cpio, чтобы извлечь содержимое этого файла изображения. Но я до сих пор не знаю, что искать. Кроме того, я не уверен, что загруженное ядро Linux +initrd.img будет иметь доступ к файлам в моей файловой системе UFS2 (не Linux). Может быть, я должен поместить файлы в отдельный раздел Ext2.

Предложения, объяснения и указатели приветствуются!

1 ответ1

1

РЕШЕНИЕ НАЙДЕНО!

Страница GParted Live на жестком диске очень хорошо описывает, что нужно сделать для загрузки GParted Live из файлов, скопированных в папку на жестком диске. Я также нашел некоторые другие вопросы здесь, на SuperUser, похожие на мой вопрос. И я нашел ссылки на

http://www.kernel.org/doc/Documentation/kernel-parameters.txt

а также

https://www.kernel.org/doc/Documentation/x86/boot.txt

которые оба являются отличными документами их собственной темы, но оказались абсолютно бесполезными для моей проблемы. Во-первых, потому что они содержат слишком много деталей для прочтения, и, во-вторых, потому что аргументы, которые я искал, НЕ были включены. Поэтому я намеренно показываю их здесь не как ссылку, а только как текст.

Несколько важных деталей, чтобы отметить:

  • Система Live не может загрузиться должным образом, если файлы находятся в моем разделе UFS2, поскольку основанный на Debian образ GParted не может получить доступ к файловым системам ufs. Это противоречит тому факту, что когда я загружаю реальный Live CD и открываю XTerm, я всегда могу смонтировать раздел UFS2. По-видимому, эта возможность обработки UFS появляется на более поздней стадии процесса загрузки.
  • Однако система Live может загружаться правильно, если файлы находятся в моем разделе NTFS. Поэтому мне не нужно было создавать отдельный Linux-дружественный раздел Ext2, Ext3, Ext4 или FAT. Я мог бы просто использовать другой (Win7) раздел моей конфигурации с двойной загрузкой.
  • Страница "GParted Live на жестком диске" содержит альтернативное решение: grub2 для монтирования фактического образа ISO в качестве устройства петли и последующей загрузки с него. Эта возможность мне очень понравилась, но мне так и не удалось заставить ее работать.
  • На самом деле все получилось очень легко, после того как чтение страницы "GParted Live on Hard Disk" заняло менее 5 минут. И я применил это к моей существующей версии gparted-live-0.16.1-1-i486, которую я скачал довольно давно. Когда все работало так, как я хотел, я попробовал тот же метод с последней (на момент написания, 2016-MAY-25) версией gparted-live-0.26.0-2-i686 (использовал ZIP, потому что не мог смонтировать ISO), но это не удается правильно загрузить. ПРОСТО ГОВОРЮ! Таким образом, вам может понадобиться попробовать несколько версий, чтобы получить рабочее решение.

ЗДЕСЬ ЧТО РАБОТАЕТ:

Четыре файла из GParted ISO (или ZIP), упомянутые в моем исходном посте, скопированы в папку /GParted / на моем разделе NTFS. Вы можете назвать свою папку как угодно, просто не забудьте позже обратиться к этому точному имени. Затем создайте запись меню Grub2, например:

menuentry "GParted Live" {
  insmod part_msdos
  insmod ntfs
  set root=(hd0,msdos1)
  linux /GParted/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia live-media-path=/GParted bootfrom=/dev/sda1 toram=filesystem.squashfs
  initrd /GParted/initrd.img
}

Надеюсь, теперь это поможет другим решить подобные проблемы!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .