LinuxForum.Fans
Тема

UEFI+RAID1+LVM

Автор: GUID 8 сообщений 1392 просмотров
23.09.2014 10:45 #393511

Добрый день.
Есть материнка Asus Q87M-E, пытаюсь поставить Proxmox 3.3 и первый раз столкнулся с UEFI.
Пятый день железка испытывает мой мозг на прочность и от него уже почти ничего не осталось.

В конечном счете пришел к следующей схеме:
- ставлю debian 7.6 netinstall (sda1 - EFI, sda2 - boot, sda3 - LVM);
- делаю soft raid 1 (sdb1 - EFI, sdb2+sda2 - md0, sdb36+sda3 - md1);
- ставлю Proxmox.

В UEFI прописываю "загрузочные строки":

text

efibootmgr -c -g -d /dev/sda -p 1 -L "proxmox-11" -l '\EFI\debian\grubx64.efi'
efibootmgr -c -g -d /dev/sdb -p 1 -L "proxmox-12" -l '\EFI\debian\grubx64.efi'

На этом этапе все выглядит неплохо и кажется даже работает.

Пытаюсь имитировать отказ диска - отключаю sda.
UEFI показывает "загрузочную строку" с меткой "proxmox-11" (хотя она относится к отключенному диску) и не хочет грузиться.
Как мне кажется проблема в том, что первоначальный sdb стал sda.

Есть идеи как с этим бороться?

24.09.2014 20:22 · отредактировано #393712

Дальнейшие терзания привели к следующему выводу: если мы отключаем hdd то UEFI теряет его "загрузочную строку".
При последующем подключении hdd не происходит автоматический поиск раздела UEFI (хотя для сменных носителей (флешек) все нормально работает).
Первоначальный вопрос меняется на следующий: как заставить UEFI сканировать hdd в поисках "загрузочного" раздела?

Upd. Сейчас приходится загружаться с "LiveCD", chroot в оригинальную систему и вызывать соответствующую

text
efibootmgr -c -g -d /dev/sdb -p 1 -L "proxmox-12" -l '\EFI\debian\grubx64.efi'
24.09.2014 21:57 #393721

GUID, а fstab правили?

24.09.2014 22:43 #393728
baralgin написал:
GUID, а fstab правили?

Сейчас он такой:

text

$ cat /etc/fstab /dev/mapper/pve-root / ext3 errors=remount-ro 0 1

/dev/md0 /boot ext2 defaults 0 2

# /boot/efi was on /dev/sda1 during installation UUID=3036-BBF8 /boot/efi vfat defaults 0 1

/dev/mapper/pve-swap none swap sw 0 0

/dev/sdc1 /media/usb0 auto rw,user,noauto 0 0 /dev/sdc2 /media/usb1 auto rw,user,noauto 0 0

До кучи:

text

~$ blkid
/dev/mapper/pve-swap: UUID="fc79c3c9-07a8-4c2c-83b2-bbc15502dcc5" TYPE="swap"
/dev/sda3: UUID="2z3KX5-lQoV-W2Yk-2RjP-H4ZW-22V6-cBvqJx" TYPE="LVM2_member"
/dev/mapper/pve-data: UUID="98acf267-67ce-4601-9886-84fc33e0905d" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb1: UUID="3036-BBF8" TYPE="vfat" SEC_TYPE="msdos"
/dev/sdb2: UUID="b0a62186-3394-72cf-577e-341d0082b6f7" TYPE="linux_raid_member"
/dev/sdb3: UUID="c191962f-9e87-0702-577e-341d0082b6f7" TYPE="linux_raid_member"
/dev/sda1: UUID="3036-BBF8" TYPE="vfat"
/dev/sda2: UUID="e6a151a0-c496-4152-8b99-a7cbb982483a" TYPE="ext2"
/dev/mapper/pve-root: UUID="af94b0fc-06cf-47a9-90db-98e3d71feeec" TYPE="ext3"
/dev/md0: UUID="e6a151a0-c496-4152-8b99-a7cbb982483a" TYPE="ext2"
/dev/md1: UUID="2z3KX5-lQoV-W2Yk-2RjP-H4ZW-22V6-cBvqJx" TYPE="LVM2_member"
/dev/sdc1: LABEL="SYSRESC" UUID="006D-FDA8" TYPE="vfat"

