Загрузка iso через grub2
Модератор: Bizdelnick
Загрузка iso через grub2
Решил воспользоваться этой возможностью и сделать загрузочную флешку. Такую, чтобы достаточно было кинуть файл в нужный каталог прямо на 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".
Почему так может быть?
Делается довольно просто. Поставил на устройство граб, в /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".
Почему так может быть?
Re: Загрузка iso через grub2
а устройство-то верно указываете?
Интеллект — это способность избегать выполнения работы, но так, чтобы она при этом была сделана.
Re: Загрузка iso через grub2
Это не решение проблемы, но так у людей работает
Похоже вы всё делаете правильно.
1 Единственное отличие я нашёл, что в указанной статье используются ключи noeject noprompt --
2 Ещё можете попробовать установить grub на внутренний HDD. (не самое лучшее решение)
3 Также попищите программы для дефрагментации конкретного файла (Например grub1 не грузится если файл grldr фрагментирован) и дефрагментируйте ISO
4 Максимально возможный размер файла для тома FAT32 — 4 ГБ — 4 294 967 296 байт Проверьте, не вылезает ли размер ISO за указанные диапазоны
Похоже вы всё делаете правильно.
1 Единственное отличие я нашёл, что в указанной статье используются ключи noeject noprompt --
2 Ещё можете попробовать установить grub на внутренний HDD. (не самое лучшее решение)
3 Также попищите программы для дефрагментации конкретного файла (Например grub1 не грузится если файл grldr фрагментирован) и дефрагментируйте ISO
4 Максимально возможный размер файла для тома FAT32 — 4 ГБ — 4 294 967 296 байт Проверьте, не вылезает ли размер ISO за указанные диапазоны
Re: Загрузка iso через grub2
для создания Live USB системы из ISO-образа подойдёт,
а для загрузки в live режиме с разных iso образов - каждый раз нужно переделывать USB носитель.
to no0b:
Это надо в /etc/grub.d/40_custom прописывать. Что бы после update-grub не прописывать снова.
Вот только у меня на (hd0,8) не находит файл : (
Re: Загрузка iso через grub2
Код: Выделить всё
$ 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.
Нажмите любую клавишу для продолжения ...
Re: Загрузка iso через grub2
grub нумерует разделы последовательно. причём с нуля.
можно в grub shell поискать файл:
можно в 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
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
переписал /etc/grub.d/40_custom на как в первом посте.
Ноут перегружается при попытке загрузиться по пункту меню grub`a '"LiveCD"
: (
Код: Выделить всё
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"
: (
Re: Загрузка iso через grub2
вы прочитали комментарий в этом файле прежде, чем его изменять?
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
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
sash-kan писал(а): ↑29.06.2010 21:35вы прочитали комментарий в этом файле прежде, чем его изменять?
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" добавляется.
Re: Загрузка iso через grub2
вы проверяли командой find в grub-шелле?
на всякий случай сделайте ту же проверку при загрузке.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
не понял что нужно сделать.
После оптимизации дискового пространства /dev/sda8 переехал на /dev/sda5
Re: Загрузка iso через grub2
пост номер восемь перечитайте, пожалуйста.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
aaa .. , но у меня второй grub.
У него нет find. ls показывает всевозможные разделы, среди которых и (hd0,5) // бывший (hd0,8)
После того как при загрузке перешёл в командную строку grub`a первая строчка по tab`у дописывается полностью,
а на второй после (loop)/ по по табу перегружается
Может дело в том что grub не на /dev/sda5 установлен?
Re: Загрузка iso через grub2
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
Правильно ли я понял, что нужно удостовериться в наличии (hd0,5)?
По search -u <UUID_раздела_с_образами> получил:
На той же картинке виден вывод
Код: Выделить всё
ls -la
Re: Загрузка iso через grub2
тему топика видите? вот и я предлагал удостовериться с помощью find/search в том, что у вас и у grub-а одинаковая точка зрения на местонахождение файла с образом.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
Вижу. Есть повод в этом сомневаться?
вы удостоверились что они одинаковы?
Re: Загрузка iso через grub2
мне это не нужно. я предлагал проверить вам. в ответ на ваш пост #7. ничего более.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Загрузка iso через grub2
Ту конфигурацию больше не проверить... Когда она была ещё актуальна я пробовал (hd0,8<+-1>) что бы наверняка.
В текущей же конфигурации (hd0,5) тот самый раздел где находится iso образ. Grub по tab в ком строке весь путь до него и его самого дополняет.
Я попробовал на нетбуке эту фишку. Получилось. Загрузился. Видимо с железом что то не то на ноутбуке. Или у grub`a есть ограничения неведомые.
Интересно что весь раздел, на котором лежит iso образ, монтируется в /isodevice
Re: Загрузка iso через grub2
Написал такой bash файл для добавления образов загрузки:
Как сделать что бы
Предполагаю по поводу [2] что iso образы можно временно монтировать в цикле и просматривать его.
Но как это сделать универсально?
Вот, например для GNU/Hurd-live-cd меню:
Для Jnode:
Для Slax initrd.lz и initrd.gz лежат в /boot
Есть какие нибудь по 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 файлу предложения/замечания?
-
- Сообщения: 67
- ОС: Kubun9.10/10.04/SUSE11.2/WinXP
- Контактная информация:
Re: Загрузка iso через grub2
Я добавил из Kubuntu 9.10 в /media/disk/boot/grub/grub.cfg, относящейся к Kubuntu 10.10 (Которая сейчас поломана) эти строчки
и перезагрузился. В Grub2 появилась соответствующая строчка "ubuntu live-cd", а вот загрузится в этот пункт не могу, хоть ISO помещён в /media/disk/boot.
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
- Модератор
- Сообщения: 20791
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Загрузка iso через grub2
Какими словами ругается?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 67
- ОС: Kubun9.10/10.04/SUSE11.2/WinXP
- Контактная информация:
Re: Загрузка iso через grub2
Ни какими. Просто строчка относящейся к Live-CD не активна.
У меня только-что возникла идея загрузится в консольном режиме в Kubuntu 10.04 и обновить Grub2 - sudo update-burg
-
- Сообщения: 67
- ОС: Kubun9.10/10.04/SUSE11.2/WinXP
- Контактная информация:
Re: Загрузка iso через grub2
В консольном режиме в Kubuntu 10.04 перередактировал файл boot/grub/grub.cfg, изменив раздел диска на и обновил GRUB2: sudo update-burg. После перезагрузки, пункт в GRUB2 с "Live-CD" отсутствует, хоть в /grub/grub.cfg строчки относящейся к Live-CD остались записанными.
Код: Выделить всё
loopback loop (hd1,1)/boot/kubuntu-10.10-desktop-i386.iso