Загрузка с контроллера 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-контроллер в качестве загрузочного устройства , несмотря на то, что он может успешно взаимодействовать с ним.

То есть:

У меня также была идея, что здесь может помочь 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
задан 4 June 2017 в 17:09
2 ответа

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

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

0
ответ дан 3 December 2019 в 14:11

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

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

. Пример: у вас есть 4 диска по 120 ГБ в RAID5 и один логический диск / dev / sda . У вас есть только один раздел / dev / sda1 , который представляет собой диск Windows C: . После уменьшения на GParted он имеет размер 300 ГБ. Вы подключаете другой резервный диск командой: 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, я назначил следующее виртуальное оборудование:

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

Драйверы:

Realtek RTL3189C

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

Поддержка старого набора микросхем Intel

Win2000 Device Manager

0
ответ дан 3 December 2019 в 14:11

Теги

Похожие вопросы