Загрузка iso через grub2

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

no0b
Сообщения: 29
ОС: пингвинукс

Загрузка iso через grub2

Сообщение no0b »

Решил воспользоваться этой возможностью и сделать загрузочную флешку. Такую, чтобы достаточно было кинуть файл в нужный каталог прямо на fat32, и всё работало.

Делается довольно просто. Поставил на устройство граб, в /boot/grub/grub.cfg дописал

menuentry "ubuntu live-cd" {
loopback loop (hd0,1)/boot/ubuntu.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu.iso
initrd (loop)/casper/initrd.lz
}

ну и сам образ кинул куда надо.

Результат: на винчестере работает, на флешке - нет.

Флешка при загрузке ругается, что "сперва надо загрузить ядро". При пошаговом выполнении команд первую переваривает, на вторую пишет "invalid magic number".

Почему так может быть?
Спасибо сказали:

stampoon
Сообщения: 702
ОС: Mandrake/Mandriva Cooker

Re: Загрузка iso через grub2

Сообщение stampoon »

а устройство-то верно указываете?
Интеллект — это способность избегать выполнения работы, но так, чтобы она при этом была сделана.
Спасибо сказали:

no0b
Сообщения: 29
ОС: пингвинукс

Re: Загрузка iso через grub2

Сообщение no0b »

stampoon писал(а):
01.12.2009 17:56
а устройство-то верно указываете?

"loopback loop (hd0,1)/..." - это устройство? Получается, верно. Находит ведь.
Спасибо сказали:

Robo
Сообщения: 121
ОС: Win XP SP3

Re: Загрузка iso через grub2

Сообщение Robo »

Это не решение проблемы, но так у людей работает
Похоже вы всё делаете правильно.
1 Единственное отличие я нашёл, что в указанной статье используются ключи noeject noprompt --
2 Ещё можете попробовать установить grub на внутренний HDD. (не самое лучшее решение)
3 Также попищите программы для дефрагментации конкретного файла (Например grub1 не грузится если файл grldr фрагментирован) и дефрагментируйте ISO
4 Максимально возможный размер файла для тома FAT32 — 4 ГБ — 4 294 967 296 байт Проверьте, не вылезает ли размер ISO за указанные диапазоны
Спасибо сказали:

Аватара пользователя
ADonecky
Сообщения: 105
ОС: Ubuntu 9.04

Re: Загрузка iso через grub2

Сообщение ADonecky »

-=пардон за оффтом=-
а unetbootin не проще использовать?
Ubuntu 10.10
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

ADonecky писал(а):
05.12.2009 16:43
-=пардон за оффтом=-
а unetbootin не проще использовать?

для создания Live USB системы из ISO-образа подойдёт,
а для загрузки в live режиме с разных iso образов - каждый раз нужно переделывать USB носитель.

to no0b:
Это надо в /etc/grub.d/40_custom прописывать. Что бы после update-grub не прописывать снова.

