LINUX.ORG.RU

Debian Squeeze на gpt - Куда и как инсталлятор ставит grub?


0

1

Приветствую о глубокоуважаемый олл.

Предистория: Ноут с W8. Надо поставить Linux второй системой.
Ставлю Multiarch Debian Squeeze. Уменьшаю раздел с W8 и добавляю root и swap. Таблица разделов в формате GPT
Ставлю Debian Squeeze x64 и при инсталляции не указываю раздел для grub и видимо он ставится на /dev/sda?. Всё взлетает но...

root@R0AD:~# grub-install /dev/sda
/usr/sbin/grub-setup: предупр: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
/usr/sbin/grub-setup: предупр: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использовать..
/usr/sbin/grub-setup: ошибка: не будет продолжена с использованием blocklists.
root@R0AD:~# grub-install /dev/sda7
/usr/sbin/grub-setup: предупр: Попытка установить GRUB на диск без разделов или на раздел. Лучше этого НЕ ДЕЛАТЬ..
/usr/sbin/grub-setup: предупр: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использовать..
/usr/sbin/grub-setup: ошибка: не будет продолжена с использованием blocklists.
root@R0AD:~#

Как мне перезаписать grub в случае его утраты? Например при какой либо диверсии со стороны W8.


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

Покажите список разделов диска (вывод parted).

#parted -l
Model: ATA WDC WD10JPVT-08A (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 1050MB 1049MB ntfs hidden, diag
2 1050MB 1322MB 273MB fat32 EFI system partition
3 1322MB 1456MB 134MB Microsoft reserved partition msftres
4 1456MB 945GB 943GB ntfs Basic data partition
5 945GB 945GB 369MB ntfs hidden, diag
6 945GB 959GB 13,4GB ntfs hidden, diag
7 959GB 983GB 24,7GB ext4 root boot
8 983GB 1000GB 17,0GB linux-swap(v1) swap

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

У тебя винда загружается через EFI, тебе не нужно ставить grub, тебе нужно ставить efi загрузчик (что там в дебиане хз).

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

У тебя винда загружается через EFI, тебе не нужно ставить grub, тебе нужно ставить efi загрузчик (что там в дебиане хз).

Нафига? Мне достаточно grub и грузить Linux а если надо будет то кнопку при загрузке и загружу винду через efi.
Сейчас так и работает но винда при апдейте снесла и grub и подпортила ext4 так что после fsck ручками я Wheezy не смог починить. apt-get ругался на отсутствие debconf и нельзя было его поставить.
В итоге переставил Wheezy и он встал но не понимаю куда записал grub - в /sda или /sda7 или еще куда?
Пока работает но если опять жахнет не понимаю как восстановить.
Прошлый раз grub вставал в rescue mode и я по:

set prefix=(hd0,gpt7)/boot/grub
insmod normal
normal

получал меню и система грузилась но восстановить обычный режим grub (с меню загрузки) не смог, он не ставился ни на /sda ни на /sda7
Надо с этим разобраться на будущее

Вот как то так...

sys0p ()
Ответ на: комментарий от bhfq

не нужно ставить grub, тебе нужно ставить efi загрузчик (что там в дебиане хз).

В Debian'е grub-efi.

i-rinat ★★★★★ ()
Ответ на: комментарий от sys0p

Код grub2 не помещается целиком в нулевой сектор, точнее в 466 байт, доступные для размещения кода загрузчика. Поэтому часть его кода помещается в эти 466 байт, а оставшаяся, в случае использования MBR таблицы разделов, записывается в область между нулевым сектором и первым сектором первого раздела, на новых дисках это 2047 секторов по 512 байт.

В случае GPT без создания дополнительного GPT раздела размером хотя бы 2Мб типом EF02 (bios_grub), куда как раз и будет записана оставшаяся часть кода загрузки GRUB2, установить grub2 не получится. Отсюда следует, что вам нужно либо создавать этот раздел, но т.к. у вас уже установлена Windows 8, то вам придётся её «подвинуть», а это, скорее всего, нежелательно, либо использовать сразу UEFI для загрузки Debian, почитайте в Internet инструкции по добавлению вызова ядра Linux напрямую в EFI, ну либо вам нужно использовать другой загрузчик, который понимает GPT.

Если вы захотите выбрать вариант использования другого загрузчика, то выбор тут не велик, хотя я, скорее всего, упускаю некоторые прочие возможности. Так вот, это grub-0.97 (Grub Legacy), которого сейчас нет в Debian и Lilo. Первый вы можете установить из прошлого релиза Debian или собрать из исходников, если всё же в текущем релизе Debian нет его, второй вы можете просто установить.

Код lilo и grub-0.97 целиком помещается в 466 байт нулевого сектора, поэтому необходимости создавать дополнительный раздел нет. В случае grub-0.97 в 466 байт нулевого сектора помещается весь код первого этапа запуска загрузчика, но в любом случае необходимости создавать дополнительный раздел нет.

В случае, если EFI не переключается в режим совместимости с BIOS, то вариантом остаётся вообще только lilo, а точнее elilo. Возможно есть патчи для grub-0.97 поддержки UEFI.

Удачи.

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

Сейчас так и работает но винда при апдейте снесла и grub и подпортила ext4 так что после fsck ручками я Wheezy не смог починить.

Про «подпортила ext4» звучит как-то странно. Хотя может для восмёрки это норма.

А файла /boot/grub/menu.lst случаем нет? Может инсталятор закатал grub-legacy?

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

Про «подпортила ext4» звучит как-то странно. Хотя может для восмёрки это норма.

Сложно сказать кто виноват. Я еще тот маньяк... переключаюсь из линукс в Win8 через гибернейт. Вот в очередной раз переключился в W8 а она захотела обновится до W8.1 а я разрешил.... после обновления через гибернейт пеерключился в Linux и обнаружил что корень read-only. Грузанулся с флешки и fsck... тот много инодов пофиксил...

А файла /boot/grub/menu.lst случаем нет? Может инсталятор закатал grub-legacy?

Нет, там grub-pc

sys0p ()
Ответ на: комментарий от kostik87

Спасибо за толчек в нужном направлении. Всё решилось запуском gparted, уменьшением swap на 10Mb (для круглого числа), созданием раздела 10Mb и установка флага bios_grub.

После этого получилось:

# parted -l
Model: ATA WDC WD10JPVT-08A (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 1050MB 1049MB ntfs hidden, diag
2 1050MB 1322MB 273MB fat32 EFI system partition boot
3 1322MB 1456MB 134MB Microsoft reserved partition msftres
4 1456MB 945GB 943GB ntfs Basic data partition
5 945GB 945GB 369MB ntfs hidden, diag
6 945GB 959GB 13,4GB ntfs hidden, diag
7 959GB 983GB 24,7GB ext4 root boot
8 983GB 1000GB 16,9GB linux-swap(v1) swap
9 1000GB 1000GB 10,5MB bios_grub


и # grub-install /dev/sda
Installation finished. No error reported.

Теперь осталось еще изучить загрузку через efi

sys0p ()

в случае потери Граба, есть виртуалки, с программами по востановлению Граба.

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