LINUX.ORG.RU

Debian 8.2 установка GRUB в MBR на sda и sdb

 


0

1

Есть проблема с установкой GRUB в MBR раздел двух дисков. Разбивка делается с помощью preseed:

# ======= RAID/LVM & Partitioning ================
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/purge_lvm_from_device  boolean true
d-i partman-auto/disk string /dev/sda /dev/sdb
d-i partman-auto/method string raid
d-i partman-auto-lvm/new_vg_name string AzK
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select multiraid 
d-i partman-auto/expert_recipe string               \
    multiraid  ::                                   \
     512 10 512 raid                                \
       $primary{ } $lvmok{ } lv_name{ boot }        \
       $bootable{ }          			    \
       method{ raid }                               \
     .                                              \
     5120 30 5120 ext4                              \
       $defaultignore $lvmok{ } lv_name{ root }     \
       method{ format } format{ }                   \
       use_filesystem{ } filesystem{ ext4 }         \
       mountpoint{ / }                              \
     .                                              \
     2048 35 2048 linux-swap                        \
       $defaultignore $lvmok{ } lv_name{ swap }     \
       method{ swap } format{ }                     \
     .                                              \
     4096 40 4096 ext4                              \
       $defaultignore $lvmok{ } lv_name{ tmp }      \
       method{ format } format{ }                   \
       use_filesystem{ } filesystem{ ext4 }         \
       mountpoint{ /tmp }                           \
     .                                              \
     8192 50 8192 ext4                              \
       $defaultignore $lvmok{ } lv_name{ var }      \
       method{ format } format{ }                   \
       use_filesystem{ } filesystem{ ext4 }         \
       mountpoint{ /var }                           \
     .                                              \
     8192 60 8192 ext4                              \
       $defaultignore $lvmok{ } lv_name{ usr }      \
       method{ format } format{ }                   \
       use_filesystem{ } filesystem{ ext4 }         \
       mountpoint{ /usr }                           \
     .                                              \
     512 70 -1 ext4                                 \
       $defaultignore $lvmok{ } lv_name{ home }     \
       method{ format } format{ }                   \
       use_filesystem{ } filesystem{ ext4 }         \
       mountpoint{ /home }                          \
       method{ lvm }                                \
     .
d-i partman-auto-raid/recipe string                 \
    1 2 0 lvm  -      /dev/sda1#/dev/sdb1       .

d-i preseed/late_command string in-target lvremove -f AzK/home
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-lvm/confirm boolean true
d-i partman-md/confirm boolean true
d-i partman-md/confirm_nooverwrite boolean true
d-i partman/mount_style select label
d-i mdadm/boot_degraded boolean false 

Потом скриптом:

grub-install /dev/sda
grub-install /dev/sdb
update-grub
Все отлично работает на Wheezy
# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                4.7G  278M  4.2G   7% /
udev                   10M     0   10M   0% /dev
tmpfs                 402M  1.8M  401M   1% /run
/dev/mapper/AzK-root  4.7G  278M  4.2G   7% /
tmpfs                 5.0M   12K  5.0M   1% /run/lock
tmpfs                 804M     0  804M   0% /run/shm
/dev/mapper/AzK-home  268G   66G  189G  26% /home
/dev/mapper/AzK-tmp   3.8G   72M  3.5G   2% /tmp
/dev/mapper/AzK-usr   7.6G  783M  6.4G  11% /usr
/dev/mapper/AzK-var   7.6G  448M  6.7G   7% /var
На Jessie установка происходит не так:
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/dm-0             4.6G  232M  4.1G   6% /
udev                   10M     0   10M   0% /dev
tmpfs                 752M  9.2M  743M   2% /run
/dev/dm-2             7.4G  671M  6.4G  10% /usr
tmpfs                 1.9G     0  1.9G   0% /dev/shm
tmpfs                 5.0M     0  5.0M   0% /run/lock
tmpfs                 1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/AzK-var   7.4G  214M  6.8G   3% /var
/dev/mapper/AzK-tmp   3.7G  7.7M  3.5G   1% /tmp
/dev/mapper/AzK-home   48G   52M   45G   1% /home

В начале загрузки видим такой пост:

Loading, please wait...
fsck from util-linux 2.25.2
/dev/mapper/AzK-root: clean, 7480/312624 files, 111710/1249280 blocks
fsck from util-linux 2.25.2
/dev/aapper/AzK-usr: clean, 33607/499968 files, 235833/1999872 blocks
[	6.343894] kvm: disabled by bios
[	7.055195] systemd-fsck [399]: /dev/mapper/AzK-tmp: clean, 15/249984 files, 34037/999424 blocks
[	7.133820] systemd-fsck [403]: /dev/mapper/AzK-home: clean, 34/3162112 files, 244526/12647424 blocks
[	7.163081] systemd-fsck [410]: /dev/mapper/Azk-var: clean, 3317/499968 files, 120654/1999872 blocks
То есть разделы AzK-root и AzK-usr все же маплятся, но каким то странным образом.

А если отключить один из дисков, то при загрузке системы получим следующее:

...
Volume group "AzK" not found
Skipping volume group AzK
Unable to find LVM volume AzK/root
Gave up Halting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelays= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)

ALERT! /dev/mapper/AzK-root does not exist. Dropping to a shell!
modprobe: module ehci-orion not found in modules.dep

BusyBox vl.22.1 (Debian 1:1.22.0-9+deb8ul) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; Job control tuned off
(initramfs)
Пробовал сделать руками без LVM и просто один рутовый раздел со всеми иными внутри. После установки система отказалась загружаться.

Что в итоге: На Wheezy устанавливается корректно LVM+RAID1 и в случае отключения любого из двух дисков, система успешно загрузится с того, что остался. На Jessie полнейшей бред: Граб устанавливается совсем не туда, куда надо. В случае отключения любого из дисков ВСЯ система ОТКАЗЫВАЕТСЯ загружаться!

Столько букв и только в конце объяснение вашей проблемы:

В случае отключения любого из дисков

Grub вобще не причём, он у вас отрабатывает. Вся система загружатся не отказывается, rescue-shell вам же даётся. Из него можно стартануть raid и всё должно пойти дальше. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784070

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

Надо было начать с конца, и только потом, по требованию, предоставить нужное. Ладно.

Есть сервера в удаленных местах, и туда физически нельзя добраться, что бы руками прописать. Касательно баги, так у меню MBR + i386, но, видимо, это глобальная какая-то бага, да и эта меня частично затрагивает.

Или деб8 не в состоянии установить загрузчик на 2 диска в принципе (в отличие от предыдущих релизов которые легко и просто это делали)?

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

Если читать весь багрепорт, то становится понятно, что GPT в описании бага лишнее, в комментах есть подтверждение и для MBR и для NAS с ARM-процессором.

Или деб8 не в состоянии установить загрузчик на 2 диска в принципе

Дело не в grub'е, дело в initrd-скриптах, которые не хотят стартовать RAID в деградированном режиме. Но в целом, да, Дебиан 8 не загружается полностью с деградированного RAID'а. В Убунте подобная проблема всплывала давно и, ЕМНИП, решали её правкой этих скриптов.

Здесь вот http://serverfault.com/questions/688207/how-to-auto-start-degraded-software-r... показывают какой скрипт редактировать, но не знаю, правильное ли это решение. В багрепорте высказывалось мнение, что по новой идеологии бут-скриптов нужно не сразу пытаться собрать RAID в деградированном режиме, а подождать немного, вдруг устройство медлено стартует...

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

Спасибо большое вам за наводку. Подправил скрипт, согласно описанию и все заработало.

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