FreeBSD с корнем на CDROM и разделами на программном RAID-1.
Copyleft Polina Soloviova
Запуск RAID-1 под управлением ccd(4)
Как и в случае с vinum(8), необходимо перегрузить систему в однопользовательский режим. Однако с ccd(4) процесс окончательной его настройки займет больше времени.
- Перегрузите систему в однопользовательский режим
# reboot
поменяйте настройки BIOS - поставьте первым загрузочным устройством CDROM. Когда вы увидите надпись
Hit [Enter] to boot immediately, or any other key for command prompt
Booting [kernel] in 9 seconds...
Type '?' for a list of commands, 'help' for more detailed help
нажмите любую клавишу и в появившейся командной строке наберите
ok boot -s
- сконфигурируйте ccd(4) - устройства
# ccdconfig -U
ccd0-3: Concatenated disk drivers
ccdconfig: ioctl (CCDIOCCLR): /dev/ccd0c: Device not configured
ccdconfig: ioctl (CCDIOCCLR): /dev/ccd1c: Device not configured
ccdconfig: ioctl (CCDIOCCLR): /dev/ccd2c: Device not configured
Эта команда опциональна и имеет скорее страховочный смысл. Она заставляет ccd(4) сбросить текущую конфигурацию ccd-устройств.
# ccdconfig ccd0 128 CCDF_MIRROR /dev/ad0s1e /dev/ad2s1e
ccd0: mirror/parity forces uniform flag
# ccdconfig ccd1 128 CCDF_MIRROR /dev/ad0s1f /dev/ad2s1f
ccd1: mirror/parity forces uniform flag
# ccdconfig ccd2 128 CCDF_MIRROR /dev/ad0s1g /dev/ad2s1g
ccd2: mirror/parity forces uniform flag
точно также, как и в конфигурационном файле ccd(4), эти команды подготавливают почву для создания RAID-1 - в них сообщается ccd(4), какие партиции участвуют в зеркалировании.
другой вариант выполнения тех же действий приведен ниже:
# ccdconfig -C
опция -C команды ccdconfig заставит эту команду сконфигурировать устройства в соответствии с конфигурационным файлом ccd.conf.
- разметьте только что сконфигурированные устройства на партиции с помощью утилиты disklabel(8):
# disklabel -r -w ccd0c auto
# disklabel -r -w ccd1c auto
# disklabel -r -w ccd2c auto
- создайте файловую систему ufs на новых устройствах
# newfs /dev/ccd0c
# newfs /dev/ccd1c
# newfs /dev/ccd2c
- смонтируйте /var, /tmp и /usr/local
# fsck -p
# mount -a
- скопируйте файлы из архивов в соответствующие директории
# cd /root/archives
# tar vxpf var.tar.gz -C /var
# tar vxpf tmp.tar.gz -C /tmp
# tar vxpf local.tar.gz -C /usr/local
- перезагрузите систему в многопользовательский режим
# reboot
Теперь вы можете посмотреть список загруженных в память модулей командой kldstat(8), и убедиться, что модуль ccd.ko загружен:
# kldstat
Id Refs Address Size Name
1 2 0xc0100000 1be2f4 kernel
2 1 0xcd1f6000 5000 ccd.ko
Корень вашей системы теперь находится на CD, а остальные зеркалируются с помощью ccd(4), что легко можно проверить, выполнив команду:
# df -H
Filesystem |
Size |
Used |
Avail |
Capacity |
Mounted on |
/dev/acd0a |
339M |
339M |
0B |
100% |
/ |
mfs:10 |
5.9M |
16K |
5.4M |
0% |
/dev |
/dev/ccd0c |
528M/ |
14M |
472M |
3% |
/var |
/dev/ccd1c |
264M |
2.0K |
243M |
0% |
/tmp |
/dev/ccd2c |
21G |
160M |
19G |
1% |
/usr/local |
procfs |
4.1K |
4.1K |
0B |
100% |
/proc |
В разделе Добавим немного гибкости. описано, как добавить к возможностям системы способность загружаться с любого из жестких дисков. Это может быть необходимым, например, в случае неисправности CDROM - привода.
Copyleft Polina Soloviova