LINUX.ORG.RU

При отключение одного диска из raid (soft) не грузится система.

 , ,


2

2

При отключение одного из дисков рейда, система не грузится, не важно какой диск.

В конфете grob я нашел вот этот код:

set root='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'  b566fce0-ed95-42b6-9b66-7c865478e5ff
else
  search --no-floppy --fs-uuid --set=root b566fce0-ed95-42b6-9b66-7c865478e5ff
fi
    font="/usr/share/grub/unicode.pf2"
fi
Как я понимаю grub пытается грузить диск по uid и при разваленном рейде он не находит uid md устройства?! Что надо в коняги запихать чтобы он грузился в любом случае ?

А вот все uid дисков системы.

/dev/sda1: UUID="e8e53b21-bbb5-a860-f659-6e0a4d15dccf" UUID_SUB="67c920f6-ab57-aece-42ad-2a6c2aea1293" LABEL="secondmail:0" TYPE="linux_raid_member" PARTUUID="00074912-01"
/dev/sda5: UUID="fbcdd9b6-baf4-4870-4ba2-54986a7d1ba4" UUID_SUB="7e7086ec-1fc8-dc20-2d57-ba3388058731" LABEL="secondmail:1" TYPE="linux_raid_member" PARTUUID="00074912-05"
/dev/sdb1: UUID="e8e53b21-bbb5-a860-f659-6e0a4d15dccf" UUID_SUB="1385ff3b-1d92-fbea-732c-8e4f31fe8a4f" LABEL="secondmail:0" TYPE="linux_raid_member" PARTUUID="000480bf-01"
/dev/sdb5: UUID="fbcdd9b6-baf4-4870-4ba2-54986a7d1ba4" UUID_SUB="d255c016-9c5c-2d9f-e1f7-f11dcfc54203" LABEL="secondmail:1" TYPE="linux_raid_member" PARTUUID="000480bf-05"
/dev/md0: UUID="b566fce0-ed95-42b6-9b66-7c865478e5ff" TYPE="ext4"
/dev/md1: UUID="d3847043-7ffe-47fe-b7ad-0d6d568fb49d" TYPE="swap"

подскажите, Спасибо за помощь.


Сделай grub-install на все диски в рейде.

tierpunk ()

Uuid md устройства, не должен меняться.

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

raid 1, зеркало. Ставил grub на все диски. Он грузит якобы систему но в какой-то урезанный шел ...

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

grub-install

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

Сейчас пытался grub-install /dev/sda1 или grub-install / dev/sdb1 выдает ошибку:

Installing for i386-pc platform.
grub-install: ошибка: не удалось найти привод GRUB для /dev/sbb1. Проверьте device.map.

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

не смотрел как во втором грубе, а для первого menu.lst должно содержать нечто подобное

### To boot if sda fails ### 
title           Ubuntu 12.04.2 LTS, kernel 3.2.0-37-generic-pae /dev/sda fail
root            (hd1,0)
kernel          /boot/vmlinuz-3.2.0-37-generic-pae root=/dev/md0 ro quiet splash
initrd          /boot/initrd.img-3.2.0-37-generic-pae
### End mod ###

### To boot if sdb fails ### 
title           Ubuntu 12.04.2 LTS, kernel 3.2.0-37-generic-pae /dev/sdb fail
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-37-generic-pae root=/dev/md0 ro quiet splash
initrd          /boot/initrd.img-3.2.0-37-generic-pae
### End mod ###

anonymous ()
Ответ на: grub-install от macik

Ну во первых

grub-install /dev/sda
grub-install /dev/sdb
Должно работать.

tierpunk ()
Ответ на: grub-install от macik

grub-install /dev/sda1

загрузчик надо ставить на sda, а не на раздел

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

Ну во первых
grub-install /dev/sda
grub-install /dev/sdb
Должно работать.

Сори, что то я провтыкал. Но проблемы это не решает ... одно что grub ставится на оба диска и он там уже был, но система не грузится с одним винтом?

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

Потому-что у тебя root почему-то указывает на первый диск, а должен - на md-устройство. Читай ошибку на скрине после «ALERT!»

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

Потому-что у тебя root почему-то указывает на первый диск, а должен - на md-устройство. Читай ошибку на скрине после «ALERT!»

А почем у вы так уверены, что root указывает на первый диск?

UUID b566fce0-ed95-42b6-9b66-7c865478e5ff это устройство /dev/md0

и вот мой grub.cfg Я даже пытался везде прописать

