ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
From: "Васюк Максим" <vasukma@yandex.ru>
To: sysadmins@lists.altlinux.org
Subject: Re: [Sysadmins] e2fsck не может провести проверка при загрузке корневой ФС на LVM RAID1
Date: Fri, 7 Dec 2018 18:34:08 +0700
Message-ID: <2f2a9cdd-e533-c232-c453-3333228187da@yandex.ru> (raw)
In-Reply-To: <201812051142.29375.a_s_y@sama.ru>

Привет, Всем!

Новые вводные.

05.12.2018 14:42, Sergey пишет:
> On Wednesday 05 December 2018, Васюк Максим wrote:
> 
>> Возможно из-за того, что e2fsck видит на LVM зеркалах систему,
> 
> e2fsck ничего не видит. Он просто чекает то, что ему кто-то говорит
> чекать. Вот почему ему скармливают /dev/mapper/vg00-root_sys_rimage_0,
> это не знаю.
> 
>> И нет бы сказал, что-то типа того: "Не могу работать, устройство
>> занято!" и пошел дальше грузиться, но останавливает загрузку.

Под пристальным внимаем обнаружилось, следующее:
GRUB загрузил initrd, процессы запускаются и доходит дело до следующего 
момента:
Starting system-udevd service: DONE
Populating /dev: DONE
Activaiting swap partition: DONE
Setting hostname: DONE
Checking root filesystem: DONE
/dev/mapper/vg00-root_sys_rimage_0 in in use.
e2sfck: Cannont continue, aborting.
				FAILED

Жму Ctrl-D, идёт перезагрузка и может остановится или с такой же 
строчкой, или немного с другой:
/dev/mapper/vg00-root_sys_rimage_0 in in use.

Опять жму Ctrl-D, перезагрузка и так несколько раз, пока не попадёт на:
/dev/mapper/vg00-root_sys
и тогда загрузка проходит нормально:
Remounting root filesystem in read/write mode: DONE
и дальше по списку.

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

Полез в  fstab:
# cat /etc/fstab
UUID=57dc8810-3432-4477-b4ee-294642884ec7  /  ext4    relatime 1 1

Глянул на UUID разделов и оказалось, что они у всех трёх разделов 
одинаковые:
# blkid
/dev/mapper/vg00-root_sys_rimage_0: 
UUID="57dc8810-3432-4477-b4ee-294642884ec7" TYPE="ext4"
/dev/mapper/vg00-root_sys_rimage_1: 
UUID="57dc8810-3432-4477-b4ee-294642884ec7" TYPE="ext4"
/dev/mapper/vg00-root_sys: UUID="57dc8810-3432-4477-b4ee-294642884ec7" 
TYPE="ext4"

Получается GRUB или initrd тупо подхватывают первое под руку попавшееся 
устройство с указанными uuid, и начинает с ним пытаться работать, а 
результат зависит от того, какое таки устройство он подхватил.

Кусок из grub.cfg:
...
menuentry 'ALT starter kit' --class gnu-linux --class gnu --class os 
--unrestricted $menuentry_id_option 
'gnulinux-simple-57dc8810-3432-4477-b4ee-294642884ec7' {
...
   search --no-floppy --fs-uuid --set=root 
57dc8810-3432-4477-b4ee-294642884ec7
...
linux<->/boot/vmlinuz root=/dev/mapper/vg00-root_sys ro panic=30 splash
echo    'Loading initial ramdisk ...'
initrd  /initrd.img
...

Посмотрел на другой машине, там где организован MD RAID1. Оказалось, что 
у зеркал одинаковые uuid, а вот у собранного раздела из этих зеркал другой:

# df
...
/dev/md1                         28G         2,7G   24G           11% /
...

# cat /proc/mdstat
...
md1 : active raid1 sda3[0] sdb3[1]
...

# blkid
...
/dev/sda3: UUID="c2029de0-13c6-1261-5cc0-45fc1eca55fc" 
TYPE="linux_raid_member"
...
/dev/sdb3: UUID="c2029de0-13c6-1261-5cc0-45fc1eca55fc" 
TYPE="linux_raid_member"
...
/dev/md1: UUID="a210197a-0b6f-4626-8d72-a2cfd5f73d38" TYPE="ext4"
...

# cat /etc/fstab
...
UUID=a210197a-0b6f-4626-8d72-a2cfd5f73d38 / ext4 relatime 1 1
...

Кусок из grub.cfg:
menuentry 'ALT Linux starter kit' --class gnu-linux --class gnu --class
os $menuentry_id_option 
'gnulinux-simple-a210197a-0b6f-4626-8d72-a2cfd5f73d38' {
...
         set root='mduuid/a427249a0b7032ac5cc045fc1eca55fc'
         if [ x$feature_platform_search_hint = xy ]; then
           search --no-floppy --fs-uuid --set=root 
--hint='mduuid/a427249a0b7032ac5cc045fc1eca55fc' 
7d127096-dbff-4453-b8fc-70a350ee6afe
...
         linux   /vmlinuz root=UUID=a210197a-0b6f-4626-8d72-a2cfd5f73d38 
ro panic=30 splash
         echo    'Loading initial ramdisk ...'
         initrd  /initrd.img
...

Получается что md с этой проблемой знаком, а lvm нет.

На проблемной машине делаю:
#UUID=57dc8810-3432-4477-b4ee-294642884ec7 / ext4 relatime 1 1
/dev/mapper/vg00-root_sys                  / ext4 relatime 1 1

И всё начинает загружаться как надо.

Grub грузит initrd с одного из зеркал, а корень монтирует initrd глядя, 
в свою очередь, уже в /etc/fstab.

Т.к. в такой конфигурации имя устройства, на котором лежит корень, не 
меняется при замене, добавлении и пр. жестких дисков, в теории можно 
оставить так.

>>>> Один вариант вижу, не использовать ext4. Смотрел в сторону btrfs
>>>
>>> Насколько понимаю, если данные не нужны, вполне себе вариант...
> 
>> С данными всё в порядке,
> 
> Михаил, как мне показалось, имеет ввиду предполагаемую недостаточную
> обкатку btrfs и вероятные будущие проблемы. Но, вроде как, в SuSe
> используют и планов по отказу не озвучивали.
Я сначала тоже так решил, но потом подумал, что он же серьёзный человек, 
и не будет приколяться над страждущими ;)
-- 
Васюк Максим


  reply	other threads:[~2018-12-07 11:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04  7:38 Васюк Максим
2018-12-04 10:38 ` Sergey
2018-12-05  6:16   ` Васюк Максим
2018-12-05  7:42     ` Sergey
2018-12-07 11:34       ` Васюк Максим [this message]
2018-12-07 18:42         ` Michael Shigorin
2018-12-08  9:01           ` Anton Gorlov
2018-12-07 18:36       ` Michael Shigorin
2018-12-07 18:35     ` Michael Shigorin
2018-12-04 10:58 ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2f2a9cdd-e533-c232-c453-3333228187da@yandex.ru \
    --to=vasukma@yandex.ru \
    --cc=sysadmins@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git