LINUX.ORG.RU

GPT, openSUSE, GRUB 2

 , ,


0

1

Предыстория

Купил USB HDD, сформатировал в ext4 и начал использовать. При этом таблицу разделов сделал не MSDOS, а GPT - всё равно только в линуксе будет использоваться.

И вдруг сломался основной SATA HDD. Нет проблем, есть флешка с установленной на неё openSUSE 12.1. Установил туда Steam, сделав символьную ссылку на USB HDD, всё работало. Затем выяснилось что большие игры, занимающие много ОЗУ, почему-то вылетают. Team Fortress 2 выдал «Out of memory», а Natural Selection 2 и Serious Sam 3 закрылись без ошибки. А майнкрафта мне мало... В общем достала меня система на флешке, решил устанавливать систему на USB HDD. openSUSE 12.2 (в 12.3 systemd).

История

Установил VirtualBox, установил в него драйвер USB 2.0, пробросил в виртуальную машину USB HDD. Зачем? Лень искать чистый DVD-RW, поэтому я просто дал образ ISO эмулятору. Увы, не сработало: всё то же Out of memory, даже если выделять всего лишь 256 Мб.

Пошёл и подключил USB HDD к ноуту. Там система на HDD и установка пошла. На 60% вдруг ошибка «Read only file system». Удалил все файлы, начал заново. Теперь на 80%. В третий раз я не стал отмечать много галочек для установки программ, отметив только минимум. Установилось! Выключил VirtualBox и понёс USB HDD к нормальному физическому компьютеру: после перезагрузки идёт второй этап установки, когда ещё определяется оборудование.

Не сработало... Пишет ошибку про какой-то Partition (если важно, дам её полный текст). Первая мысль «Инсталлятор же спрашивал, нужно ли прописывать менеджер загрузки в MBR, а я отказался...». Вернулся к ноуту, выполнил команды:

athlon_neo zenitur # mount -t proc none /media/disk-1/proc
athlon_neo zenitur # mount -t sysfs sys /media/disk-1/sys
athlon_neo zenitur # mount -o bind /dev /media/disk-1/dev
athlon_neo zenitur # chroot /media/disk-1/ /bin/bash
athlon_neo:/ # grub2-install /dev/sdc
/usr/sbin/grub2-bios-setup: предупреждение: метка раздела GPT не имеет BIOS Boot Partition; встраивание невозможно.
/usr/sbin/grub2-bios-setup: предупреждение: Встраивание невозможно. При имеющихся параметрах GRUB можно установить только с помощью списка блоков (blocklists). Однако, список блоков является НЕНАДЁЖНЫМ механизмом и его лучше не использовать..
/usr/sbin/grub2-bios-setup: ошибка: не будет продолжена с использованием blocklists.
athlon_neo:/ #

Всё, я устал. Что ему не нравится?

P.S. По поводу «лень было искать чистый DVD-RW» кто-то наверное сразу сообразил, что в GRUB2 можно прописать образ ISO отдельным пунктом для загрузки. Я знаю и уже пробовал - не получается.

все правильно ругается. В начале диска должна быть партиция «EF02 BIOS boot partition»

Если диск меньше 2Тб, то пользы от gpt нет.

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

Ровно 2 Тб. Что сделать чтобы заработало? У меня сейчас 3 часа ночи и я могу включить GParted и сказать ему «уменьшить раздел слева». За ночь может быть и сделается.

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

Обязательно ли в начале? Если можно в конце, то я за минуту создам нужный раздел.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)

grub2-install --force /dev/sdc как временное решение

e1nste1n ★★★★★ ()

Ну ребят, ну что такое... Логи:

Welcome - Parted Magic (Linux 3.8.13-pmagic64)

