Как заставить процесс загрузки grub2 / opensuse игнорировать разделы raid на неосновных дисках?

Мне нужно узнать, как я могу заставить процесс загрузки grub2 / opensuse игнорировать разделы raid на неосновных диски. У меня есть система с / dev / sda и / dev / sdb, которые являются основными дисками, которые загружают UEFI из grub2 и серию дополнительных дисков. Они выглядят так:

NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                 8:0    0 465.8G  0 disk  
├─sda1              8:1    0     2G  0 part  /boot/efi
└─sda2              8:2    0 463.8G  0 part  
  └─md0             9:0    0 463.8G  0 raid1 
    ├─system-root 254:0    0 455.8G  0 lvm   /
    └─system-swap 254:1    0     8G  0 lvm   [SWAP]
sdb                 8:16   0 465.8G  0 disk  
├─sdb1              8:17   0     2G  0 part  
└─sdb2              8:18   0 463.8G  0 part  
  └─md0             9:0    0 463.8G  0 raid1 
    ├─system-root 254:0    0 455.8G  0 lvm   /
    └─system-swap 254:1    0     8G  0 lvm   [SWAP]
sdc                 8:32   0   1.8T  0 disk  
├─sdc1              8:33   0   399M  0 part  
└─sdc2              8:34   0   1.8T  0 part  
sdd                 8:48   0   1.8T  0 disk  
├─sdd1              8:49   0   399M  0 part  
└─sdd2              8:50   0   1.8T  0 part  
sde                 8:64   0   1.8T  0 disk  
sdf                 8:80   0   1.8T  0 disk  

Диски / dev / sdc - / dev / sdf - это диски, которые используются виртуальными хостами, запущенными на внешнем хосте. Причина в том, что внешние хосты функционируют как маршрутизатор, а внутренние хосты - это зашифрованные корневые серверы, которые можно запускать удаленно с помощью ssh'ing на внешний хост. Хост Outr не имеет корневого шифрования, но, очевидно, не содержит никаких важных данных.

Проблема в том, что диски / dev / sdc - / dev / sdf имеют разделы raid (encryption + lvm и т. д.), и при загрузке внешней системы она пытается создать массивы raid, расшифровать и т. д. Эти рейдовые массивы должны быть разобраны перед загрузкой виртуальных хостов. Кроме того, загрузка не выполняется, когда тома на этих массивах рейдов не могут быть незашифрованы.

Вопрос: как можно настроить процесс загрузки grub2 так, чтобы он игнорировал разделы на дисках / dev / sdc - / dev / sdf и настраивал систему только на основе основных дисков / dev / sda и / dev / sdb. Задача - автоматическая загрузка, которая выглядит так, как указано выше.

Вот /boot/grub2/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi

if [ "${env_block}" ] ; then
  load_env -f "${env_block}"
fi

if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   if [ "${env_block}" ] ; then
     save_env -f "${env_block}" next_entry
   fi
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod part_gpt
insmod diskfilter
insmod mdraid1x
insmod lvm
insmod ext2
set root='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'  95092080-6e02-43c0-8e97-730fd53cb61f
else
  search --no-floppy --fs-uuid --set=root 95092080-6e02-43c0-8e97-730fd53cb61f
fi
    font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
echo "Please press t to show the boot menu on this console"
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=POSIX
  insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod part_gpt
insmod diskfilter
insmod mdraid1x
insmod lvm
insmod ext2
set root='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'  95092080-6e02-43c0-8e97-730fd53cb61f
else
  search --no-floppy --fs-uuid --set=root 95092080-6e02-43c0-8e97-730fd53cb61f
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
  set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=8
fi


### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE LEAP 42.2'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-95092080-6e02-43c0-8e97-730fd53cb61f' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod part_gpt
        insmod diskfilter
        insmod mdraid1x
        insmod lvm
        insmod ext2
        set root='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'  95092080-6e02-43c0-8e97-730fd53cb61f
        else
          search --no-floppy --fs-uuid --set=root 95092080-6e02-43c0-8e97-730fd53cb61f
        fi
        echo    'Loading Linux 4.4.27-2-default ...'
        linux   /boot/vmlinuz-4.4.27-2-default root=/dev/mapper/system-root  resume=/dev/system/swap splash=silent quiet showopts nomodeset
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-4.4.27-2-default
}
submenu 'Advanced options for openSUSE LEAP 42.2' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-95092080-6e02-43c0-8e97-730fd53cb61f' {
        menuentry 'openSUSE LEAP 42.2, with Linux 4.4.27-2-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.27-2-default-advanced-95092080-6e02-43c0-8e97-730fd53cb61f' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid1x
                insmod lvm
                insmod ext2
                set root='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='lvmid/36Ndwy-2YD2-onbC-3fKp-BdXl-Kmra-aELGxs/Pt4neo-JhAd-I4G4-02S8-X8eb-5xeY-wRpDWz'  95092080-6e02-43c0-8e97-730fd53cb61f
                else
                  search --no-floppy --fs-uuid --set=root 95092080-6e02-43c0-8e97-730fd53cb61f
                fi
                echo    'Loading Linux 4.4.27-2-default ...'
                linux   /boot/vmlinuz-4.4.27-2-default root=/dev/mapper/system-root  resume=/dev/system/swap splash=silent quiet showopts nomodeset
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd-4.4.27-2-default
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/50_bootcycle ###
# created for bootcycle detection
menuentry 'halt' {
        halt
}
### END /etc/grub.d/50_bootcycle ###

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

### BEGIN /etc/grub.d/95_textmode ###

    # On EFI systems we can only have graphics *or* serial, so allow the user
    # to switch between the two
    hiddenentry 'Text mode' --hotkey 't' {
        set textmode=true
        terminal_output console
    }
### END /etc/grub.d/95_textmode ###

Сообщите мне, какая еще информация может быть полезна для понимания.

0
задан 21 May 2017 в 13:20
1 ответ
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

Это верно лишь отчасти. Причина, по которой вы не должны изменять это, состоит только в том, что он перезаписывается grub2-mkconfig . Нет другой причины не создавать его вручную. Вы можете уменьшить /boot/grub2/grub.cfg , чтобы он содержал только нужные вам пункты меню, написав свой собственный файл конфигурации .

grub-mkconfig имеет некоторые ограничения. При добавлении дополнительных кастомных пункты меню до конца списка можно сделать путем редактирования /etc/grub.d/40_custom или создание /boot/grub/custom.cfg , изменение порядок пунктов меню или изменение их заголовков может потребовать выполнения сложные изменения в сценариях оболочки, хранящиеся в /etc/grub.d/ . Это может быть улучшится в будущем. А пока те, кто считает, что проще писать grub.cfg напрямую рекомендуется делать это (см. Загрузка и сценарии, подобные оболочке ), а также отключение любой предоставленной системы их дистрибутивом для автоматического запуска grub-mkconfig .

Конфигурация, созданная grub-mkconfig , пытается включить все из любого места, что может быть обнаружено, например, каждое установленное ядро ​​и т. д. , ваша конфигурация кажется более сложной, возможно, вам потребуется сравнительно сложная, созданная вручную grub.cfg .

0
ответ дан 24 November 2019 в 04:32

Теги

Похожие вопросы