grub не загружается с ext4

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

grub не загружается с ext4

artiom
Поставил Stretch на шифрованный ZFS root, образующий зеркало на двух SSD.
На SSD GPT с тремя разделами типа 0x83: ext4 - /boot, luks1, luks2.
Всё более ли менее, но grub-pc не хочет грузиться с отдельного ext4
раздела ни в какую.
Делаю так:

- tar -C / -cf boot.tar
- Монтирую /dev/disk/by-id/ata-Micron-part1 в /boot
- tar -C -xf boot.tar
- update-initramfs -u -k all -t
- update-grub.
- Делаю grub-install /dev/disk/by-id/ata-Micron .
- umount /boot

Проходит, всё ok.
Перезагружаю - облом.
Чёрный экран, и мигает курсор: меню граба нет.

Вариант два:

- grub-install --boot-directory /

Вариант три:

- Монтирую /dev/disk/by-id/ata-Micron-part1 в /mnt
- mkdir /mnt/boot
- mount -bind /mnt/boot /boot
- Дальше всё тоже самое.

Не работает.

Самое смешное, что когда я ничего не монтирую, граб ругается на то, что
я хочу установить его для загрузки с шифрованного раздела и требует
установить опцию в /etc/default/grub.

После установки таковой, всё грузится, разблокируя _оба_ диска зеркала
на этапе запуска граба, запрашивая пароль, причём грузится с /boot на ZFS.
При этом, установка grub разрушает первый ext4 раздел.
Что для меня было открытием: grub может грузиться напрямую с
шифрованного раздела.

Но не работает загрузка с обычного ext4.
Что я делаю не так, по пунктам, и как это исправить?

Reply | Threaded
Open this post in threaded view
|

Re: grub не загру��ается с ext4B

yuri.nefedov
On Mon, 19 Mar 2018, artiom wrote:

> Поставил Stretch на шифрованный ZFS root, образующий зеркало на двух SSD.
> На SSD GPT с тремя разделами типа 0x83: ext4 - /boot, luks1, luks2.
> Всё более ли менее, но grub-pc не хочет грузиться с отдельного ext4
> раздела ни в какую.

   grup-pc для GPT разбиения требует каких-то особых телодвижений [1].
   Для себя решил, что проще сделать efi раздел
   и использовать grub-efi.

   Когда вы ничего не монтируете, видимо, граб находит
   дырку в начале диска перед первой партицией в которую и
   ставится. Должен бы давать предупреждение, что это опасно.
Ю.

   [1] https://wiki.archlinux.org/index.php/GRUB#GUID_Partition_Table_.28GPT.29_specific_instructions
Reply | Threaded
Open this post in threaded view
|

Re: grub не загружается с ext4

Dmitry Kulagin-2
In reply to this post by artiom
Для загрузки с gpt диска с помощью grub-pc вам надо создать пустой
раздел размером 1-2 МБ
тип BIOS Boot и устанавливать grub на весь диск, без этого современные
BIOS не грузятся
с gpt диска.
Device         Start        End   Sectors   Size Type
/dev/sda1       2048       4095      2048     1M BIOS boot
/dev/sda2       4096     229375    225280   110M EFI System
/dev/sda3     229376  393365503 393136128 187,5G Linux filesystem
/dev/sda4  393365504 1172123534 778758031 371,3G Linux filesystem
Такая разбивка диска позволяет грузиться и с efi и с legacy bios (в
случае проблем).
Схема каталогов после монтирования меняться не должна, т.е.
--Создаете раздел---
update-initramfs -u -k all -t
tar -C /boot -cf /boot.tar *
mount /dev/disk/by-id/ata-Micron-partN /boot
tar -C /boot -xf /boot.tar
grub-install /dev/disk/by-id/ata-Micron
update-grub
umount /boot

19.03.2018 23:31, artiom пишет:

> Поставил Stretch на шифрованный ZFS root, образующий зеркало на двух SSD.
> На SSD GPT с тремя разделами типа 0x83: ext4 - /boot, luks1, luks2.
> Всё более ли менее, но grub-pc не хочет грузиться с отдельного ext4
> раздела ни в какую.
> Делаю так:
>
> - tar -C / -cf boot.tar
> - Монтирую /dev/disk/by-id/ata-Micron-part1 в /boot
> - tar -C -xf boot.tar
> - update-initramfs -u -k all -t
> - update-grub.
> - Делаю grub-install /dev/disk/by-id/ata-Micron .
> - umount /boot
>
> Проходит, всё ok.
> Перезагружаю - облом.
> Чёрный экран, и мигает курсор: меню граба нет.
>
> Вариант два:
>
> - grub-install --boot-directory /
>
> Вариант три:
>
> - Монтирую /dev/disk/by-id/ata-Micron-part1 в /mnt
> - mkdir /mnt/boot
> - mount -bind /mnt/boot /boot
> - Дальше всё тоже самое.
>
> Не работает.
>
> Самое смешное, что когда я ничего не монтирую, граб ругается на то, что
> я хочу установить его для загрузки с шифрованного раздела и требует
> установить опцию в /etc/default/grub.
>
> После установки таковой, всё грузится, разблокируя _оба_ диска зеркала
> на этапе запуска граба, запрашивая пароль, причём грузится с /boot на ZFS.
> При этом, установка grub разрушает первый ext4 раздел.
> Что для меня было открытием: grub может грузиться напрямую с
> шифрованного раздела.
>
> Но не работает загрузка с обычного ext4.
> Что я делаю не так, по пунктам, и как это исправить?
>

