LINUX.ORG.RU

Как установить GRUB на RAID1?

 , ,


0

1

Текст ошибки:

# grub-install --recheck --modules="mdraid1x" /dev/md/raid1
Выполняется установка для платформы i386-pc.
grub-install: ошибка: diskfilter writes are not supported.
# grub-install --version
grub-install (GRUB) 2.02

Что говорит интернет:

https://bugs.launchpad.net/ubuntu/ source/grub2/ bug/701351

upstream GRUB has a 'diskfilter' module for dealing with LVM (lvm2), Device Mapper (dmsetup), Multiple Device (mdadm). The module only supports reading from these devices.

https://bugs.launchpad.net/ubuntu/ source/grub2/ bug/527401

Comments in bug 527401 (specifically comment 9) suggests that perhaps grub does not (yet?) support raid versions 1.0, 1.1 or 1.2

Переделал суперблок на версию 0.9. Не помогло.

здесь предлагают сделать .map-файл

# grub-probe -t bios_hints -d /dev/md/raid1
# cat /boot/grub/device.map
(mduuid/73f0a0ba5beadbfd17566aebaeddd4c1) /dev/md/raid1
# grub-probe --device-map=/boot/grub/device.map --target=abstraction --device /dev/md/raid1
diskfilter
mdraid1x

Параметр --device-map=/boot/grub/device.map наверное можно запихнуть принудительно, но не через grub-install.

# grub-install --device-map="/boot/grub/device.map"  --recheck --modules="diskfilter mdraid1x" /dev/md/raid1
grub-install: неизвестный параметр «--device-map=/boot/grub/device.map»
Попробуйте «grub-install --help» или «grub-install --usage» для получения
более подробного описания.

но всё равно ошибка та же самая (как будто файл /boot/grub/device.map был проигнорирован)
(и вообще мне не нравится мысль, что для того, чтобы что-то установить, я должен менять содержимое текущей файловой системы)
((мне тут говорят: «используй опцию --boot-directory» и --root-directory))

Если требуется установить файлы загрузчика в другой каталог, его можно указать в опции --boot-directory . С этой опцией можно легко установить GRUB2 на диск с другой системой (устанавливаемой или исправляемой) без чрута, достаточно правильно указать текущий путь к смонтированному каталогу для установки и текущее имя устройства

С опцией тоже попробовал - то же самое:

# grub-install --boot-directory="/mnt/root/boot"  --recheck --modules="diskfilter mdraid1x" /dev/md/raid1
Выполняется установка для платформы i386-pc.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
grub-install: ошибка: diskfilter writes are not supported.
# mount | grep /mnt/root
/dev/mapper/main_vg-ROOT on /mnt/root type ext4 (rw,relatime)
Варнинги - фигня (не ошибки же). А результат такой же - «diskfilter writes are not supported»

перепробовал комбинации:
v1.0, v1.0 + опция, v0.9, v0.9 + опция v1.0 + .map-файл, v1.0 + .map-файл + опция, v0.9 + .map-файл, v0.9 + .map-файл + опция
всё не работает одинаково.

На всякий случай разделы:

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] 
md127 : active raid1 sda[1] sdb[0]
      976761344 blocks super 1.0 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>
# gdisk /dev/md/raid1
GPT fdisk (gdisk) version 1.0.3

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/md/raid1: 1953522688 sectors, 931.5 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 57D38AD0-C794-475A-8C53-DC467958C2BB
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953522654
Partitions will be aligned on 2048-sector boundaries
Total free space is 3005 sectors (1.5 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  bios_grub
   2            6144      1953521663   931.5 GiB   8300  lvm

Command (? for help): q

Инфа про суперблок тут (v1.0)

Можно ли установить GRUB на RAID1?
===
теоретически, для этого нужно:
1) занулить оба диска
2) создать деградированный RAID
3) поделить диск на разделы (одним из двух способов)
вариантов установки как минимум два - с GPT и без GPT
4) создать LVM
5) отформатировать логический раздел (том)
у extfs есть параметр stridesize, который нужно указать при форматировании.
6) отключить LVM
7) отключить raid
8) подключить LVM (без RAID)
9) установить grub (на LVM он запишет свою --boot-directory)
10) отключить LVM
11) подключить RAID
12) подключить LVM (поверх RAID)
13) добавить остальные диски
можно ли это сделать сразу или добавлять нужно последовательно, дожидаясь окончания предыдущей синхронизации?
14) скопировать .iso systemresquecd
15) настроить конфиг, чтобы становился доступен sshd
===
шагов много, чтобы это проделать без ошибок пригодится скрипт (параметры - имена дисков, первого и остальных)

Устанавливать на /dev/sda напрямую не предлагать, не надо.

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