On 11/26/13 14:07, Eugene Grosbein wrote:
On 26.11.2013 18:28, Sergey Kobzar wrote:
Приветствую

FreeBSD 7.2-RELEASE-p2

Есть софтовое зеркало:
        Name    Status  Components
mirror/gm0  COMPLETE  da0
                        ad0

da0 - SCSI
ad0 - SATA

Ядро загружается с da0. Необходимо заменить da0 на SATA. Измениться имя
устройства.

Как сказать лоадеру, с какого устройства грузиться и где находится
рутовая ФС?

Сервер удаленный поэтому права на ошибку нет :).

Спасибо.

С da0 загрузку начинает не ядро, а BIOS,
и грузит оно не ядро, а начальный загрузчик boot0,
который в случае MBR/UFS с того же устройства грузит boot2,
который грузит loader, который с него же грузит ядро - всё это грузится,
используя сервисы BIOS, ни о каком зеркале на этом этапе речи нет.

loader содержит в себе небольшую r/o реализацию UFS, которая
умеет разобрать файловую систему загрузочного раздела загрузочного
диска и прочитать оттуда ядро и модули. По умолчанию этим диском
является тот диск, с которого BIOS читала загрузчик.

Ещё loader читает /etc/fstab с этого же раздела и выясняет
из него имя загрузочного раздела и передаёт его ядру.

И уже потом загруженное loader-ом ядро монтирует корневую файловую систему с 
зеркала,
которое по умолчанию находит свои компоненты на дисках по меткам
в последнем секторе, если только имена дисков не прописаны жестко
(hardcoded) в конфигурации gm0, но это большая редкость.

Я понимаю, что зеркало появляется только после загрузки ядра.

Так что должно быть достаточно просто добавить в зеркало третий диск,
дождаться синхронизации на него всех данных, а затем просто отключить da0.

Спасибо за ликбез. Буду пробовать :).

Ответить