1

Контекст:

У меня есть система, которая постоянно забывает порядок загрузки жесткого диска. Я указываю это в BIOS, и после следующей перезагрузки его уже нет. Мой основной загрузочный диск находится на дополнительной карте (SAS HBA). Утилита настройки BIOS материнской платы прекрасно подхватывает диски на этой карте. Но, как бы я ни расположил их в BIOS, порядок загрузки HD сбрасывается при следующем цикле питания. Диск, на котором установлена моя ОС, никогда не находится наверху, поэтому система никогда не загружается.

Я могу рассчитывать на то, что мой сервер amnesiac всегда будет пытаться загрузиться с оптического носителя и USB-носителя, прежде чем пытаться использовать любые жесткие диски. Кроме того, порядок жестких дисков, к которым он перезагружается, всегда одинаков (если я не переставляю кабели).

Что я пробовал:

Я пытался обновить / сбросить BIOS, чтобы исправить проблему с рутом, но безрезультатно. Я обновил / сбросил / перенастроил прошивку на моем SAS HBA. Я попытался связаться с производителем материнской платы по поводу очевидной ошибки, и мне сказали, что у меня нет бесплатных вариантов поддержки. Линия поддержки производителя SAS HBA сказала мне, чтобы я купил другую материнскую плату. Я попытался записать загрузчик с загрузкой по цепочке в начало диска, который всегда находится вверху списка, что нарушило мои настройки RAID. Я попытался подключить SAS HBA к разным слотам PCIe и разобраться с порядком подключения дисков на родных SATA-каналах материнской платы и на самом HBA. Если я физически не отключу все SATA-ссылки на материнской плате, проблема не исчезнет, и мне нужны эти ссылки.

Вопрос:

Я в значительной степени разочаровался в решении корня проблемы (BIOS забыл порядок загрузки HD). Учитывая , что я могу рассчитывать на систему пытается загрузиться с USB или оптических носителях первого, и что жесткий диск я хочу загрузиться всегда в том же месте в порядке BIOS (и , предположительно , устройство перечисления в большинстве операционных систем), является загрузочный компакт-диск, который я могу настроить для автоматической загрузки системы с произвольно пронумерованного жесткого диска?

Мое идеальное решение будет выглядеть примерно так:

  1. Я загружаю образ автозагрузки CD/USB.
  2. Я настраиваю его параметры (что-то вроде «после 5 секундного тайм-аута, автозагрузка с HDD 04»). Это должно быть в состоянии выбрать жесткий диск, отличный от стандартного загрузочного диска BIOS.
  3. Я помещаю изображение на USB или оптический носитель и подключаю его к системе.
  4. Каждый раз, когда я перезагружаю систему, запускается новый загрузчик, который автоматически сообщает системе о загрузке с правильного диска.

Я технически компетентен, но не имею опыта ручной настройки GRUB или чего-то подобного. С чего мне начать?

1 ответ1

1

Вы можете установить GRUB и использовать UUID в качестве идентификатора для каждого раздела жесткого диска, чтобы гарантировать, что ПК всегда будет запускать правильный раздел, несмотря на то, что жесткие диски изменяют свой порядок загрузки в BIOS.

Прежде всего, просто возьмите LiveCD (кто должен, я обычно использую SystemRescueCd. После загрузки в режиме консоли (опция по умолчанию) выполните следующую команду, чтобы получить UUID:

ls -l /dev/disk/by-uuid/

Это даст вам что-то вроде следующего:

localhost ~ # ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Feb 22 09:25 0adb57d3-e475-4825-8ff9-32bd82fbd210 -> ../../sda3
lrwxrwxrwx 1 root root 10 Feb 22 09:25 9fb9d595-77b3-458a-b082-80a77d1d2b50 -> ../../sda1
lrwxrwxrwx 1 root root 10 Feb 22 09:25 d1a2c45f-b8dc-4312-a195-853e9364b398 -> ../../sda2

-> ../../sdaX равно /dev /sdaX. Таким образом, вы можете получить все UUID вашего жесткого диска. В приведенном выше примере приведены разделы Linux, в разделах Windows может отображаться другой UUID, но они всегда уникальны.

Теперь вам нужно вставить USB-драйвер, с которого вы хотите запустить ОС, и смонтировать ее: mount /dev/sdd1 /mnt/pendrive

Затем вы можете установить GRUB на ваш pendrive с помощью следующей команды:

grub-install --no-floppy --root-directory=/mnt/pendrive /dev/sdd1

Чтобы получить устройство, в котором находится USB-ключ, вы можете запустить fdisk -l .

После установки вы должны отредактировать файл grub.conf и использовать UUID, чтобы выбрать правильный раздел:

root (hd0,0)
kernel /<kernel_file> root=UUID=4a2464b4-c865-4681-b9d9-5d8aef1e2215 

Другим более простым способом может быть использование SuperGrubDisk, позволяющего ему находить загрузочные разделы и выбирать, какой из них загружать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .