Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Редактирование загрузочного меню Grub2  (Прочитано 2757 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 100
  • Водитель НЛО
    • Просмотр профиля
Здравствуйте уважаемые форумчане.
Появилась у меня проблема - не могу заставить работать загрузочное меню в Grub2.
Задача: Создать загрузочное меню, аналог виндового с Acronis Disk Director и True Immage. Необходимо добавить софт:
gparted
memtest+victoria
clonezilla
slitaz

Методом проб и ошибок, перебрав несколько мануалов, запилил свой. Делюсь, может кому пригодится.

Если перейти в коммандную строку grub2 и выполнить ls, то по выводу будет видно, что загрузчик видит разделы как
(hd0,msdos1), (hd0,msdos2) и так далее.
У нас раздел boot это sda3 в системе и (hd0,msdos3) в загрузчике.
На нем создаем папку live и скидываем туда образы или папки.

редактируем файл меню
nano /etc/grub.d/40_custom

туда пишем

menuentry "clonezilla-live-2.2.3-25-amd64" {
        set isofile="/live/clonezilla-live-2.4.7-8-amd64.iso"
        loopback loop [b](hd0,msdos3)[/b]$isofile
        linux (loop)/live/vmlinuz findiso=$isofile boot=live union=overlay username=user config
        initrd (loop)/live/initrd.img
}

menuentry "Slitaz live 4.0" {
        set isofile="/live/slitaz-4.0-core.iso"
        loopback loop [b](hd0,msdos3)[/b]$isofile
        linux    (loop)/boot/bzImage isofrom=$isofile boot=live quiet vga=791 noeject noprompt
        initrd   (loop)/boot/rootfs.gz
}

menuentry 'GParted 64-bit ' {
        set isofile_abspath='/live/gparted-live-0.26.1-5-i686.iso'
        loopback loop [b](hd0,msdos3)[/b]"${isofile_abspath}"
  linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='user' config components noswap noeject toram='filesystem.squashfs' ip='' nosplash findiso="${isofile_abspath}"
        initrd '(loop)/live/initrd.img'
}
menuentry "victoria+memtest" {
  linux16 [b](hd0,msdos3)[/b]/live/memdisk iso raw
  initrd16 [b](hd0,msdos3)[/b]/live/Victoria+Memtest.iso
}

Качаем iso с gparted, кладем в /boot/live/gparted

cd /home/mytestuser/Загрузки
wget http://heanet.dl.sourceforge.net/project/gparted/gparted-live-stable/0.26.1-5/gparted-live-0.26.1-5-i686.iso
cp /home/mytestuser/Загрузки/gparted-live-0.26.1-5-i686.iso /boot/live/

В папку кладем образ victoria+memtest, качаем загрузчик
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
unzip syslinux-6.03.zip -d /home/mytestuser/sys
cp /home/mytestuser/sys/bios/memdisk/memdisk /boot/live/

Качаем исошник clonezilla-live-2.4.7-8--amd64 кладем в /boot/live/

Остался последний пункт- Slitaz.
wget http://mirror.slitaz.org/iso/4.0/flavors/slitaz-4.0-core.iso
cp /home/mytestuser/Загрузки/slitaz-4.0-core.iso /boot/live/


сохраняем.
Выполняем:
update-grub2


Так вот, на одной машине данная инструкция отрабатывает отлично. Но на второй при попытке загрузке любого из новых пунктов выдает:

ошибка: нет такого раздела
ошибка: диск loop не найден
ошибка: сначала нужно загрузить ядро


Пользователь добавил сообщение 05 Октября 2016, 20:33:54:
« Последнее редактирование: 05 Октября 2016, 20:33:54 от CALL|KA »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6907
    • Просмотр профиля
Re: Редактирование загрузочного меню Grub2
« Ответ #1 : 06 Октября 2016, 04:57:32 »
Цитировать
...на одной машине данная инструкция отрабатывает отлично. Но на второй при попытке загрузке любого из новых пунктов выдает:

ошибка: нет такого раздела
ошибка: диск loop не найден
ошибка: сначала нужно загрузить ядро
Посмотрим как вы грузите clonezilla
Цитировать
  loopback loop (hd0,msdos3)$isofile
Команда загрузчику подключить исо-файл с третьего раздела первого диска как лооп-устройтво.
Если на другом компьютере исо-файл не на третьем разделе первого диска - работать не будет. Попробуйте так.
menuentry "clonezilla-live-2.2.3-25-amd64" {
  src="/live/clonezilla-live-2.4.7-8-amd64.iso"
  search -f ${src} -n -s
  loopback loop ${src}
  linux (loop)/live/vmlinuz findiso=$src boot=live union=overlay username=user config
  initrd (loop)/live/initrd.img
}
Команда search найдет устройтво, на котором находится исо-файл, и подключит его как лооп.

Оффлайн CALL|KA

  • Автор темы
  • Участник
  • *
  • Сообщений: 100
  • Водитель НЛО
    • Просмотр профиля
Re: Редактирование загрузочного меню Grub2
« Ответ #2 : 06 Октября 2016, 12:04:07 »
Команда загрузчику подключить исо-файл с третьего раздела первого диска как лооп-устройтво.
Если на другом компьютере исо-файл не на третьем разделе первого диска - работать не будет. Попробуйте так.

Я на другом ПК сменил раздел, но получаю ошибку. Поэтому и обратился на форум.

Команда search найдет устройтво, на котором находится исо-файл, и подключит его как лооп.

В тот то и суть проблемы, что устройство sdb8 у меня один, соответственно (hd1,msdos8) тоже один. А грузится с таким настройками не хочет.


Благодарю, все заработало, кроме последнего пункта victoria+memtest. Как быть с адресацией в нем?



UPD:
Последний пункт для второго ПК заработал так:

menuentry "victoria+memtest" {
    linux16 (hd0,3)/live/memdisk iso raw
    initrd16 (hd0,3)/live/Victoria+Memtest.iso
}
« Последнее редактирование: 06 Октября 2016, 14:20:23 от CALL|KA »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6907
    • Просмотр профиля
Re: Редактирование загрузочного меню Grub2
« Ответ #3 : 06 Октября 2016, 13:03:59 »
Цитировать
...кроме последнего пункта victoria+memtest. Как быть с адресацией в нем?
С флешки викторию запускаю так
menuentry 'Victoria 3.x & MHDD 4.x' {
  insmod linux16
  linux16 /boot/syslinux/memdisk ima raw
  initrd16 /opt/vcr.img
}
С винта не запускал. Сейчас попробую.


Пользователь добавил сообщение 06 Октября 2016, 13:53:09:
Запуск Victoria с винчестера. На винте у меня два раздела. Каталог /boot/grub - на первом разделе.
Скопировал образ виктории на первый раздел. Загрузилась так-же, как с флешки.
Скопировал образ виктории на второй раздел - не загрузилась.
Решение такое. На второй раздел скопировал /boot/syslinux/memdisk. Ссылку в меню груб сделал следующую
menuentry 'Victoria 3.x & MHDD 4.x' {
  src='/opt/vcr.img'
  insmod linux16
  search -f ${src} -n -s
  linux16 /boot/syslinux/memdisk ima raw
  initrd16 /opt/vcr.img
}
Проверил - виктория запускается с любого раздела. Условие - memdisk и vcr.imd должны быть на одном разделе.
« Последнее редактирование: 06 Октября 2016, 13:53:09 от andytux »

 

Страница сгенерирована за 0.03 секунд. Запросов: 25.