set root
равен UUID md устройства, но не помогло.

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

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
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_msdos
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'  b566fce0-ed95-42b6-9b66-7c865478e5ff
else
  search --no-floppy --fs-uuid --set=root b566fce0-ed95-42b6-9b66-7c865478e5ff
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ru_UA
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=-1
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b566fce0-ed95-42b6-9b66-7c865478e5ff' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod part_msdos
	insmod diskfilter
	insmod mdraid1x
	insmod ext2
	set root='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'  b566fce0-ed95-42b6-9b66-7c865478e5ff
	else
	  search --no-floppy --fs-uuid --set=root b566fce0-ed95-42b6-9b66-7c865478e5ff
	fi
	echo	'Загружается Linux 3.16.0-4-amd64 …'
	linux	/boot/vmlinuz-3.16.0-4-amd64 root=UUID=b566fce0-ed95-42b6-9b66-7c865478e5ff ro  quiet
	echo	'Загружается начальный виртуальный диск …'
	initrd	/boot/initrd.img-3.16.0-4-amd64
}
submenu 'Дополнительные параметры для Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-b566fce0-ed95-42b6-9b66-7c865478e5ff' {
	menuentry 'Debian GNU/Linux, с Linux 3.16.0-4-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-advanced-b566fce0-ed95-42b6-9b66-7c865478e5ff' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod part_msdos
		insmod diskfilter
		insmod mdraid1x
		insmod ext2
		set root='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'  b566fce0-ed95-42b6-9b66-7c865478e5ff
		else
		  search --no-floppy --fs-uuid --set=root b566fce0-ed95-42b6-9b66-7c865478e5ff
		fi
		echo	'Загружается Linux 3.16.0-4-amd64 …'
		linux	/boot/vmlinuz-3.16.0-4-amd64 root=UUID=b566fce0-ed95-42b6-9b66-7c865478e5ff ro  quiet
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initrd.img-3.16.0-4-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-recovery-b566fce0-ed95-42b6-9b66-7c865478e5ff' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod part_msdos
		insmod diskfilter
		insmod mdraid1x
		insmod ext2
		set root='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint='mduuid/e8e53b21bbb5a860f6596e0a4d15dccf'  b566fce0-ed95-42b6-9b66-7c865478e5ff
		else
		  search --no-floppy --fs-uuid --set=root b566fce0-ed95-42b6-9b66-7c865478e5ff
		fi
		echo	'Загружается Linux 3.16.0-4-amd64 …'
		linux	/boot/vmlinuz-3.16.0-4-amd64 root=UUID=b566fce0-ed95-42b6-9b66-7c865478e5ff ro single 
		echo	'Загружается начальный виртуальный диск …'
		initrd	/boot/initrd.img-3.16.0-4-amd64
	}
}

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

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

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

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### 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/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
macik ()
Ответ на: комментарий от macik

попробовал я добавить еще один пункт загрузки

menuentry 'raid'{
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod part_msdos
	insmod diskfilter
	insmod mdraid1x
	insmod ext2
	search --no-floppy --fs-uuid --set b566fce0-ed95-42b6-9b66-7c865478e5ff
	echo	'Загружается RAID'
	linux	/boot/vmlinuz-3.16.0-4-amd64 root=UUID=b566fce0-ed95-42b6-9b66-7c865478e5ff ro  quiet
	echo	'Загружается начальный виртуальный диск …'
	initrd	/boot/initrd.img-3.16.0-4-amd64
}
то есть полностью вручную без всяких проверок указал какое uuid грузить. Картина аналогичная. Система не работает ...

Подскажите, что делать чтобы грузилась система без одного диска.

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

В файлике /etc/default/grub – нужно раскоментировать строку “GRUB terminal=console”

затем:

#update-grub

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

покажи /etc/mdadm/mdadm.conf

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/0  metadata=1.2 UUID=e8e53b21:bbb5a860:f6596e0a:4d15dccf name=secondmail:0
ARRAY /dev/md/1  metadata=1.2 UUID=fbcdd9b6:baf44870:4ba25498:6a7d1ba4 name=secondmail:1

# This configuration was auto-generated on Tue, 23 Jun 2015 15:21:03 +0300 by mkconf
macik ()
Ответ на: комментарий от anonymous

В файлике /etc/default/grub – нужно раскоментировать строку “GRUB terminal=console”

затем:

#update-grub

не помогло

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

А почем у вы так уверены, что root указывает на первый диск?

Точно, невнимательно прочитал пост.

Там ничего не надо прописывать в файле, он автоматически переконфигурируется (о чём написано в 6 первых строчках), надо dpkg-reconfigure grub-pc набрать и выбрать свои диски (/dev/sda и /dev/sdb) в запросе.

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

попробую угадать, система на базе systemd?

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

попробуй добавить в kernel парамеры

