После некоторых проб и ошибок, мне удалось решить проблему. Это не совсем ошибка Proxmox, а скорее специфично для Linux. Просто убедитесь, что LVM обнаруживается после multipath, подстройте конфигурацию multipath, установите пакет multipath, загрузите модули multipath и устраните гонку между multipath и lvm при создании загрузочного устройства. Ниже приведена краткая последовательность действий, если кто-то столкнется с той же/похожей проблемой. Markdown (в стиле GitHub): # Debian 12: Загрузка с SAN через Multipath + LVM (UEFI) — Руководство по настройке
В этом руководстве описано, как настроить Debian 12 для загрузки с SAN LUN, используя device-mapper **multipath**, с корневым разделом на LVM и UEFI-загрузкой. Это обеспечивает надежный переход в случае отказа одного из путей SAN.
---
## ✅ 1. Установите необходимые пакеты
```bash
sudo apt update
sudo apt install multipath-tools multipath-tools-boot
```
- `multipath-tools` включает функциональность multipath.
- `multipath-tools-boot` гарантирует, что multipath можно использовать на ранних этапах загрузки.
---
## ✅ 2. Найдите WWID загрузочного LUN
Используйте следующее для идентификации WWID вашего загрузочного диска:
```bash
sudo /lib/udev/scsi_id --whitelisted --device=/dev/sdX
```
Замените `/dev/sdX` на ваш загрузочный диск (например, `/dev/sdd`).
Или используйте:
```bash
sudo multipath -ll
```
Найдите строку WWID, похожую на: `360002ac0000000000000000d0002811d`
---
## ✅ 3. Настройте `/etc/multipath.conf`
Создайте или отредактируйте `/etc/multipath.conf`:
```conf
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist_exceptions {
wwid "360002ac0000000000000000d0002811d"
}
multipaths {
multipath {
wwid "360002ac0000000000000000d0002811d"
alias "pve_boot"
}
}
```
---
## ✅ 4. Добавьте WWID в `/etc/multipath/wwids`
```bash
sudo multipath -W
```
Это гарантирует, что ваш загрузочный LUN всегда используется через multipath, даже при наличии только одного пути.
---
## ✅ 5. Обновите параметры ядра GRUB
Отредактируйте `/etc/default/grub`:
```bash
sudo nano /etc/default/grub
```
Установите:
```bash
GRUB_CMDLINE_LINUX="root=/dev/mapper/pve-root"
```
Затем:
```bash
sudo update-grub
```
---
## ✅ 6. Настройте `/etc/fstab`
Отредактируйте `/etc/fstab` для использования LVM на устройстве multipath:
```fstab
/dev/mapper/pve-root / ext4 defaults 0 1
/dev/mapper/pve-swap none swap sw 0 0
```
Избегайте использования `/dev/sdX` или UUID, привязанных к сырым путям.
---
## ✅ 7. Создайте скрипт хука Initramfs с ожиданием Udev
Создайте собственный скрипт initramfs:
```bash
sudo nano /etc/initramfs-tools/scripts/init-top/zz-multipath-init
```
Вставьте следующее содержимое:
```bash
#!/bin/sh
PREREQ="udev"
prereqs() {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /scripts/functions
modprobe qede || true
modprobe dm_mod
modprobe dm_multipath
modprobe dm_round_robin
modprobe scsi_dh_alua
udevadm trigger --action=add
udevadm settle
# Wait for SAN paths to appear
tries=20
while [ $tries -gt 0 ]; do
if ls /dev/sd[a-z] 2>/dev/null | grep -q .; then
break
fi
sleep 1
tries=$((tries - 1))
done
multipath -v2
```
Сделайте его исполняемым:
```bash
sudo chmod +x /etc/initramfs-tools/scripts/init-top/zz-multipath-init
```
---
## ✅ 8. Добавьте модули Multipath в Initramfs
Отредактируйте `/etc/initramfs-tools/modules`:
```text
dm_mod
dm_multipath
dm_round_robin
scsi_dh_alua
```
Добавьте драйвер вашей сетевой карты, если необходимо (например, `qede` для HP 50G CNA).
---
## ✅ 9. Перестройте Initramfs
```bash
sudo update-initramfs -u -k all
```
Убедитесь, что ваш WWID и файлы конфигурации включены:
```bash
lsinitramfs /boot/initrd.img-$(uname -r) | grep multipath
```
Должно отображаться:
- `etc/multipath.conf`
- `etc/multipath/wwids`
- `usr/sbin/multipath`
---
## ✅ 10. Перезагрузитесь и проверьте
```bash
sudo reboot
```
Затем проверьте:
```bash
multipath -ll
mount | grep " / "
cat /proc/cmdline | grep root=
```
Вы должны увидеть:
- Root смонтирован из `/dev/mapper/pve-root`
- Multipath устройство `pve_boot` с активными путями
- Нет прямого использования `/dev/sdX`
---
## ✅ Необязательно: Протестируйте отказ
Временно отключите путь SAN и убедитесь, что система продолжает работать:
```bash
multipath -ll
```
Вы увидите недействительные пути, но устройство останется активным.
---