root@partedmagic:~# gdi
gdialog  gdisk    
root@partedmagic:~# gdisk /dev/sda
sda   sda1  sda2  
root@partedmagic:~# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sda: 1953504688 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 129DEA74-6E33-421E-8703-C74769D9CCA3
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953504654
Partitions will be aligned on 2048-sector boundaries
Total free space is 5485 sectors (2.7 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      1949306879   929.5 GiB   EF00  
   2      1949308928      1953503231   2.0 GiB     8200  

Command (? for help): n
Partition number (3-128, default 3): 
First sector (34-1953504654, default = 1949306880) or {+-}size{KMGTP}: 
Last sector (1949306880-1949308927, default = 1949308927) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF02
Changed type of partition to 'BIOS boot partition'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
root@partedmagic:~# mkdir /mnt/disk
root@partedmagic:~# mount -t ext4 /dev/sda1 /mnt/disk/
root@partedmagic:~# mount -t proc none /mnt/disk/proc
root@partedmagic:~# mount -t sysfs sys /mnt/disk/sys
root@partedmagic:~# mount -o bind /dev /mnt/disk/dev
root@partedmagic:~# chroot /mnt/disk /bin/bash
root@partedmagic:/# grub2-install --modules="part_gpt ext2" --no-floppy /dev/sda1
/usr/sbin/grub2-bios-setup: warning: File system `ext2' doesn't support embedding.
/usr/sbin/grub2-bios-setup: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub2-bios-setup: error: will not proceed with blocklists.
root@partedmagic:/#

. Объясняю что сделал. Открыл GParted, уменьшил ext4 на 1 Мб. Далее по ссылке выше сказано «Поставьте флаг bios_grub прямо на неформатированный раздел. Некоторые версии GParted этого не умеют - сделайте раздел FAT16 и делайте это на нём». У меня как раз не хочет на неформатированном разделе менять флаги, а FAT16 невозможно создать.

Окей, берём gdisk, «n» (новый раздел), два раза Enter, Hex Code: «EF02». Применяем! Смотрим что создалось в GParted: а создался ext2 сразу с нужным флагом!

Потом я снова попробовал установить GRUB2. Логи выше. Он издевается надо мной

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

Снёс все файлы новой системы - надоело.

Что ещё пробовал. Уменьшил ext4 ещё на 19 Мб, так как GParted сказал, что сделает fat16 только из раздела 20 Мб. Но GRUB2 сказал что и FAT тоже не поддерживает встраивание. Так во что его сформатировать, чтобы заработало?!

И зачем вообще маленький второй раздел, кто это придумал?!

Это ладно ещё. Было 4 часа ночи и я так запутался. В виртуальной машине нужный диск /dev/sda, а в реальной /dev/sdc, я перепутал и снёс загрузчик ноута. Сразу и починил, но тоже неприятно.

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

вы разницу между меткой раздела и фс понимаете?

у вас создался раздел который имеет тип Linux и подозреваю что часть вашей ext4

рекомендую загрузить system rescue cd и поправить из номального gparted пока ничего не угробилось

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

совет на будущее: у Zalman есть коробочки для дисков с виртуальным приводом( железным ) , к примеру ve200 ve400

так вот, не так они много стоят чтоб так развлекаться.

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

ну могу сказать одно - проверь gdiskом флаг, проверь партедом

я лично гдиском делал.

но было давно и в аварийном порядке ( мать с ефи полыхнула), потому не помню

Slackware_user ★★★★★ ()

Теперь команда grub2-install /dev/sda работает без ошибок (даже без --force). При загрузке вижу слово GRUB и всё.

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

В инсталляторе кубунты создал неформатированный раздел на 10 мегабайт и выставил ему тип «загрузочная область BIOS» или как-то так. Из GParted - создать раздел и добавить флаг bios-grub, вроде больше никаких движений не было.

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

> Из GParted - создать раздел и добавить флаг bios-grub,

Ну так при создании раздела спрашивают FS. Я выбрал ext2 и получил ошибку GRUB. На Википедии сказано что надо FAT16 - не создаётся. Я думал потому что GPT, но нет, потому что надо 20+ Мб. Сделал - снова ошибка GRUB. Сделал «Unformatted» - ну наконец-то нет ошибки! Но теперь «GRUB _». :-(

Нашёл эту ссылку и тут есть кое-какие советы. Как раз openSUSE 12.2. Буду пробовать, но сейчас нет сил. Вот если бы я получил подробную инструкцию с пунктами, я бы нашёл в себе силы встать и сделать. А пока всё на уровне «англоязычная страница форума и не факт что теперь заработает», буду заниматься другими делами.

Например там говорится «Взял openSUSE DVD, выбрал „Загрузиться с первого жёсткого диска“ и вот тогда заработало». И вдруг выяснилось что я потерял загрузочную флешечку, на которой такой пункт есть! Ищу-ищу, опять настроение испортилось. Зато вне компьютерного мира сегодня произошло аж три хороших события! Так что на время я оставляю компьютеры.

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

Ну так при создании раздела спрашивают FS

А ещё там есть пункт «неформатированный»...

Valkeru ★★★★ ()

Сконвертировал GPT в MBR. Установил снова. Снова ошибка: GRUB «Error 2», GRUB2 «GRUB Recovery:». Но на ноуте всё работает. Решил с помощью GRUB на флешке. Туда же пришлось перенести /boot, так как на этапе GRUB войти на USB HDD ещё нельзя. Только после загрузки initrd.

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

Сконвертировал GPT в MBR

Молодец, именно так надо закапывать древнее говно

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

Да, вот так вот убунту ненавидеть, а на элементарных вещах ... )))

Я этот же ввпорос за 5 минут решил. И не откатывался назад на MBR.

vovans ★★★★★ ()
26 апреля 2014 г.
Ответ на: комментарий от Vernat

Я понял что есть такие варианты загрузочных дисков.

1). LiveCD и LiveUSB. Работают всегда и везде.

2). Поставить систему прям на флешку. Не рекомендуется, моя Opensuse в этом варианте «тупит». Причина проста: берём флешку, копируем на неё файл. 10 мегабайт в секунду. Копируем два файла. 1 мегабайт в секунду у каждого. Дело в том что параллельная запись на флеш-дисках работает плохо, нужна последовательная. А установка дистрибутива Linux - это запись сотен тысяч маленьких файлов по несколько килобайт. Такая система загружается на всех моих компах, но не загружается на одном ноутбуке 2007 года выпуска.

3). Система на USB HDD. Я не знаю почему, но на абсолютно всех компах, выпущенных до 2011 года, не загружается даже GRUB. У меня три варианта «почему»:

а). Они в принципе не умеют загружать систему с USB HDD

б). Виновата моя модель диска, например то что он USB 3.0

в). Виноват переходный период на UEFI: моя Opensuse 12.2 имеет начальную поддержку UEFI и спокойно с ним загружается. Возможно, при этом сломали BIOS + USB HDD. Например компы 2008 и 2009 лет не загружают GRUB ни в какую. Нетбук 2011 года загружает, хотя там BIOS, а не UEFI. Компы 2012 и 2013 года загружают с радостью

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от Vernat

Ах да, как решил проблему. Взял флешку из пункта 2, на которую установлена Opensuse 12.1, однако в твоём случае подойдёт флешка из пункта 1. Отредактировал её GRUB, добавив пункт с Opensuse 12.2. Работает это так. Файлы vmlinuz и initramfs скопировал на саму флешку и они подгружаются оттуда. Затем если USB HDD не вставлен, система 10 секунд говорит что ищет его по UUID, потом показывает ошибку. Если USB HDD вставлен, GRUB передаёт ему загрузку.

Меня устраивает, но есть один минус. Если в центре управления системы YAST нажать «Разметка диска» или «Менеджер загрузки», на флешке затирается MBR. Глупый YAST думает что /dev/sda это жёский диск, с которого загружена система, ведь именно там GRUB и vmlinuz. А она загружена с /dev/sdb. Наверное нужно было добавить /dev/sda1 как /boot в /etc/fstab, но я не знаю точно.

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

Спасибо за ответ!у меня несколько иная проблема была, инсталер федоры не позволял продолжить установку, ругался на отсутвие загрузочного раздела, я вообще первый раз имею дело с uefi и gpt. Проблема была в том что не смотря на отключенный secureboot я загружался с лайв сиди при помощи uefi, а не в legacy режиме, вторая - то, что у меня на обоих винтах был раздел для /boot/efi, в итоге инсталер пытался ставиться на sda а не sdb, который предполагался быть загрузочным и на котором был /. В итоге не стал ковыряться до конца (вероятно зря) загрузился в legacy режиме, на обоих винтах gpt заменил на mbr, всё установилось и взлетело.

Vernat ★★ ()
7 октября 2014 г.
Ответ на: комментарий от Slackware_user

Так-то да. Просто жаль, что нет альтернативных прошивок, поддерживающих ext3/exte4. под ntfs дефрагментировать новые образы приходится. даже, если диск ssd.

ESTAF ★★★ ()

Внесу свою долю ереси.

# fdisk /dev/sda
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk
doesn't support GPT. Use GNU Parted.

Command (m for help): a
Partition number (1-4): 1

Command (m for help): w

Waldo-de-Kard ★★ ()
23 февраля 2015 г.
Ответ на: комментарий от ESTAF

не встречал. вот с тем что папки после записи файла из винды переставали читаться было.

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