7.2. Нумерация дисков в BIOS во FreeBSD


Вам необходимо изучить этот вопрос перед тем, как устанавливать и настраивать FreeBSD на вашей машине, особенно если у вас имеется несколько дисков.

В случае PC под управлением DOS или других зависимых от BIOS операционных систем (WINxxx), BIOS может скрывать обычный порядок следования дисков, и операционная система не замечает этого. Это позволяет пользователю загружаться с диска, отличного от так называемого "основного первичного". Это особенно удобно тем пользователям, которые находят, что самый простым и дешевым способом создания резервных копий является покупка второго винчестера, идентичного первому, и выполнение регулярных копий первого диска на второй при помощи программ Ghost или XCOPY. В таком случае, если первый диск ломается, подвергается атаке вируса или портится из-за дефекта в операционной системе, он может быть легко восстановлен просто указанием BIOS логически поменять диски местами. Это похоже на переключение кабелей на винчестерах, но без разборки корпуса.

Более дорогие системы с контроллерами SCSI часто включают расширения BIOS, которые точно также позволяют изменить порядок следования до семи дисков SCSI.

Пользователь, который привык пользоваться этой возможностью, может быть удивлен результатом попытки ею воспользоваться с FreeBSD. FreeBSD не использует BIOS и не знает о "логическом переназначении дисков BIOS". Это может привести к очень запутанной ситуации, особенно когда диски идентичны по физическим параметрам и к тому же являлись клонами друг друга.

При работе с FreeBSD, всегда настраивайте BIOS на естественный порядок нумерации дисков до установки FreeBSD, и оставляйте эту настройку. Если вам нужно поменять диски местами, делайте это, но самым сложным способом, открывая корпус машины и переключая кабели и перемычки.

Пример из Удивительных приключений Билла и Фреда:

Билл пожертвовал стареньким Wintel-компьютером под машину FreeBSD для Фреда. Билл задал единственный винчестер SCSI как устройство SCSI номер ноль и установил на него FreeBSD.

Фред начал работать с системой, однако после нескольких дней работы заметил, что старый диск SCSI сообщает о множестве программных ошибок, и сообщил об этом Биллу.

Спустя еще несколько дней Билл, решив выделить некоторое время на решение этой проблемы, взял идентичный диск SCSI со "склада" винчестеров в кладовке. Первичное сканирование поверхности показало нормальное функционирование, так что Билл устанавливает этот диск как устройство SCSI номер четыре, и выполняет копирование образа с диска номер ноль на диск с номером четыре. Теперь, после того, как новый диск был установлен и начал нормально работать, Билл решает, что хорошо бы начать использовать его, поэтому он воспользовался возможность в SCSI BIOS изменить порядок следования дисков для загрузки системы с устройства SCSI номер четыре. FreeBSD загружается и работает прекрасно.

Фред продолжает свою работу еще несколько дней, и вскоре Билл и Фред решают, что пришло время для нового испытания -- обновления до новой версии FreeBSD. Билл убрал диск SCSI номер ноль, потому что он был несколько поврежден, и заменил его другим идентичным диском со "склада". Затем Билл установил новую версию FreeBSD на новый диск SCSI с номером ноль при помощи волшебных дискет Фреда с поддержкой FTP через Интернет. Установка прошла нормально.

Фред продолжает использовать новую версию FreeBSD несколько дней и решает, что она достаточно хороша для использования в инженерном отделе... самое время скопировать всю его работу со старой версии. Так что Фред монтирует устройство SCSI номер четыре (самая последняя копия старой версии FreeBSD). Фред с ужасом обнаруживает, что никаких следов его работы на диске SCSI номер четыре нет.

Куда же исчезли данные?

Когда Билл делал копию образа исходного диска SCSI номер ноль на диск SCSI номер четыре, диск номер четыре стал "новым клоном". Когда Билл изменил порядок следования дисков в SCSI BIOS, чтобы загружаться с диска SCSI номер четыре, он обманул этим только самого себя. FreeBSD продолжала работать с диска SCSI номер ноль. Выполнение подобных изменений в BIOS приведет к тому, что все или некоторые компоненты кода начальной загрузки будут браться с указанного диска BIOS, но когда очередь доходит до драйверов ядра FreeBSD, нумерация дисков BIOS игнорируется, и FreeBSD возвращается обратно к обычной схеме нумерации дисков. В приведенном примере система продолжала работать с начальным диском SCSI номер ноль, и все данные Фреда оставались здесь, а не на устройстве SCSI номер четыре. Тот факт, что система запускалась с диска SCSI номер четыре, был просто обманом человеческих ожиданий.

Мы хотим отметить, что при этом феномене не был уничтожен или утерян ни один байт данных. Старый диск SCSI номер ноль был забран из мусорки и вся работа Фреда была восстановлена (и теперь Билл знает, что он умеет считать до нуля).

Хотя в этом примере использовались диски SCSI, общая идея применима и для устройств IDE.

Обновлено: 12.03.2015