LINUX.ORG.RU

Grub и initrd на флешке

 , ,


0

2

Добрый день! У меня ситуация: Есть SSD накопитель, которого не видит BIOS, я поставил туда Mandriva 2012.10, она поставилась за счет модулей вшитых в Мандриву, При включении компа BIOS все равно не видит SSD, поэтому я решил сделать флешку с grub'ом первой версии заисать туда Мандривный /boot, из initrd которого подгрузятся нужные модули и SSD станет виден Итак что я делал по порядку:
1. Скинул с SSD на свой комп(под Suse) , папку /boot
2. Форматнул флешку

mkfs.ext3 /dev/sdb
создал раздел и форматнул его:
/dev/sdb1 && mkfs.ext3 /dev/sdb1
, при помощи fdisk записал на флешку grub, делал это все на другом компе под SuSe hd0 - диск на Suse hd1 - флешка на Suse m
grub > install (hd0,0)/mboot/grub/stage1 d (hd1) (hd0,0)/mboot/grub/stage2 p /(hd0,0)/mboot/grub/menu.lst
3. скинул на флешку содержимое папки /boot который копирнул c ssd, все файлы кроме menu.lst ,его я настроил так:
[cut]
timeout 10
color black/cyan yellow/cyan
default 0

title mandriva
kernel /boot/vmlinuz BOOT_IMAGE=linux root=f6661881-a13d-484a-a459-c73501cc596f  splash=silent vga=788
initrd /boot/initrd.img
[/cut]
uuid флешки:f6661881-a13d-484a-a459-c73501cc596f
Какой файл menu.lst на SSD:

timeout 10
color black/cyan yellow/cyan
gfxmenu (hd0,4)/boot/gfxmenu
default 0

title linux
kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=cb47ff04-c7c5-0b58-99f7-a6f95eba9c62  splash=silent vga=788
initrd (hd0,4)/boot/initrd.img

title linux-nonfb
kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux-nonfb root=UUID=cb47ff04-c7c5-0b58-99f7-a6f95eba9c62 
initrd (hd0,4)/boot/initrd.img

title failsafe
kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=failsafe root=UUID=cb47ff04-c7c5-0b58-99f7-a6f95eba9c62  failsafe
initrd (hd0,4)/boot/initrd.img

Вставляю флешку в комп с SSD выходит просто надпись GRUB и мигает курсор, ничего больше не происходит, помогите пожалуйста.


Почему ″grub > install″, а не ″grub > setup″ или ″grub-install″?

Что такое ″/(hd0,0)/mboot/grub/menu.lst″? Почему в начале слеш? Почему (hd0,0), если «hd1 - флешка на Suse»? Откуда ″/mboot″?

Зачем ″root=f6661881-a13d-484a-a459-c73501cc596f″, если корневая система на SSD? Да и ″splash=silent″ на первое время убрать, вдруг какие сообщения о ошибках будут.

mky ★★★★★
()

set root=ФЛЕШКА ?

есть командная строка grub? Он на команды отвечает?

и как то странно вы флешку форматировали-разбивали

samson ★★
()
Ответ на: комментарий от mky

root=f6661881-a13d-484a-a459-c73501cc596f

тут тоже 100% косяк. Но походу не только тут, раз груб не читает своего конфига - значит сам груб не видит раздела /boot на флешке

samson ★★
()
Ответ на: комментарий от mky

Это я тут так написал, случайно поставил, с ней, наверняка grub установился бы с ошибками. root=f6661881-a13d-484a-a459-c73501cc596f нужна потому что initrd с модулем драйвра ssd должен находиться на флешке, тот вариант который на ssd я привел только для того, чтобы вы сравнили, да и то это не с того файла, просто это его копия с разными вариациями, а чуть выше него я привел последнюю правку menu.lst

OlegUP
() автор топика
Ответ на: комментарий от samson

Читал рызне статьи, в них было написано что grub ставится на сам диск sdX а файлы копируются в раздел sdXY, строки нету. sdb1 создал на 2048 позиции флешки

OlegUP
() автор топика
Ответ на: комментарий от samson

Скорее всего из за неправильной разметки тома?

OlegUP
() автор топика
Ответ на: комментарий от mky

Я в первый раз им пльзуюсь, grub-install.unsupported на suse есть, через него тоже пробовал, евообще есть разница?

OlegUP
() автор топика
Ответ на: комментарий от mky

splash убрал и изменил root= на root=UUID=, все равно не пашет.

OlegUP
() автор топика
Ответ на: комментарий от OlegUP

Это я тут так написал, случайно поставил, с ней, наверняка grub установился бы с ошибками.

Что вы тут написали неправильно, я не понял.

Не знаю, насчёт grub-install.unsupported, в смысле, почему он unsupported, но обычно, помимо grub-install, груб ставят парой команд — root и setup: http://wiki.gentoo.org/wiki/GRUB#Example_of_installing_GRUB_on_an_USB_harddisk .

Разницы быть не должно, но при условии, что правильно перечислены все параметры у install.

(hd0,0)/mboot/grub/stage1 d (hd1)

здесь вы устанавливаете (копируете) stage1 из файла на (hd0,0) в MBR (hd1), вроде как hd1 это у вас флешка, это более-менее правильно, хотя обычно stage1 есть и на том диске, куда вы ставите grub. Не знаю, что вам даёт опция ″d″, но дальше:

(hd0,0)/mboot/grub/stage2 p /(hd0,0)/mboot/grub/menu.lst