Reply | Threaded
Open this post in threaded view
|

Re: grub не загружается с ext4

Михаил Касаджиков
Dmitry Kulagin <[hidden email]> писал(а) в своём письме Tue, 20 Mar 2018 15:50:48 +0300:

> Для загрузки с gpt диска с помощью grub-pc вам надо создать пустой
> раздел размером 1-2 МБ
> тип BIOS Boot и устанавливать grub на весь диск, без этого современные
> BIOS не грузятся
> с gpt диска.
> Device         Start        End   Sectors   Size Type
> /dev/sda1       2048       4095      2048     1M BIOS boot
> /dev/sda2       4096     229375    225280   110M EFI System
> /dev/sda3     229376  393365503 393136128 187,5G Linux filesystem
> /dev/sda4  393365504 1172123534 778758031 371,3G Linux filesystem

При использовании grub-efi этот специальный раздел необязателен, нужен только небольшой раздел vfat.

root@gpd7: ~# parted /dev/mmcblk0 u mib p
Model: MMC DJNB4R (sd/mmc)
Disk /dev/mmcblk0: 119276MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start    End        Size       File system  Name  Flags
  1      1,00MiB  101MiB     100MiB     fat16        EFI   boot, esp
  2      101MiB   601MiB     500MiB     ext2         boot
  3      601MiB   119275MiB  118674MiB               lvm   lvm

root@gpd7: ~# df -hT
Файловая система Тип    Размер Использовано  Дост Использовано% Cмонтировано в

/dev/mmcblk0p2   ext2     485M         185M  275M           41% /boot
/dev/mmcblk0p1   vfat     100M         3,5M   97M            4% /boot/efi


Такие размеры остались от бубунты, которая шла вместе с игрушкой. Потом, когда устанавливал debian, лень было всё с домашнего раздела куда-то переносить и переразбивать диск.

--
Написано с помощью почтового клиента Opera: http://www.opera.com/mail/
Reply | Threaded
Open this post in threaded view
|

Re: grub не загружается с ext4B

artiom
In reply to this post by yuri.nefedov


20.03.2018 03:25, [hidden email] пишет:

> On Mon, 19 Mar 2018, artiom wrote:
>
>> Поставил Stretch на шифрованный ZFS root, образующий зеркало на двух SSD.
>> На SSD GPT с тремя разделами типа 0x83: ext4 - /boot, luks1, luks2.
>> Всё более ли менее, но grub-pc не хочет грузиться с отдельного ext4
>> раздела ни в какую.
>
>   grup-pc для GPT разбиения требует каких-то особых телодвижений [1].
>   Для себя решил, что проще сделать efi раздел
>   и использовать grub-efi.
>
Плата себя как-то неважно ведёт при загрузке с EFI.
Не загрузился FreeNAS.
Когда переставил, сделав загрузку с "legacy MBR", всё загрузилось.

>   Когда вы ничего не монтируете, видимо, граб находит
>   дырку в начале диска перед первой партицией в которую и
>   ставится. Должен бы давать предупреждение, что это опасно.
> Ю.
>
>   [1]
> https://wiki.archlinux.org/index.php/GRUB#GUID_Partition_Table_.28GPT.29_specific_instructions
Предупреждения нет.
Да, надо было видимо создать раздел "для совместимости с BIOS".

Reply | Threaded
Open this post in threaded view
|

Re: grub не загружается с ext4

artiom
In reply to this post by Dmitry Kulagin-2
> Для загрузки с gpt диска с помощью grub-pc вам надо создать пустой
> раздел размером 1-2 МБ
> тип BIOS Boot и устанавливать grub на весь диск, без этого современные
> BIOS не грузятся
> с gpt диска.
> Device         Start        End   Sectors   Size Type
> /dev/sda1       2048       4095      2048     1M BIOS boot
> /dev/sda2       4096     229375    225280   110M EFI System
> /dev/sda3     229376  393365503 393136128 187,5G Linux filesystem
> /dev/sda4  393365504 1172123534 778758031 371,3G Linux filesystem
> Такая разбивка диска позволяет грузиться и с efi и с legacy bios (в
> случае проблем).
Мда, всё-таки надо было не мудрствовать и не пропускать создание
раздела, о чём было написано в инструкции.
Только потому, что я не вполне понимал, для чего он.
Только время потерял.

