Я хотел бы загрузить 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.
Предложения, объяснения и указатели приветствуются!