FreeBSD с корнем на CDROM и разделами на программном RAID-1.
Copyleft Polina Soloviova
Добавим немного гибкости.
Теперь вам не страшны неисправности жестких дисков. А что делать, если
неисправен CDROM? Для того, чтобы в такой ситуации можно было с минимальными
потерями времени вернуть сервер в рабочее состояние, нужно добавить возможность
загрузки с жестких дисков. Для этого скопируйте содержимое CDROM в те разделы,
где в этом случае будет корень системы, выполнив следующие команды:
- примонтируйте партиции ad0s1a и ad2s1a, то есть те, где при загрузке с жесткого диска будет корень системы.
# fsck /dev/ad0s1a
# fsck /dev/ad2s1a
# mount -t ufs /dev/ad0s1a /mnt/ad0s1a
# mount -t ufs /dev/ad2s1a /mnt/ad2s1a
- скопируйте содержимое CDROM в /mnt/ad0s1a и /mnt/ad2s1a
# tar --one-file-system -vpscf - -C / . | tar xpf - -C /mnt/ad0s1a
# tar --one-file-system -vpscf - -C / . | tar xpf - -C /mnt/ad2s1a
заметьте, директории /mnt/ad0s1a/dev/ и /mnt/ad2s1a/dev пусты. Опция --one-file-system команды tar(1) - запрещает этой команде выходить за пределы той файловой системы, в которой она находится. Другой вариант выполнения тех же действий вам уже знаком - это использование опции -X filename команды tar(1), что использовалось в разделе Создание стартовой директории данного руководства.
- создайте специальные файлы устройств в директориях /mnt/ad0s1a/dev и /mnt/ad2s1a/dev
# cp /dev/MAKEDEV /mnt/ad0s1a/dev
# cp /dev/MAKEDEV /mnt/ad2s1a/dev
# cd /mnt/ad0s1a/dev && sh MAKEDEV all
# cd /mnt/ad2s1a/dev && sh MAKEDEV all
эти команды создадут в указанных директориях все нужные для нормальной работы системы файлы устройств, за исключением устройств vinum(8) и ccd(4). В случае реализации с использованием vinum(8), скопируйте нужные устройства из корня текущей системы:
# mkdir /mnt/ad0s1a/dev/vinum
# cp -Rp /dev/vinum/* /mnt/ad0s1a/dev/vinum
# mkdir /mnt/ad2s1a/dev/vinum
# cp -Rp /dev/vinum/* /mnt/ad2s1a/dev/vinum
В случае реализации с использованием ccd(4), создайте необходимые файлы устройств с помощью скрипта MAKEDEV(8):
# cd /mnt/ad0s1a/dev && sh MAKEDEV ccd0 ccd1 ccd2
# cd /mnt/ad2s1a/dev && sh MAKEDEV ccd0 ccd1 ccd2
- отредактируете файлы /mnt/ad0s1a/etc/fstab и /mnt/ad2s1a/etc/fstab: в случае загрузки с жесткого диска необходимо указать системе, с какой партиции монтировать корень
# vi /mnt/ad0s1a/etc/fstab
добавьте в начало строку
/dev/ad0s1a / ufw rw 1 1
# vi /mnt/ad2s1a/etc/fstab
здесь добавьте в начало строку
/dev/ad2s1a / ufw rw 1 1
таким образом, файл /mnt/ad0s1a/etc/fstab теперь должен содержать строки:
- в случае реализации с использованием vinum(8):
/dev/ad0s1a |
/ |
ufs |
rw |
1 |
1 |
/dev/ad0s1b |
none |
swap |
sw |
0 |
0 |
/dev/ad2s1b |
none |
swap |
sw |
0 |
0 |
/dev/vinum/var |
/var |
ufs |
rw |
2 |
2 |
/dev/vinum/tmp |
/tmp |
ufs |
rw |
2 |
2 |
/dev/vinum/local |
/usr/local |
ufs |
rw |
2 |
2 |
proc |
/proc |
procfs |
rw |
0 |
0 |
- в случае реализации с использованием ccd(4):
/dev/ad0s1a |
/ |
ufs |
rw |
1 |
1 |
/dev/ad0s1b |
none |
swap |
sw |
0 |
0 |
/dev/ad2s1b |
none |
swap |
sw |
0 |
0 |
/dev/ccd0c |
/var |
ufs |
rw |
2 |
2 |
/dev/ccd1c |
/tmp |
ufs |
rw |
2 |
2 |
/dev/ccd2c |
/usr/local |
ufs |
rw |
2 |
2 |
proc |
/proc |
procfs |
rw |
0 |
0 |
файл /mnt/ad2s1a/etc/fstab будет содержать аналогичные строки, единственное отличие - /dev/ad2s1a вместо /dev/ad0s1a
- отредактируйте файл rc в обеих смонтированных директориях
# vi /mnt/ad0s1a/etc/rc
здесь не нужны исправления, внесенные для загрузки с CDROM.
удалите строки:
sbin/mount_mfs -s 12000 -o union,noatime,rw swap /dev
cd /dev && sh MAKEDEV vty12 pty0 std
Теперь в случае необходимости у вас есть возможность загрузить систему с любого из жестких дисков.
Предыдущая |
Содержание |
Следующая |
Запуск RAID-1
под управлением ccd |
|
Другой вариант настройки ccd:
применение утилиты disklabel к ccd - устройствам. |
Copyleft Polina Soloviova