> Схема каталогов после монтирования меняться не должна, т.е.
> --Создаете раздел---
> update-initramfs -u -k all -t
> tar -C /boot -cf /boot.tar *
> mount /dev/disk/by-id/ata-Micron-partN /boot
> tar -C /boot -xf /boot.tar
> grub-install /dev/disk/by-id/ata-Micron
> update-grub
> umount /boot
>
Да, у меня на ноуте всё грузится подобным образом.
Хотя, там чистый EFI, а плата NAS всё-таки с 2014-го (год разработки).


> 19.03.2018 23:31, artiom пишет:
>> Поставил Stretch на шифрованный ZFS root, образующий зеркало на двух SSD.
>> На SSD GPT с тремя разделами типа 0x83: ext4 - /boot, luks1, luks2.
>> Всё более ли менее, но grub-pc не хочет грузиться с отдельного ext4
>> раздела ни в какую.
>> Делаю так:
>>
>> - tar -C / -cf boot.tar
>> - Монтирую /dev/disk/by-id/ata-Micron-part1 в /boot
>> - tar -C -xf boot.tar
>> - update-initramfs -u -k all -t
>> - update-grub.
>> - Делаю grub-install /dev/disk/by-id/ata-Micron .
>> - umount /boot
>>
>> Проходит, всё ok.
>> Перезагружаю - облом.
>> Чёрный экран, и мигает курсор: меню граба нет.
>>
>> Вариант два:
>>
>> - grub-install --boot-directory /
>>
>> Вариант три:
>>
>> - Монтирую /dev/disk/by-id/ata-Micron-part1 в /mnt
>> - mkdir /mnt/boot
>> - mount -bind /mnt/boot /boot
>> - Дальше всё тоже самое.
>>
>> Не работает.
>>
>> Самое смешное, что когда я ничего не монтирую, граб ругается на то, что
>> я хочу установить его для загрузки с шифрованного раздела и требует
>> установить опцию в /etc/default/grub.
>>
>> После установки таковой, всё грузится, разблокируя _оба_ диска зеркала
>> на этапе запуска граба, запрашивая пароль, причём грузится с /boot на
>> ZFS.
>> При этом, установка grub разрушает первый ext4 раздел.
>> Что для меня было открытием: grub может грузиться напрямую с
>> шифрованного раздела.
>>
>> Но не работает загрузка с обычного ext4.
>> Что я делаю не так, по пунктам, и как это исправить?
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: grub не загружается с ext4

artiom
In reply to this post by Михаил Касаджиков
Как-нибудь возможно обойтись, с этим долбаным "новым и более удобным
EFI" без создания дополнительных разделов?
Попробую, конечно, grub-efi на выходных.
Однако, есть ненулевая вероятность того, что он не будет работать.

20.03.2018 19:51, Михаил Касаджиков пишет:

> Dmitry Kulagin <[hidden email]> писал(а) в своём письме Tue,
> 20 Mar 2018 15:50:48 +0300:
>
>> Для загрузки с gpt диска с помощью grub-pc вам надо создать пустой
>> раздел размером 1-2 МБ
>> тип BIOS Boot и устанавливать grub на весь диск, без этого современные
>> BIOS не грузятся
>> с gpt диска.
>> Device         Start        End   Sectors   Size Type
>> /dev/sda1       2048       4095      2048     1M BIOS boot
>> /dev/sda2       4096     229375    225280   110M EFI System
>> /dev/sda3     229376  393365503 393136128 187,5G Linux filesystem
>> /dev/sda4  393365504 1172123534 778758031 371,3G Linux filesystem
>
> При использовании grub-efi этот специальный раздел необязателен, нужен
> только небольшой раздел vfat.
>
> root@gpd7: ~# parted /dev/mmcblk0 u mib p
> Model: MMC DJNB4R (sd/mmc)
> Disk /dev/mmcblk0: 119276MiB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start    End        Size       File system  Name  Flags
>  1      1,00MiB  101MiB     100MiB     fat16        EFI   boot, esp
>  2      101MiB   601MiB     500MiB     ext2         boot
>  3      601MiB   119275MiB  118674MiB               lvm   lvm
>
> root@gpd7: ~# df -hT
> Файловая система Тип    Размер Использовано  Дост Использовано%
> Cмонтировано в
> …
> /dev/mmcblk0p2   ext2     485M         185M  275M           41% /boot
> /dev/mmcblk0p1   vfat     100M         3,5M   97M            4% /boot/efi
> …
>
> Такие размеры остались от бубунты, которая шла вместе с игрушкой. Потом,
> когда устанавливал debian, лень было всё с домашнего раздела куда-то
> переносить и переразбивать диск.
>