rd.md.uuid=b566fce0-ed95-42b6-9b66-7c865478e5ff rd.md.uuid=d3847043-7ffe-47fe-b7ad-0d6d568fb49d

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

Точно, невнимательно прочитал пост.

Там ничего не надо прописывать в файле, он автоматически переконфигурируется (о чём написано в 6 первых строчках), надо dpkg-reconfigure grub-pc набрать и выбрать свои диски (/dev/sda и /dev/sdb) в запросе.

не помогло ... тоже самое. Как на фото.

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

попробую угадать, система на базе systemd?

Это как? Как вам ответить на этот вопрос, где посмотреть?

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

попробуй добавить в kernel парамеры

rd.md.uuid=b566fce0-ed95-42b6-9b66-7c865478e5ff rd.md.uuid=d3847043-7ffe-47fe-b7ad-0d6d568fb49d

Подскажите как это сделать?

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

Подскажите как это сделать?

добавить в конец строки linux /boot/vmlinuz-3.16.0-4-amd64 ...

А может стоит забить на UUID? и сделать по-старому set root=/dev/md0 (и не надо вызывать search).

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

Debian 8.1 на systemd, да.

No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.1 (jessie) Release: 8.1 Codename: jessie

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

добавить в конец строки linux /boot/vmlinuz-3.16.0-4-amd64 ...

А может стоит забить на UUID? и сделать по-старому set root=/dev/md0 (и не надо вызывать search).

да я писал set root=/dev/md0, не работает и так. Я добавлял отдельное меню с set root=/dev/md0 и даже для каждого диска ...

Я тут гуглил по «module ehci-orion not found in modules.dep» я не селен в английском (полный профан) но по русскому сегменту вижу что это проблема debiana

Странно раньше ставилось все без проблем, были проблемы с активными секторами диска но это решалось fdisk -a и все .... А сейчас и не знаю как это победить.

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

добавить в конец строки linux /boot/vmlinuz-3.16.0-4-amd64 ...

не помогло

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

Да это на скриншоте с алертом отчётливо видно.

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

«module ehci-orion not found in modules.dep»

Этот модуль подсистемы USB не имеет никакого отношения к монтированию корневой файловой системы!

На вашем фото - основная проблемам - загруженное ядро не находит root fs - «Alert! /dev/disk/by-uuid/... not exist»

Приведите конфиг grub для /dev/md0

sigurd ★★★★ ()
Ответ на: grub-install от macik

Если ставить на партицию, то нужно делать её активной. Если ставить загрузчик в mbr, то делать активной - не обязательно.

Да, судя по http://serverfault.com/questions/685978/mdadm-software-raid1-with-gpt-on-debi... всё весело.

grub-install: ошибка: не удалось найти привод GRUB для /dev/sbb1. Проверьте device.map.

Где-то опечатка присутствует.

Покажи выхлоп fdisk -l /dev/sda, fdisk -l /dev/sdb и файл /etc/default/grub.

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

Ну причина найдена.

Как я понял это баг. Лечится он заменой параметров в файле

/usr/share/initramfs-tools/scripts/local-top/mdadm
--assemble на --incremental

После этого все стартует с одним винтом. Есть только один недостаток не стартует автоматический ребилденг винта если поставить винт обратно. Почему хрен его знает. Но автор который нашел данный баг особо не заморачивался с эти.

macik ()

Вот что человек пишет который нашел этот баг

Может конечно и не он первый, но благодаря ему я смог найти причину у себя.

там получается все из-за удева.

Раньше девайс md создавался из скрипта initrd , и там было прописано, что он сразу стартует. А сейчас девайс создается из удев-а, и когда доходит дело до отработки initrd девайса, этот девайс уже есть , и команды уже просто не срабатывают. 

То есть в данном случае это вопрос времени - я ментейнерам написал, плюс пару подобных багов уже было описано в багтреке. По идее, надо убрать скрипт для initrd и переписать полностью на дев.

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

kernel /boot/vmlinuz-3.2.0-37-generic-pae rd.md.uuid=b566fce0-ed95-42b6-9b66-7c865478e5ff rd.md.uuid=d3847043-7ffe-47fe-b7ad-0d6d568fb49d root=/dev/md0 ro quiet splash

nosuchuser ()
Ответ на: Ну причина найдена. от macik

Столкнулся с той же самой проблемой. Меняю в файле mdadm --assemble на --incremental и собственно ничего не меняется. Я правильно понял, что для того, чтобы начало грузиться и с одним винтом нужно проделать только эту замену? или нужно что-то еще?

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

Ну ты хотя бы

update-initramfs -kall -u
сделал или сразу сюда?

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

Конечно, сразу сюда! тут ж самые знатоки, которые сразу помогут добрым советом! Помогло, спасибо!

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