Видно, что sda1 и sdb1 (EFI разделы) имеют одинаковые UUID-ы. Насколько я понимаю это "фича" - позволяющая монтировать любой из двух в соответствии с fstab.
На данный момент подключены оба диска, в UEFI стоит грузиться с sda (UEFI: proxmox-11), но загрузка происходит с sdb1:

text

$ df -h
Файловая система     Размер Использовано  Дост Использовано% Cмонтировано в
rootfs                  13G         886M   12G            8% /
udev                    10M            0   10M            0% /dev
tmpfs                  1,6G         332K  1,6G            1% /run
/dev/mapper/pve-root    13G         886M   12G            8% /
tmpfs                  5,0M            0  5,0M            0% /run/lock
tmpfs                  3,2G            0  3,2G            0% /run/shm
/dev/md0               237M          23M  202M           11% /boot
/dev/sdb1              487M         140K  486M            1% /boot/efi

И последняя "простынка":

text

$ efibootmgr -v
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000,0003,0004
Boot0000* proxmox-12    HD(1,800,f3800,29648225-b941-4c9d-954d-2095199349f1)File(\EFI\debian\grubx64.efi)
Boot0001* proxmox-11    HD(1,800,f3800,0bb3ce82-573b-42a5-8dee-346d0c9d25dd)File(\EFI\debian\grubx64.efi)
Boot0003* UEFI: IPV4 Intel(R) Ethernet Connection I217-LM       ACPI(a0341d0,0)PCI(19,0)MAC(74d02b7adc3c,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0..BO
Boot0004* UEFI: JetFlashTranscend 4GB   ACPI(a0341d0,0)PCI(1d,0)USB(1,0)USB(3,0)HD(1,1,745fff,000eae32)..BO

Правда, я так и не разобрался, что такое 0bb3ce82-573b-42a5-8dee-346d0c9d25dd (это не диск и не раздел).

Одна из странностей: при загрузке с "LiveCD" (точнее flash SystemRescueCD), вызов

text

efibootmgr -c -g -d /dev/sda -p 1 -L "proxmox-11" -l '\EFI\debian\grubx64.efi'

не приносит никаких результатов: команда тихо завершается и последующий вызов efibootmgr без параметров показывает, что никаких изменений не было. Поэтому приходится делать chroot в "основную" систему. Мне казалось, что я пытаюсь сделать запись в NVRAM UEFI. Если это так, то какая ей разница из какой системы делается запись?! (SystemRescueCD загружен в режиме UEFI).

25.09.2014 09:14 · отредактировано #393750

blkid у вас sda1 и sdb1 по разному видит. Что такое SEC_TYPE="msdos"?

PS:пользуйтесь тегами пожалуйста.

25.09.2014 13:33 · отредактировано #393804
baralgin написал:
blkid у вас sda1 и sdb1 по разному видит. Что такое SEC_TYPE="msdos"?

sda1 - раздел создавался в parted
sdb1 - раздел создавался в gdisk, и именно он дописал SEC_TYPE="msdos". Вроде бы ни на что не влияет

baralgin написал:

PS:пользуйтесь тегами пожалуйста.

К сожалению, не понял о чем идет речь.

Upd. Отключил sdb, загрузка прошла автоматом с sda.

25.09.2014 13:56 #393810

GUID, скопируйте таблицу разделов с sda на sdb [console]sfdisk -d /dev/sda | sfdisk /dev/sdb[/console]

25.09.2014 14:07 · отредактировано #393815

Сейчас с отключенным sdb ставлю proxmox. В процессе установки заменено ядро (на proxmox_2.6).
Сейчас посмотрел как называются диски:
- sda - флешка с SystemRescueCD, обычно она была sdc;
- sdb - тот диск, который я до сих пор называл sda и с которого сейчас загружен. Порт подключения диска не менялся.
С такими перестановками я бы то же на месте EFI сошел с ума, но мне казалось, что используются UUID, которые не должны были измениться.

Буду подключать обратно sdb, сделаю копию разделов.

Upd.
Клонировал (Ваш пример для MBR-дисков)
[console]
sgdisk --replicate=/dev/sdb /dev/sda
[/console]
Ничего не изменилось, проблема осталась в том, что приходится вручную прописывать "загрузочные строки" и если диск был отключен или система изменила его имя (sda,sdb), то EFI теряет эту строку

Войдите или зарегистрируйтесь, чтобы ответить.