Вот только у меня на (hd0,8) не находит файл : (
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

Код: Выделить всё

$ sudo mount /dev/sda8 /mnt/
$ ls /mnt/DEB_LIKE/ub_amd_this.iso
/mnt/DEB_LIKE/ub_amd_this.iso

В /etc/grub.d/40_custom:

Код: Выделить всё

#!/bin/sh
exec tail -n +3 $0

menuentry "liveCD" {
  loopback loop (hd0,8)/DEB_LIKE/ub_amd_this.iso
  linux  (loop)/casper/vmlinuz isofrom=/dev/sda8/DEB_LIKE/ub_amd_this.iso root=/dev/sda8 boot=casper quiet nosplash noprompt
  initrd (loop)/casper/initrd.lz
}

При загрузке:

Код: Выделить всё

error: file not found.
error: no such disk.
error: you need to load the kernel first.
Нажмите любую клавишу для продолжения ...

Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

grub нумерует разделы последовательно. причём с нуля.
можно в grub shell поискать файл:

Shell

$ sudo grub Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> find /etc/fstab find /etc/fstab (hd0,0) grub>

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
27.06.2010 20:31
grub нумерует разделы последовательно. причём с нуля.

в grub2 c 1 для разделов.
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

переписал /etc/grub.d/40_custom на как в первом посте.

Код: Выделить всё

menuentry "liveCD" {
  loopback loop (hd0,8)/DEB_LIKE/ub_amd_this.iso
  linux  (loop)/casper/vmlinuz boot=casper iso-scan/filename=/DEB_LIKE/ub_amd_this.iso
  initrd (loop)/casper/initrd.lz
}

Ноут перегружается при попытке загрузиться по пункту меню grub`a '"LiveCD"
: (
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
29.06.2010 21:17
переписал /etc/grub.d/40_custom
вы прочитали комментарий в этом файле прежде, чем его изменять?

Shell

$ cat /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
29.06.2010 21:35
richrd писал(а):
29.06.2010 21:17
переписал /etc/grub.d/40_custom
вы прочитали комментарий в этом файле прежде, чем его изменять?

Shell

$ cat /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.



Да. Но может чего то упустил? Как я понял "exec tail -n +3 $0" менять не надо.
Меню "LiveCD" добавляется.
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
29.06.2010 21:17
(hd0,8)
вы проверяли командой find в grub-шелле?
на всякий случай сделайте ту же проверку при загрузке.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
30.06.2010 01:12
richrd писал(а):
29.06.2010 21:17
(hd0,8)
вы проверяли командой find в grub-шелле?
на всякий случай сделайте ту же проверку при загрузке.

не понял что нужно сделать.

После оптимизации дискового пространства /dev/sda8 переехал на /dev/sda5
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
01.07.2010 22:47
не понял что нужно сделать.
пост номер восемь перечитайте, пожалуйста.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
02.07.2010 03:39
richrd писал(а):
01.07.2010 22:47
не понял что нужно сделать.
пост номер восемь перечитайте, пожалуйста.

aaa .. , но у меня второй grub.
У него нет find. ls показывает всевозможные разделы, среди которых и (hd0,5) // бывший (hd0,8)
После того как при загрузке перешёл в командную строку grub`a первая строчка по tab`у дописывается полностью,
а на второй после (loop)/ по по табу перегружается
Может дело в том что grub не на /dev/sda5 установлен?
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
02.07.2010 21:13
У него нет find
зато есть search.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
05.07.2010 18:14
richrd писал(а):
02.07.2010 21:13
У него нет find
зато есть search.

Правильно ли я понял, что нужно удостовериться в наличии (hd0,5)?
По search -u <UUID_раздела_с_образами> получил:
Изображение
На той же картинке виден вывод
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
05.07.2010 20:58
Правильно ли я понял, что нужно удостовериться в наличии (hd0,5)?
тему топика видите? вот и я предлагал удостовериться с помощью find/search в том, что у вас и у grub-а одинаковая точка зрения на местонахождение файла с образом.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
06.07.2010 00:16
тему топика видите?

Вижу. Есть повод в этом сомневаться?
sash-kan писал(а):
06.07.2010 00:16
вот и я предлагал удостовериться с помощью find/search в том, что у вас и у grub-а одинаковая точка зрения на местонахождение файла с образом.

вы удостоверились что они одинаковы?
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Загрузка iso через grub2

Сообщение sash-kan »

richrd писал(а):
06.07.2010 20:27
вы удостоверились что они одинаковы?
мне это не нужно. я предлагал проверить вам. в ответ на ваш пост #7. ничего более.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

sash-kan писал(а):
06.07.2010 20:47
richrd писал(а):
06.07.2010 20:27
вы удостоверились что они одинаковы?
мне это не нужно. я предлагал проверить вам. в ответ на ваш пост #7. ничего более.

Ту конфигурацию больше не проверить... Когда она была ещё актуальна я пробовал (hd0,8<+-1>) что бы наверняка.
В текущей же конфигурации (hd0,5) тот самый раздел где находится iso образ. Grub по tab в ком строке весь путь до него и его самого дополняет.
Я попробовал на нетбуке эту фишку. Получилось. Загрузился. Видимо с железом что то не то на ноутбуке. Или у grub`a есть ограничения неведомые.

Интересно что весь раздел, на котором лежит iso образ, монтируется в /isodevice
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

Написал такой bash файл для добавления образов загрузки:

Код: Выделить всё

#!/bin/bash
path_to_iso=<path>
path_in_dev=<path>
iso_names=`ls $path_to_iso | grep iso`
if [ $1 != '' ];
then
  echo 'menuentry "'$1'" {
          loopback loop (hd0,5)'$path_in_dev'/'$1'
          linux  (loop)/casper/vmlinuz boot=casper iso-scan/filename='$path_in_dev'/'$1'
          initrd (loop)/casper/initrd.lz
         }' >> /etc/grub.d/40_custom
