Компьютеры архитектуры SPARC и x86 используют новый стиль загрузки – с помощью загрузочного архива, который представляет собой образ файловой системы, содержащий файлы для загрузки. При загрузке с корневой файловой системы ZFS имена путей файлов архива и ядра разрешаются в корневой файловой системе, которая выбрана для загрузки.
Когда система загружается для установки, диск ОЗУ используется для корневой файловой системы в продолжение всего процесса установки, что избавляет от необходимости загружаться со съемного носителя.
Если проводится начальная установка выпуска Solaris 10 10/08 или 10 5/09, либо используется Solaris Live Upgrade для миграции этого выпуска в корневую файловую систему ZFS на компьютерах архитектуры SPARC и x86, загрузку можно выполнять из корневой файловой системы ZFS.
Загрузка из файловой системы ZFS отличается от загрузки из файловой системы UFS, поскольку в ZFS спецификатор устройств указывает пул устройств хранения, а не на одну корневую файловую систему. Пул устройств хранения может содержать несколько загружаемых наборов данных или корневых файловых систем ZFS. При загрузке с ZFS укажите загрузочное устройство и корневую файловую систему в пуле, опознанном загрузочным устройством.
По умолчанию для загрузки выбирается набор данных, на который указывает свойство пула bootfs. Этот выбор по умолчанию можно переопределить, указав другое значение переменного загружаемого набора данных в команде boot -Z.
Можно создать зеркалируемый корневой пул ZFS при установке системы или прикрепить диск для создания зеркалируемого корневого пула ZFS после установки. Ознакомьтесь со следующими известными проблемами зеркалируемых корневых пулов ZFS:
Пока дефект CR 6668666 не устранен, вам понадобится установить загрузочную информацию на дополнительно прикрепленные диски с помощью команды installboot или installgrub, если нужно разрешить загрузку с других дисков зеркала. Если создается зеркалируемый корневой пул ZFS методом начальной установки, это действие не требуется. Например, если c0t1d0s0 – второй диск, добавленный к зеркалу, команда installboot или installgrub будет выглядеть следующим образом:
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
Можно загружаться из разных устройства в зеркалируемом корневом пуле ZFS. В зависимости от конфигурации оборудования может понадобиться изменить ППЗУ или BIOS, чтобы указать другое загрузочное устройство.
Например, в этом пуле можно загружаться с любого из дисков (c1t0d0s0 или c1t1d0s0).
# zpool status pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 ONLINE 0 0 0 |
На компьютерах с архитектурой SPARC введите переменный диск в ответ на запрос ok.
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1 |
После загрузки системы проверьте, какое загрузочное устройство активно. Пример:
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1,0:a' |
В системах на основе x86 используется следующий синтаксис:
x86# prtconf -v|sed -n '/bootpath/,/value/p' name='bootpath' type=string items=1 value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a' |
На компьютерах с архитектурой x86 выберите переменный диск в зеркалируемом корневом пуле ZFS из соответствующего меню BIOS.
На компьютере архитектуры SPARC с несколькими средами загрузки ZFS можно выполнить загрузку из любой среды с помощью команды luactivate. Если на загрузочном устройстве имеется пул устройств хранения данных ZFS, то после активации среды загрузки можно с помощью команды загрузки -L просмотреть список сред загрузки.
Во время установки и выполнения Solaris Live Upgrade корневая файловая система ZFS выбирается автоматически с помощью свойства bootfs.
В пуле может существовать несколько загружаемых наборов данных. По умолчанию запись загружаемого набора данных в файле /pool-name/boot/menu.lst определяется по свойству bootfs этого пула. Однако запись menu.lst может содержать команду bootfs, которая указывает альтернативный набор данных в пуле. Таким образом, файл menu.lst может содержать записи для нескольких корневых файловых систем в данном пуле.
При установке системы с корневой файловой системой ZFS или переходе в корневую файловую систему ZFS в файл menu.lst добавляется запись, подобная следующей:
title zfs1009BE bootfs rpool/ROOT/zfs1009BE title zfs509BE bootfs rpool/ROOT/zfs509BE |
При создании новой среды загрузки в файл menu.lst автоматически вносятся изменения.
На компьютерах с архитектурой SPARC доступны два новых параметра загрузки:
Можно использовать команду boot - L для вывода списка загружаемых наборов данных этого пула ZFS. Затем можно выбрать из списка один загружаемый набор данных. Выводятся подробные инструкции для загрузки этого набора данных. Выбранный набор данных можно загрузить, следуя инструкциям. Эта возможность доступна только в случае, когда загрузочное устройство содержит пул устройств хранения ZFS.
Использовать команду набора данных boot -Z для загрузки конкретного набора данных ZFS.
Если в пуле устройств хранения ZFS на загрузочном устройстве вашего компьютера есть несколько сред загрузки ZFS, можно использовать для указания BE по умолчанию команду luactivate.
Например, доступны следующие среды загрузки ZFS, описанные выводом команды lustatus:
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- zfs1009BE yes yes yes no - zfs509BE yes no no yes - |
Если на компьютере с архитектурой SPARC есть несколько сред загрузки ZFS, можно использовать команду boot - L. Пример:
ok boot -L Rebooting with command: boot -L Boot device: /pci@8,600000/SUNW,qlc@2/fp@0,0/disk@w500000e01082bbd1,0:a File and args: -L 1 zfs1009BE 2 zfs509BE Select environment to boot: [ 1 - 2 ]: 2 ok boot -Z rpool/ROOT/zfs509BE |
На компьютерах с архитектурой SPARC можно загружаться из отказоустойчивого архива, расположенного в каталоге / /platform/`uname -i`/failsafe, следующим образом. Пример:
ok boot -F failsafe |
Если нужно загрузить отказоустойчивый архив из конкретного загружаемого набора данных ZFS, используйте конструкцию, подобную следующей:
ok boot -Z rpool/ROOT/zfs1009BE -F failsafe |
Следующие записи добавляются в файл /pool-name /boot//grub/menu.lst в процессе установки или операции Solaris Live Upgrade для автоматической загрузки ZFS:
title Solaris 10 10/09 s10x_u8wos_07b X86 findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
Если устройство, опознанное GRUB как загрузочное устройство, содержит пул устройств хранения ZFS, файл menu.lst используется для создания меню GRUB.
На компьютерах с архитектурой x86 с несколькими ZFS BE можно выбрать BE в меню GRUB. Если корневая файловая система, соответствующая этому пункту меню, представляет собой набор данных ZFS, добавляется следующий параметр.
-B $ZFS-BOOTFS |
При загрузке с использованием файловой системы ZFS корневое устройство указывается параметром - B $ZFS-BOOTFS команды boot в строке kernel или module пункта меню GRUB. Это значение, как и для всех остальных параметров, указываемых параметром -B, передается из GRUB в ядро. Пример:
title Solaris 10 10/09 s10x_u8wos_07b X86 findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
Отказоустойчивый архив x86 –/boot//x86.miniroot-safe. Его можно загрузить, выбрав пункт Solaris failsafe в меню GRUB. Пример:
title Solaris failsafe findroot (pool_rpool,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
Для смены активной среды загрузки лучше всего использовать команду luactivate. Если не удается выполнить загрузку активной среды из-за неверного исправления или ошибки настройки, единственный способ загрузить другую среду – выбрать ее во время загрузки. Альтернативную среду загрузки можно выбрать в меню GRUB на компьютере архитектуры x86 или загрузить ее явным образом из ППЗУ на компьютере архитектуры SPARC.
В результате ошибки функции Live Upgrade в версии Solaris 10 10/08 неактивная среда загрузки может не загрузиться из-за неверной точки монтирования для наборов данных ZFS или набора данных ZFS зоны в среде загрузки. Та же ошибка не позволяет выполнить монтирование среды загрузки при наличии отдельного набора данных /var.
Если точка монтирования набора данных зоны неверна, ее можно исправить по следующей процедуре:
Загрузите систему из отказоустойчивого архива.
Импортируйте пул.
Пример:
# zpool import rpool |
После импорта пула просмотрите выходные данные команды zfs list.
Найдите неверные временные точки монтирования. Пример:
# zfs list -r -o name,mountpoint rpool/ROOT/s10u6 NAME MOUNTPOINT rpool/ROOT/s10u6 /.alt.tmp.b-VP.mnt/ rpool/ROOT/s10u6/zones /.alt.tmp.b-VP.mnt//zones rpool/ROOT/s10u6/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA |
Точкой монтирования для среды загрузки корневой системы (rpool/ROOT/s10u6) должна быть /.
Если выполнить загрузку не удается из-за проблем с монтированием /var, найдите подобную временную точку монтирования для набора данных /var.
Переопределите точки монтирования для среды загрузки системы ZFS и ее наборов данных.
Пример:
# zfs inherit -r mountpoint rpool/ROOT/s10u6 # zfs set mountpoint=/ rpool/ROOT/s10u6 |
Перезагрузите систему.
Если в меню GRUB или командах ППЗУ OpenBoot имеется возможность выбора конкретной среды загрузки, выберите среду загрузки с исправленными точками монтирования.