Как мне создать загрузочный CD / USB-накопитель, который автоматически загружает систему с определенного жесткого диска, отличного от заданного по умолчанию?

3797
Zac B

Контекст:

У меня есть система, которая постоянно забывает порядок загрузки жесткого диска. Я указываю это в 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
Во-первых, на материнской плате есть небольшая батарея, предназначенная для поддержания настроек BIOS между загрузками / временем без питания. Я бы сначала заменил эту батарею, а затем повторил все настройки BIOS. Kruug 11 лет назад 0
Я уже попробовал сброс без питания, сброс при включении питания, сброс «Загрузить настройки по умолчанию» и все вышеперечисленное после обновления BIOS до последней версии. Zac B 11 лет назад 0
Давайте попробуем заменить батарею. http://support.dell.com/support/topics/global.aspx/support/kcs/document?c=us&l=en&s=gen&docid=DSN_5A38FC8B0CC6FC94E040AE0AB7E10B10&isLegacy=true Kruug 11 лет назад 1
Вы пытались установить GRUB и использовать UUID для выбора нужного диска? (UUID уникален для каждого жесткого диска и не меняется) Peter 11 лет назад 1
@ Zac B: другие изменения в BIOS тоже сбрасываются? Если они не пропустят остальные. Если они есть: есть ли на материнской плате перемычка для сброса BIOS? Это случайно установлено? Если нет [установить], то подумайте о замене батареи в соответствии с предложением Крюгса. Hennes 11 лет назад 0
Я переключил батарею для идентичной батареи в новой материнской плате, которую я только что купил для другой системы (я не могу переключать материнские платы, хотя хотел бы). Проблема сохраняется. Все остальные параметры, которые я изменил, сохраняются между циклами питания (но не между полным сбросом / перезапуском на основе сброса). Это только порядок HD, который, кажется, забыт. @Peter: пожалуйста, опубликуйте ответ / предложение (со ссылкой!) О том, как определить UUID и настроить GRUB для загрузки с него с помощью внешнего загрузочного диска / USB. Zac B 11 лет назад 0

1 ответ на вопрос

1
Peter

You can install GRUB and use UUID as identifier for each hard disk partition to ensure the PC will start always the correct partition despite the HDDs chaning its boot order in BIOS.

First of all, just grab a LiveCD (anyone should do, I usually use SystemRescueCd. Once booted in console mode (default option), run the following command to get the UUID:

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

That will give you something like the following:

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 equals to /dev/sdaX. This way you can get all the UUIDs of your HDDs partition. The example above are Linux partitions, Windows partitions might display a different UUID, but they're always unique.

Now you should insert the USB pendrive you want to start the OS from and mount it: mount /dev/sdd1 /mnt/pendrive

Then you can install GRUB to your pendrive with the following command:

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

To get the device the USB key is located in you can run fdisk -l.

Once installed, you should edit the grub.conf file and use UUID to select the right partition:

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

Another easier method could be to use SuperGrubDisk and let it find the boot partitions and let you select which one to boot.