INSTALL.<arch>
в вашей системе.
wd0
, а третий SCSI-подобный диск будет
sd2
. Обратите внимание, что OpenBSD не обязательно нумерует диски в
том же порядке, что и ваш boot ROM.
a
до p
.
Несколько label являются особенными:
a
:
Раздел a
загрузочного диска является вашим root разделом.
b
:
Раздел b
загрузочного диска является вашим swap разделом.
c
:
Раздел c
всегда весь диск (entire disk).
# newfs sd2aТаким образом, имя устройства плюс disklabel идентифицируют файловую систему OpenBSD. Например, идентификатор
sd2a
относится к файловой системе
в разделе a
третьего устройства sd
.
Его файлы устройства будут /dev/sd2a
для блочного устройства и
/dev/rsd2a
для raw (character) устройства.
Для того, чтобы определить какое устройство необходимо использовать
(block или character), многие команды используют функцию
opendev(3), которая автоматически
расширяет sd0
до /dev/rsd0c
или /dev/sd0c
в зависимости от ситуации.
$ sysctl hw.disknames hw.disknames=wd0:bfb4775bb8397569,cd0:,wd1:56845c8da732ee7b,wd2:f18e359c8fa2522bВы можете указать разделы на диске, добавив точку и букву раздела. Например,
f18e359c8fa2522b.d
является разделом d
диска
f18e359c8fa2522b
и всегда будет ссылаться на одну и ту же область диска
(refer to the same chunk of storage), независимо от того, в какой
последовательности или к какому интерфейсу был подключен.
Если вы поместите данные на wd2d
, а затем удалите wd1
из системы и перезагрузитесь, ваши данные будут на wd1d
, так как ваш
старый wd2
теперь стал wd1
.
Тем не менее, DUID диска не изменится после загрузки.
Увидеть таблицу разделов на диске можно так:
# fdisk sd0 Disk: sd0 geometry: 553/255/63 [8883945 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------ 0: 12 0 1 1 - 2 254 63 [ 63: 48132 ] Compaq Diag. 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused *3: A6 3 0 1 - 552 254 63 [ 48195: 8835750 ] OpenBSDТут раздел с OpenBSD (id
A6
) помечен при помощи символа *
.
Это говорит о том, что это загрузочный раздел (bootable partition).
На полностью чистом диске должен быть boot code в MBR (master boot record), прежде чем его можно будет использовать для загрузки. Обычно все, что вам нужно сделать для его создания, это:
# fdisk -iy sd0В качестве альтернативы, используйте команды
reinit
или
update
в интерактивном режиме.
При помощи -e
можно активировать интерактивный режим редактирования:
# fdisk -e sd0 Enter 'help' for information fdisk: 1>Помните, что
quit
сохраняет изменения и выходит из программы,
а exit
выходит без сохранения.
Это противоположно тому, к чему многие из нас привыкли. Также обратите внимание, что
fdisk не предупреждает перед сохранением изменений.
Если в вашей системе вы специально создали раздел для maintenance или диагностики, рекомендуется его не трогать или создать его перед установкой OpenBSD.
Это может помочь преодолеть ограничения на количество разделов на диске на некоторых архитектурах. Например, на i386 доступно только четыре основных раздела MBR. При помощи disk labels один из этих основных разделов будет содержит все ваши разделы OpenBSD, а остальные три могут использоваться другими операционными системами.
На платформах, использующих fdisk, вы должны оставить первую логическую дорожку (first logical track) неиспользованной ни disklabel ни fdisk. По этой причине, по умолчанию первый раздел начинается с блока 64.
Не устанавливайте swap в самом начале вашего диска на sparc64. В то время как Solaris часто это делал, OpenBSD требует, чтобы именно загрузочный раздел находился в начале диска.
Копия disklabel для каждого диска сохраняется в /var/backups
как
часть ежедневного system maintenance.
Если у вас все все еще есть раздел /var
, вы можете просто считать
вывод и поместить его обратно в disklabel при помощи флага -R
.
Если же вы больше не имеете доступа к этому разделу, остается еще два варианта:
восстановить достаточно данных на диске, чтобы можно было снова увидеть этот
раздел или чтобы вы могли по крайней мере извлечь оттуда свои данные.
Утилита scan_ffs(8) просматривает
диск, с целью поиска разделов на нем.
Вы можете использовать найденную информацию для воссоздания метки диска (recreate
the disklabel).
Если вы просто хотите вернуть /var
, вы можете заново создать раздел
для /var
, затем восстановить backup метки и добавить оставшуюся часть.
Утилита disklabel(8) поможет ядру
распознать disklabel и попытается записать метку на диск.
Поэтому, даже если область диска, содержащая disklabel, не читается, вы сможете
подмонтировать ее и испрользовать до следующей перезагрузки.
/boot
.
PBR запускает программу boot(8),
задача которой - поиск и загрука ядра.
Using drive 0, partition 3. <- MBR Loading...... <- PBR probing: pc0 com0 com1 mem[638K 1918M a20=on] <- /boot disk: hd0+ hd1+ >> OpenBSD/amd64 BOOT 3.33 boot> booting hd0a:/bsd 4464500+838332 [58+204240+181750]=0x56cfd0 entry point at 0x100120 [ using 386464 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 <- Kernel The Regents of the University of California. All rights reserved.
/altroot
при помощи daily(8) скриптов.
Если переменная окружения (environment variable) установлена в ROOTBACKUP=1
в /etc/daily.local
или root'овском
crontab(5), и соответствующий
раздел сконфигурирован в fstab(5)
на монтирование в /altroot
и имеет mount options xx
,
то каждую ночь содержимое корневого раздела (contents of the root partition)
будет скопированно в раздел /altroot
.
Предположим, вы хотите сделать резервную копию своего корневого раздела в раздел
с DUID bfb4775bb8397569.a
. Для этого
добавьте следующее в /etc/fstab
bfb4775bb8397569.a /altroot ffs xx 0 0и установите соответствующее значение переменной окружения в
/etc/daily.local
:
# echo ROOTBACKUP=1 >>/etc/daily.localТак как данные, регулярно копирующиеся в
/altroot
, будут включать и
ваш /etc
, это гарантирует, что копии любых изменений в конфигурации
системы будут обновляться ежедневно.
Это «disk image» копия, созданная при помощи
dd(1), а не копия file-by-file,
поэтому размер вашего /altroot
должен быть как минимум того же
размера, что и корневой раздел.
Как правило, имеет смысл размещать /altroot
раздел на отдельном
диске, который настроен таким образом, чтобы в случае сбоя основного диска,
загружаться с него.
/SRC
в каталог
/DST
при помощи dump(8) и
restore(8):
# cd /SRC && dump 0f - . | (cd /DST && restore -rf - )или при помощи tar(1):
# cd /SRC && tar cf - . | (cd /DST && tar xpf - )
Используйте keywords userquota
и groupquota
для настройки каждой ФС в fstab(5),
для которой вы хотите использовать квоты.
По умолчанию файлы quota.user
и quota.group
будут
создаваться в корне этих файловых систем.
Вот пример из /etc/fstab
:
0123456789abcdef.k /home ffs rw,nodev,nosuid,userquota 1 2Чтобы установить квоты для пользователей, используйте edquota(8). Например, вот так:
# edquota ericjи установите soft и hard limits:
Quotas for user ericj: /home: KBytes in use: 62, limits (soft = 1000000, hard = 1500000) inodes in use: 25, limits (soft = 0, hard = 0)В этом примере soft limit установлен в 1000000k, а hard limit установлен в 1500000k. Ограничения на количество inodes не будут применяться, поскольку соответствующие soft и hard limits установлены на 0. Пользователи, превышающие свои soft limits, получают предупреждение, и им предоставляется время, так называемый grace period, чтобы использование ими места на диске снова было ниже их пределов. Grace periods можно установить с помощью опции
-t
в
edquota(8).
По истечении grace period soft limit обрабатывается как hard limit.
Это обычно приводит к ошибке allocation failure.
Используйте quotaon(8) для включения квот:
# quotaon -aЭто проверит fstab(5) и включит квоты для ФС с опциями квот. Просмотр статистики квот осуществляется при помощи quota(1).
$ man -k -s 8 mountНе забывайте, что поддержка может быть ограничена лишь read-only операциями.
/tmp/ISO.image
:
# vnconfig vnd0 /tmp/ISO.image # mount -t cd9660 /dev/vnd0c /mntПоскольку это ISO 9660 образ, который используется на CD- и DVD-дисках, вы должны указать тип
cd9660
при его монтировании.
Вот так можно размонтировать образ и отключить (unconfigure) устройство vnd(4):
# umount /mnt # vnconfig -u vnd0Больше информации можно найти в руководствах vnconfig(8) и mount(8).
disklabel -E sd0
и изменяйте размер раздела при помощи
команды m
.
Переконфигурировать файловую систему для использования всего раздела
можно при помощи growfs(8):
# growfs sd0hПрежде чем раздел будет смонтирован снова, его целостность должна быть проверена при помощи fsck(8):
# fsck /dev/sd0h
Поддерживаемые дисциплины softraid:
Level | Description | Bootable on |
---|---|---|
RAID0 | чередование | --- |
RAID1 | зеркалирование | amd64, arm64, i386, sparc64 |
RAID1C | зеркалирование с шифрованием | amd64, arm64, sparc64 |
RAID5 | чередование блоков данных и контролем чётности | --- |
CONCAT | конкатенация без избыточности, аналогично JBOD | --- |
CRYPTO | шифрование диска | amd64, arm64, i386, sparc64 |
Настройка диска может варьироваться от платформы к платформе. Обратите внимание, что в настоящее время «стекирование» режимов softraid не поддерживается.
Перед использованием install скрипта перейдете в shell и настройте устройство softraid(4).
Ядро, используемое во время установки, содержит ограниченное число
/dev
записей во время загрузки, поэтому вам нужно будет
вручную создать еще пару таких устройств, если они требуются для желаемой
настройки softraid.
Например, если вам потребуется три устройства
sd(4) для создания «зеркала»,
сделайте следующее в консоли:
Welcome to the OpenBSD/amd64 7.6 installation program. (I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s # cd /dev # sh MAKEDEV sd0 sd1 sd2Установшик после этого будет иметь поддержку
sd0
,
sd1
и sd2
устройств.
Если установочные компоненты
будут устанавливаться с USB-устройства, не забудьте учесть и это устройство.
Далее, инициализируйте диски при помощи fdisk(8) и создайте RAID разделы при помощи disklabel(8).
Если вы загружаетесь из MBR, сделайте следующее:
# fdisk -iy sd0 # fdisk -iy sd1Если же вы используете GPT для UEFI загрузки, сделайте следующее:
# fdisk -gy -b 532480 sd0 # fdisk -gy -b 532480 sd1Создайте таблицу разделов (partition layout) на первом устройстве:
# disklabel -E sd0 Label editor (enter '?' for help at any prompt) sd0> a a offset: [64] size: [39825135] * FS type: [4.2BSD] RAID sd0*> w sd0> q No label changes.Скопируйте созданную таблицу разделов (partition layout) на второе устройство:
# disklabel sd0 > layout # disklabel -R sd1 layout # rm layoutСоздайте (assemble) зеркало при помощи комманды bioctl(8):
# bioctl -c 1 -l sd0a,sd1a softraid0 scsibus1 at softraid0: 1 targets sd2 at scsibus2 targ 0 lun 0: <OPENBSD, SR RAID 1, 005> SCSI2 0/direct fixed sd2: 10244MB, 512 bytes/sec, 20980362 sec totalВывод команды показывает, что теперь у нас есть новая SCSI bus и новый диск
sd2
. Этот том (volume) будет автоматически обнаружен
и собран (assemble) во время загрузке системы.
Даже если вы создадите несколько RAID-массивов, имя устройства всегда будет
softraid0
.
Поскольку новое устройство, где вы планируете создать основную загрузочную
запись (master boot record) и метку диска (disklabel), скорее всего содержит
много мусора, настоятельно рекомендуется обнуление первого фрагмента (chunk).
Будьте очень осторожны с этой командой; использование его не с тем
устройством может сильно испортить ваш день.
Использование команды ниже подразумевает, что созданным новым softraid
устройством является sd2
.
# dd if=/dev/zero of=/dev/rsd2c bs=1m count=1Теперь вы готовы начать установку OpenBSD. Создайте все разделы на вашем новом softraid диске (
sd2
в этом примере),
который должен быть там, а не на sd0
или sd1
(это не-RAID диски).
Используйте следующую команду, чтобы проверить состояние (status) зеркала:
# bioctl sd2Хорошей идеей может быть создание cron job, с целью проверки состояния «зеркала».
sd2
, и вы заменяете
поломанный диск на sd1m
, следующие команды должны быть
выполнены:
# bioctl -R /dev/sd1m sd2Это также может быть сделано в однопользовательском режиме или при помощи процедуры ramdisk ядра.
В качестве альтернативы использования passphrase можно использовать ключ, хранящийся на отдельном устройстве (например, на USB-накопителе), чтобы зашифровать диск.
В (S)hell
приглашении установщика
инициализируйте ваш keydisk при помощи
fdisk(8), затем используйте
disklabel(8), чтобы создать
раздел RAID объемом 1 МБ для ключа.
Если ваш keydisk - sd1
, а диск, который вы хотите зашифровать,
- sd0
, вывод будет выглядеть примерно так:
# bioctl -c C -k sd1a -l sd0a softraid0 sd2 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 005> SCSI2 0/direct fixed sd2: 19445MB, 512 bytes/sector, 39824607 sectors softraid0: CRYPTO volume attached as sd2Вам не будет предложено ввести passphrase, потому что вместо этого вы использовали keydisk. Keydisk должен быть вставлен во время загрузки.
Вы можете создать backup и восстановить ваш keydisk при помощи dd(1):
# dd bs=8192 skip=1 if=/dev/rsd1a of=backup-keydisk.img # dd bs=8192 seek=1 if=backup-keydisk.img of=/dev/rsd1a
sd3
- USB-накопитель.
# dd if=/dev/urandom of=/dev/rsd3c bs=1m # fdisk -iy sd3 # disklabel -E sd3 # make an "a" partition of type RAID # bioctl -c C -l sd3a softraid0 New passphrase: Re-type passphrase: softraid0: CRYPTO volume attached as sd4 # dd if=/dev/zero of=/dev/rsd4c bs=1m count=1 # fdisk -iy sd4 # disklabel -E sd4 # make an "i" partition # newfs sd4i # mkdir -p /mnt/secretstuff # mount /dev/sd4i /mnt/secretstuff # mv somefile /mnt/secretstuff/ # umount /mnt/secretstuff # bioctl -d sd4Та же программа bioctl(8), использованная для создания тома, может быть использована для его подключения позже.