вы указываете, что stage2 лежит на (hd0,0), то есть на диске, хотя должна быть на флешке.

В grub'е команда ″find (hd1,0)/mboot/grub/stage2″ что показывает?

mky ★★★★★
()

кстати, о самом главном:

Есть SSD накопитель, которого не видит BIOS

точно не увидит? может лучше копать в эту сторону

samson ★★
()
Ответ на: комментарий от armbox

Как раз из-за этой хрени и косяк, в общем не надо форматировать, sdb а только раздел, сконфигурировал теперь при загрузке grub, stage1.5 error 18.

OlegUP
() автор топика
Ответ на: комментарий от OlegUP

Ну тут ясно что нужно либо пропустить 1.5 либо добавить, это сам обмозгую

OlegUP
() автор топика
Ответ на: комментарий от mandala

300000 р. вот чего боятся мои глаза и руки и ноги, плюс прошивка от декабря 2014, а ssd 2012 г.в.

OlegUP
() автор топика
Ответ на: комментарий от mky

install (hd0,0)/home/r2d2/mboot/grub/stage1 d (hd1) (hd0,0)/home/r2d2/mboot/grub/stage2 p (hd0,0)/home/r2d2/mboot/grub/menu.conf

Что вы тут написали неправильно, я не понял.

Поставил сшел случайно, в конфиг это не пошло, забейте опция d - device

Не знаю, насчёт grub-install.unsupported, в смысле, почему он unsupported, но обычно, помимо grub-install, груб ставят парой команд — root и setup: http://wiki.gentoo.org/wiki/GRUB#Example_of_installing_GRUB_on_an_USB_harddisk .

Долго объяснять на Сусе так надо. Спасибо почитаю

В grub'е команда ″find (hd1,0)/mboot/grub/stage2″ что показывает?

find (hd (нажимаю TAB)
Possible disks are:  hd0 hd1
find (hd1,0)/b (нажимаю TAB)
Error 17: Cannot mount selected partition
grub> find (hd1,0)/boot/grub/stage2
Error 15: File not found

# fdisk -l

Disk /dev/sda: 160.0 GB, 160040803840 bytes, 312579695 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe050e050

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048   104874367    52436160   83  Linux
/dev/sda2       209728575   312576704    51424065    f  W95 Ext'd (LBA)
/dev/sda3       125870080   209727487    41928704   83  Linux
/dev/sda5       209728638   212829119     1550241   82  Linux swap / Solaris
/dev/sda6       252927423   312576704    29824641    7  HPFS/NTFS/exFAT
/dev/sda7       228864000   252925951    12030976   83  Linux

Пункты таблицы разделов расположены не в дисковом порядке

Disk /dev/sdd: 2014 MB, 2014314496 bytes, 3934208 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x55211c32

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdd1   *        2048     3934207     1966080    6  FAT16

OlegUP
() автор топика
Ответ на: комментарий от OlegUP

Общий алгоритм установки grub на флешку.
1. Создать на флешке раздел. — судя по выводу fdisk сделано.
2. Отформатировать раздел. — вроде как mkfs.ext3 в этом топике было
3. Примонтировать флешку.
4. Скопировать файлы grub'а на флешку (обычно /boot/grub/)
5. Отмонтировать флешку
6. Запустить команду grub
7. В ней с помощью find найти где на флешке (hd1,0) лежат stage2 и menu.conf
8. Выполнить команду install

По поводу пунктов 4-8. Грубу указываюся пути относительно файловой системы на диске, а не пути, относительно общего корня, куда всё смонтировано. Поэтому, если вы монтировали флешку в /mnt и закопировали файл в ″/mnt/grub/stage2″, то для grub'а это будет ″(hd1,0)/grub/stage2″.

Ещё добавлю, что если у вас на флешке ext3, то нужно указать Id (тип раздела) 83 == Linux, а не FAT16. Команда ″fdisk″, ″t″. ЕМНИП, именно из-за этого grub ругается:

Error 17: Cannot mount selected partition
Данные это не затрёт, флешку переформатировать после этого не нужно.

mky ★★★★★
()
Ответ на: комментарий от mky

Попробую по вашему а пока:

grub> find (hd1,0)/boot/grub/stage2
 (hd0,0)
 (hd1,0)
Устранил это тем, что удалил раздел sdb1 и заново создал, не форматируя.

OlegUP
() автор топика
Ответ на: комментарий от OlegUP

grub> root (hd1,0) Filesystem type is ext2fs, partition type 0x83rub> root (hd1,0) Filesystem type is ext2fs, partition type 0x83

ну все он видит

Устранил это тем, что удалил раздел sdb1 и заново создал, не форматируя

в fdisk можно просто сменить тип раздела (t 83). фс остается не тронутой, немяется только один или неск байт в таблице разделов.

samson ★★
()
Ответ на: комментарий от OlegUP

grub> root (hd1,0) Filesystem type is ext2fs, partition type 0x83

root (hd1,0)
setup (hd1)

далее останется только править menu.lst или grub.conf на вашей флешке . Там надо правильно указать root в kernel cmdline. Это будет корень на вашем ssd

samson ★★
()
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от OlegUP

Если размечал с помощью fdisk, то это будут MBR разделы, для них нужно указывать не root=UUID, а root=PARTUUID.

Или используй gdisk для разметки, он создаёт GPT разделы. Для них root указывается по UUID.

armbox
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.