else
  `sed -e '7,$d' /etc/grub.d/40_custom > /etc/grub.d/40_custom_new`
  for file in $iso_names
  do
    echo 'menuentry "'$file'" {
             loopback loop (hd0,5)'$path_in_dev'/'$file'
             linux  (loop)/casper/vmlinuz boot=casper iso-scan/filename='$path_in_dev'/'$file'
             initrd (loop)/casper/initrd.lz
            }' >> /etc/grub.d/40_custom_new
  done
  mv /etc/grub.d/40_custom_new /etc/grub.d/40_custom
  chmod 0744 /etc/grub.d/40_custom
fi
update-grub

Как сделать что бы
  • По $path_in_dev определялось правильное (hdi,j)
  • По образу определять правильные linux и initrd параметры
  • Имя пункта по красивее было
?
Предполагаю по поводу [2] что iso образы можно временно монтировать в цикле и просматривать его.
Но как это сделать универсально?
Вот, например для GNU/Hurd-live-cd меню:

Код: Выделить всё

kernel /boot/gnumach.gz
module /hurd/iso9660fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create) $(task-resume)
module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)

Для Jnode:

Код: Выделить всё

title JNode (default)
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
kernel /jnode32.gz mp=no kdb
module /default.jgz

Для Slax initrd.lz и initrd.gz лежат в /boot

Есть какие нибудь по bash файлу предложения/замечания?
Спасибо сказали:

AlexandrMakukhin
Сообщения: 67
ОС: Kubun9.10/10.04/SUSE11.2/WinXP

Re: Загрузка iso через grub2

Сообщение AlexandrMakukhin »

Я добавил из Kubuntu 9.10 в /media/disk/boot/grub/grub.cfg, относящейся к Kubuntu 10.10 (Которая сейчас поломана) эти строчки

menuentry "ubuntu live-cd" {
loopback loop (hd0,7)/boot/kubuntu-10.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu.iso
initrd (loop)/casper/initrd.lz
}

и перезагрузился. В Grub2 появилась соответствующая строчка "ubuntu live-cd", а вот загрузится в этот пункт не могу, хоть ISO помещён в /media/disk/boot.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19070
Статус: ✡ иностранный агент
ОС: Debian GNU/Linux

Re: Загрузка iso через grub2

Сообщение Bizdelnick »

AlexandrMakukhin писал(а):
16.10.2010 12:14
загрузится в этот пункт не могу

Какими словами ругается?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

AlexandrMakukhin
Сообщения: 67
ОС: Kubun9.10/10.04/SUSE11.2/WinXP

Re: Загрузка iso через grub2

Сообщение AlexandrMakukhin »

Bizdelnick писал(а):
16.10.2010 12:41
AlexandrMakukhin писал(а):
16.10.2010 12:14
загрузится в этот пункт не могу

Какими словами ругается?

Ни какими. Просто строчка относящейся к Live-CD не активна.
У меня только-что возникла идея загрузится в консольном режиме в Kubuntu 10.04 и обновить Grub2 - sudo update-burg
Спасибо сказали:

AlexandrMakukhin
Сообщения: 67
ОС: Kubun9.10/10.04/SUSE11.2/WinXP

Re: Загрузка iso через grub2

Сообщение AlexandrMakukhin »

В консольном режиме в Kubuntu 10.04 перередактировал файл boot/grub/grub.cfg, изменив раздел диска на

Код: Выделить всё

loopback loop (hd1,1)/boot/kubuntu-10.10-desktop-i386.iso
и обновил GRUB2: sudo update-burg. После перезагрузки, пункт в GRUB2 с "Live-CD" отсутствует, хоть в /grub/grub.cfg строчки относящейся к Live-CD остались записанными.
Спасибо сказали:

richrd
Сообщения: 226

Re: Загрузка iso через grub2

Сообщение richrd »

richrd писал(а):
06.07.2010 21:08
Видимо с железом что то не то на ноутбуке. Или у grub`a есть ограничения неведомые.

Обновился до Ubuntu natty (development branch), загрузка с образа заработала : )
Спасибо сказали: