Загрузка с микропрограммного PCI-контроллера RAID в SeaBIOS

У меня был сервер под управлением Windows 2003, который располагался в массиве RAID5, образованном Promise FastTrak SX4100, который, как мне показалось, был аппаратным, из-за его выделенного процессора и буферной памяти и его способности загружать DOS и Windows. Однако, как выясняется, этот контроллер работает только на аппаратном уровне, а логика более высокого уровня выполняется микропрограммой x86, работающей на главном процессоре. Теперь, когда устаревшая материнская плата (или процессор?) Умерла, и я попытался перейти на более современное UEFI-ориентированное оборудование, контроллер RAID не может инициализироваться даже в устаревшем (BIOS) режиме - он зависает при сканировании дисков, т.е. е. его встроенное ПО получает управление от UEFI/BIOS и печатает приветственные сообщения на экране, но не идентифицирует подключенные диски SATA.

Поэтому я подумал, что мне больше повезет, если я запустлю Windows на виртуальной машине с пропущенной через нее картой PCI, тем более что NT 5.2 вряд ли будет совместима с современными чипсетами, а Qemu обеспечивает полностью комфортную эмулируемую среду в классическом режиме BIOS. Проблема, однако, заключается в том, что SeaBIOS не отображает RAID-контроллер как загрузочное устройство, несмотря на то, что он может успешно взаимодействовать с ним.

То есть:

  • Микропрограмма контроллера получает управление и способна инициализировать массив RAID до того, как SeaBIOS отобразит меню загрузки, однако в этом меню отсутствует упоминание диска массива.
  • Утилита конфигурирования массива, которая может быть вызвана во время процесса POST, ясно показывает, что массив исправен.
  • Когда установщик Windows запускается и загружается с драйверами RAID, он также четко отображает содержимое диска, подтверждая его доступность.

Другими словами, массив кажется полностью работоспособным в среде виртуальных машин, но в течение некоторого сезона SeaBIOS не распознается как загрузочное устройство, хотя позднее он поддерживает устройства PCI для опции Boot ROM, как это видно на примере сетевого загрузочного ROM iPXE, встроенного в SeaBIOS. сам.

У меня также была идея, что GRUB может помочь здесь, т.е. е. загрузка из SeaBIOS в GRUB (на небольшом отдельном диске), а затем загрузка по цепочке в Windows. Однако я не очень успешно его настраивал, так как среды Linux не видят массив из-за отсутствия драйверов и, следовательно, не могут помочь с созданием меню, но сам GRUB не слишком дружелюбен и не многословен - я даже не мог понять, действительно ли это воспринимает массив как дисковод или требует предварительной загрузки некоторых драйверов или любых других предварительных условий. Аварийные комплекты, такие как RescaTux или PartedMagic, также не помогают, поскольку они нацелены на восстановление существующих установок GRUB, а не на установку новых.

Для справки, я экспериментировал с Xen 4.7.2, используя восходящий Qemu 2.6.2 с SeaBIOS 1.9.1, поверх openSUSE 42.2 с Linux 4.4.62. Форумы и списки рассылки указывают на то, что загрузка с PCI RAID уже была возможна в гораздо более старых версиях, более десяти лет, поэтому я предполагаю, что в этом виноват мой конкретный способ. Но я не могу понять, действительно ли SeaBIOS способен загружаться с моего RAID-контроллера?

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

2 ответа

Тогда у вас есть только один способ:

  1. Вы должны найти старую материнскую плату с PCI V2.2 слот расширения и попробуйте загрузиться с рейд-контроллера.
  2. Затем установите специальные драйверы для KVM всего виртуального оборудования (см. Ниже).
  3. Сделать резервную копию. Затем загрузитесь с живого компакт-диска Linux (на примере SystemRescueCD) и уменьшите размер разделов, не меняя начальную позицию загрузочного и корневого раздела (обычно это диск окна). C:) от GParted программа. У вас должно быть больше 8Gb+RAM свободного дискового пространства на логическом RAID-диске. Будьте уверены, что вы можете загрузиться после него.
  4. Дублировать логический диск dd Команда для файла на резервном диске. Затем подключите диски к новой материнской плате, установите Linux на программный RAID1

Например: у вас есть 4 х 120 Гб дисков в RAID5 и один логический диск /dev/sda, У вас есть только один раздел /dev/sda1 который является диском Windows C:, Имеет размер 300 Гб после уменьшения на GParted, Вы монтируете другой резервный диск командой: mount /dev/sdb1 /mnt, Затем скопируйте первые 301 ГБ диска RAID на резервный диск по команде dd if=/dev/sda of=/mnt/disk-c.img bs=4M count=77056, Когда это скопировано, сделайте umount /mnt,

  1. Создать мягкий RAID5 на свободном месте. Создайте группу LVM и том LVM с размером больше, чем файл изображения.
  2. Скопируйте данные из файла изображения в том LVM. Прикрепите этот том как RAW-диск к виртуальной машине.

Например: создать логический том по команде lvcreate -L 302G -n win_disk vg0, Смонтируйте резервный диск и скопируйте данные на том dd of=/dev/vg0/win_disk if=/mnt/disk-c.img bs=4M count=77056,

Оставьте свой RAID-контроллер в корзину.

PS:

Когда я создал виртуальную машину Windows 2000, я назначил следующее виртуальное оборудование:

  • CPU - гипервизор по умолчанию
  • Диск - IDE raw
  • NIC - модель устройства rtl8139
  • Мышь и клавиатура - PS/2
  • Видео - Cirrus

Драйверы:

Realtek RTL3189C

Windows гостевые драйверы для KVM libvirt

Поддержка старого чипсета Intel

Да, SeaBIOS поддерживает загрузку и запуск дополнительных дисков PCI. Что, по-видимому, на самом деле работает, как вы можете видеть загрузочные сообщения контроллера рейда. Затем PCI должен зарегистрировать любые загрузочные диски, чего здесь не происходит. Может быть проблема конфигурации. Проверяйте утилиту конфигурирования массива всякий раз, когда вы можете настроить загрузочный том там. Также может быть какая-то ошибка или несовместимость...

Если это не сработает, вы можете попробовать что-то совершенно другое: подключите диски к некоторому поддерживаемому linux контроллеру sata, а затем проверьте, может ли dmraid декодировать том рейда. Если это работает, вы можете подключить его как простой диск к вашей виртуальной машине win2k3.

Другие вопросы по тегам