Trabalhando com partições no OpenBSD 5.2

E ai galera, vou abordar aqui como trabalhar com partições no OpenBSD 5.2, pois achei a maioria das documentações que achei incompletas.

O que vou utilizar.

  1. Disco 40GB
  2. Partições:
    1. /dev/wd1a montando em /a
    2. /dev/wd1d montando em /d
    3. /dev/wd1e montando em /e
    4. /dev/wd1f montando em /f
    5. /dev/wd1h montando em /h

Considerações:

  1. A partição a geralmente é a raiz
  2. A partição b geralmente é o swap
  3. A partição c é o tamanho total do disco
  4. Podemos utilizar da partição d até a p para outras partições, podemos pular letras ex utilizar a,d,e,f,h é o que vamos utilizar

Insira o novo disco no OpenBSD vamos levar em consideração que é uma controladora IDE ele vai ser um wd1, se for um SCSI ele vai ser um rsd1 ou se for um sata ele vai ser um sd1

Vamos entrar na configuração do nosso disco

fdisk -e wd1
Enter 'help' for information
fdisk: 1> 

Aqui temos o fdisk, temos o 1> é que estamos no primeiro nível do disco ou seja não temos nada ainda no disco.

Vamos listar o que temos em nosso disco.

fdisk: 1> p
Disk: wd1       geometry: 5221/255/63 [83886080 Sectors]
Offset: 0       Signature: 0x0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
fdisk: 1> 

Como não temos nada ainda em nosso disco vamos marcar o disco todo para o uso do OpenBSD

fdisk: 1> e 3
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
Partition id ('0' to disable) [0 - FF]: [0] (? for help)

Agora precisamos informar o tipo de nossa partição vamos mandar listar digitando ?

Partition id ('0' to disable) [0 - FF]: [0] (? for help) ?
Choose from the following Partition id values:
00 unused         20 Willowsoft     66 NetWare 386    A9 NetBSD      
01 DOS FAT-12     24 NEC DOS        67 Novell         AB MacOS X boot
02 XENIX /        27 Win Recovery   68 Novell         AF MacOS X HFS+
03 XENIX /usr     38 Theos          69 Novell         B7 BSDI filesy*
04 DOS FAT-16     39 Plan 9         70 DiskSecure     B8 BSDI swap   
05 Extended DOS   40 VENIX 286      75 PCIX           BF Solaris     
06 DOS > 32MB     41 Lin/Minux DR   80 Minix (old)    C0 CTOS        
07 NTFS           42 LinuxSwap DR   81 Minix (new)    C1 DRDOSs FAT12
08 AIX fs         43 Linux DR       82 Linux swap     C4 DRDOSs < 32M
09 AIX/Coherent   4D QNX 4.2 Pri    83 Linux files*   C6 DRDOSs >=32M
0A OS/2 Bootmgr   4E QNX 4.2 Sec    84 OS/2 hidden    C7 HPFS Disbled
0B Win95 FAT-32   4F QNX 4.2 Ter    85 Linux ext.     DB CPM/C.DOS/C*
0C Win95 FAT32L   50 DM             86 NT FAT VS      DE Dell Maint  
0E DOS FAT-16     51 DM             87 NTFS VS        E1 SpeedStor   
0F Extended LBA   52 CP/M or SysV   8E Linux LVM      E3 SpeedStor   
10 OPUS           53 DM             93 Amoeba FS      E4 SpeedStor   
11 OS/2 hidden    54 Ontrack        94 Amoeba BBT     EB BeOS/i386   
12 Compaq Diag.   55 EZ-Drive       99 Mylex          EE EFI GPT     
14 OS/2 hidden    56 Golden Bow     9F BSDI           EF EFI Sys     
16 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor   
17 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec
18 AST swap       63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor   
19 Willowtech     64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT   
1C ThinkPad Rec   65 NetWare 3.xx   A8 MacOS X     

Precisamos marcar o nosso espaço do OpenBSD com a6

Partition id ('0' to disable) [0 - FF]: [0] (? for help) a6

Agora temos a opção de especificar o espaço utilizar em Cilindros, Cabeças e Setores (CHS - “Cylinders, Heads and Sectors”) aqui vamos somente pressionar ENTER

Do you wish to edit in CHS mode? [n] 

Agora precisamos informar o offset da partição, as plataformas que utilizam o fdisk precisam da distância de uma trilha (“track”) antes da primeira partição. Uma trilha é um número de setores de “setores por trilha”, o último número dos números da mensagem “geometry:”. É fácil criar o hábito de especificar “63” aqui, já que esse é um valor comum em discos IDE e SATA modernos, mas nem todos os discos usam isso como o tamanho de uma trilha, as exceções modernas mais comuns a isso são os discos SCSI e Flash.

Vamos então informar o valor 63

Partition offset: [0] 63

Agora precisamos informar o tamanho de nossa partição vamos informar * para ele utilizar o disco todo

Partition size: [0] *
fdisk:*1> 

Agora o nosso fdisk tem um *1> que indica que ainda não foi gravado no disco, antes de gravar vamos listar o nosso disco

fdisk:*1> p
Disk: wd1       geometry: 5221/255/63 [83886080 Sectors]
Offset: 0       Signature: 0x0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 3: A6      0   1   1 -   5221 170   5 [          63:    83886017 ] OpenBSD     
fdisk:*1> 

Agora precisamos mandar dar um update no disco para ele gerar a assinatura do nosso disco

fdisk: 1> update
Machine code updated.

Agora vamos digitar quit para sair e gravar

fdisk:*1> quit
Writing MBR at offset 0.

Agora vamos listar o nosso disco novamente

fdisk wd1
Disk: wd1     geometry: 5221/255/63 [83886080 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 3: A6      0   1   1 -   5221 170   5 [          63:    83886017 ] OpenBS

Como podemos notar esta como configuramos iniciando no offset 63.

Agora precisamos criar as nossas partições, para isso vamos utilizar o disklabel

disklabel -E wd1
Label editor (enter '?' for help at any prompt)
> 

Para obtermos ajuda aqui precisamos pressionar ?

> ?
Available commands:
 ? | h    - show help                 n [part] - set mount point
 A        - auto partition all space  p [unit] - print partitions
 a [part] - add partition             q        - quit & save changes
 b        - set OpenBSD boundaries    R [part] - resize auto allocated partition
 c [part] - change partition size     r        - display free space
 D        - reset label to default    s [path] - save label to file
 d [part] - delete partition          U        - undo all changes
 e        - edit drive parameters     u        - undo last change
 g [d|u]  - [d]isk or [u]ser geometry w        - write label to disk
 i        - modify disklabel UID      X        - toggle expert mode
 l [unit] - print disk label header   x        - exit & lose changes
 M        - disklabel(8) man page     z        - delete all partitions
 m [part] - modify partition

Suffixes can be used to indicate units other than sectors:
 'b' (bytes), 'k' (kilobytes), 'm' (megabytes), 'g' (gigabytes) 't' (terabytes)
 'c' (cylinders), '%' (% of total disk), '&' (% of free space).
Values in non-sector units are truncated to the nearest cylinder boundary.
> 

Agora já temos os comandos de operação do disklabel vamos criar as nossas partições para podermos criar o sistema de arquivos

Vamos criar a nossa partição wd1a com 5g

> a a
offset: [63] 63 #Caso o offset venha como 0 force informando 63 caso ele já venha como 63 so precisamos pressionar ENTER
size: [83886017] 5g #Aqui vamos informar o tamanho da nossa partição
Rounding size to cylinder (16065 sectors): 10490382
FS type: [4.2BSD] #Aqui somente precisamos informar ENTER pois vamos utilizar o sistema de arquivos padrão
Rounding offset to bsize (32 sectors): 64
Rounding size to bsize (32 sectors): 10490368

Agora vamos mandar listar as partições

> p m
OpenBSD area: 0-83886080; size: 40960.0M; free: 35837.8M
#                size           offset  fstype [fsize bsize  cpg]
  a:          5122.2M               64  4.2BSD   2048 16384    1 
  c:         40960.0M                0  unused               

Aqui eu utilizei o p com a opção m para especificar o tamanho em mega por padrão ele mostra em bytes

Agora vamos criar a nossa partição d

> a d
offset: [10490432] #Aqui vamos deixar o offset padrão então é só pressionar ENTER
size: [73395648] 5g #Aqui vamos informar o tamanho da nossa partição 
Rounding size to cylinder (16065 sectors): 10474393
FS type: [4.2BSD] #Aqui somente precisamos informar ENTER pois vamos utilizar o sistema de arquivos padrão
Rounding size to bsize (32 sectors): 10474368

Agora vamos listar as nossas partições novamente

> p g
OpenBSD area: 0-83886080; size: 40.0G; free: 30.0G
#                size           offset  fstype [fsize bsize  cpg]
  a:             5.0G               64  4.2BSD   2048 16384    1 
  c:            40.0G                0  unused                   
  d:             5.0G         10490432  4.2BSD   2048 16384    1 

Agora vamos criar a partição e da mesma forma que a e

> a e
offset: [20964800] #Aqui vamos deixar o offset padrão então é só pressionar ENTER
size: [62921280] 5g #Aqui vamos informar o tamanho da nossa partição 
Rounding size to cylinder (16065 sectors): 10474405
FS type: [4.2BSD] #Aqui somente precisamos informar ENTER pois vamos utilizar o sistema de arquivos padrão
Rounding size to bsize (32 sectors): 10474400

Agora vamos listar as nossas partições novamente

> p g
OpenBSD area: 63-83886080; size: 40.0G; free: 25.0G
#                size           offset  fstype [fsize bsize  cpg]
  a:             5.0G               63  4.2BSD   2048 16384    1 
  c:            40.0G                0  unused                   
  d:             5.0G         10490432  4.2BSD   2048 16384    1 
  e:             5.0G         20964800  4.2BSD   2048 16384    1

Agora vamos criar a partição f da mesma forma que a f

> a f
offset: [31439200]  #Aqui vamos deixar o offset padrão então é só pressionar ENTER
size: [52446880] 5g #Aqui vamos informar o tamanho da nossa partição 
Rounding size to cylinder (16065 sectors): 10474385
FS type: [4.2BSD] #Aqui somente precisamos informar ENTER pois vamos utilizar o sistema de arquivos padrão
Rounding size to bsize (32 sectors): 10474368

Agora vamos listar as nossas partições novamente

> p g
OpenBSD area: 63-83886080; size: 40.0G; free: 20.0G
#                size           offset  fstype [fsize bsize  cpg]
  a:             5.0G               63  4.2BSD   2048 16384    1 
  c:            40.0G                0  unused                   
  d:             5.0G         10490432  4.2BSD   2048 16384    1 
  e:             5.0G         20964800  4.2BSD   2048 16384    1 
  f:             5.0G         31439200  4.2BSD   2048 16384    1 

Agora vamos criar a partição h como o resto do tamanho do disco

> a h
offset: [41913568] #Utilizar o padrão
size: [41972512] #Utilizar o padrão
FS type: [4.2BSD] #utilizar o padrão

Agora vamos listar as partições

> p g
OpenBSD area: 63-83886080; size: 40.0G; free: 0.0G
#                size           offset  fstype [fsize bsize  cpg]
  a:             5.0G               63  4.2BSD   2048 16384    1 
  c:            40.0G                0  unused                   
  d:             5.0G         10490432  4.2BSD   2048 16384    1 
  e:             5.0G         20964800  4.2BSD   2048 16384    1 
  f:             5.0G         31439200  4.2BSD   2048 16384    1 
  h:            20.0G         41913568  4.2BSD   2048 16384    1 

Agora vamos sair do disklabel e vamos salvar as nossas alterações

> q
Write new label?: [y] y

Agora vamos listar as nossas partições

disklabel wd1
# /dev/rwd1c:
type: ESDI
disk: ESDI/IDE disk
label: VBOX HARDDISK   
duid: 06dba720e5855af2
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 5221
total sectors: 83886080
boundstart: 63
boundend: 83886080
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:         10490369               63  4.2BSD   2048 16384    1 
  c:         83886080                0  unused                   
  d:         10474368         10490432  4.2BSD   2048 16384    1 
  e:         10474400         20964800  4.2BSD   2048 16384    1 
  f:         10474368         31439200  4.2BSD   2048 16384    1 
  h:         41972512         41913568  4.2BSD   2048 16384    1 

Note que aqui temos duid: 06dba720e5855af2 que é a identificação da disco como o uuid do GNU/Linux para partições, quando formos editar o /etc/fstab podemos utilizar /dev/wd1a ou 06dba720e5855af2.a para a partição a

Agora vamos criar os sistemas de arquivos para as nossas partições vamos criar o sistema primeiro para a partição a

newfs wd1a
/dev/rwd1a: 5122.2MB in 10490368 sectors of 512 bytes
26 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280, 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776, 10366432,

Agora vamos criar o sistema de arquivos para a partição d

newfs wd1d
/dev/rwd1d: 5114.4MB in 10474368 sectors of 512 bytes
26 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280, 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776, 10366432,

Agora vamos criar o sistema de arquivos para a partição e

newfs wd1e
/dev/rwd1e: 5114.5MB in 10474400 sectors of 512 bytes
26 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280, 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776, 10366432,

Agora vamos criar o sistema de arquivos para a partição f

newfs wd1f
/dev/rwd1f: 5114.4MB in 10474368 sectors of 512 bytes
26 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280, 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776, 10366432,

Agora vamos criar o sistema de arquivos para a partição h

newfs wd1h
/dev/rwd1h: 20494.4MB in 41972512 sectors of 512 bytes
102 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280, 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776, 10366432, 10781088, 11195744, 11610400, 12025056, 12439712, 12854368,
 13269024, 13683680, 14098336, 14512992, 14927648, 15342304, 15756960, 16171616, 16586272, 17000928, 17415584, 17830240, 18244896, 18659552,
 19074208, 19488864, 19903520, 20318176, 20732832, 21147488, 21562144, 21976800, 22391456, 22806112, 23220768, 23635424, 24050080, 24464736,
 24879392, 25294048, 25708704, 26123360, 26538016, 26952672, 27367328, 27781984, 28196640, 28611296, 29025952, 29440608, 29855264, 30269920,
 30684576, 31099232, 31513888, 31928544, 32343200, 32757856, 33172512, 33587168, 34001824, 34416480, 34831136, 35245792, 35660448, 36075104,
 36489760, 36904416, 37319072, 37733728, 38148384, 38563040, 38977696, 39392352, 39807008, 40221664, 40636320, 41050976, 41465632, 41880288,

Agora vamos criar os diretório para montarmos as novas partições

mkdir /a
mkdir /d
mkdir /e
mkdir /f
mkdir /h

Agora vamos obter o duid do nosso disco para inserirmos no /etc/fstab para as nossas partições serem montadas na inicialização do sistema

disklabel wd1
# /dev/rwd1c:
type: ESDI
disk: ESDI/IDE disk
label: VBOX HARDDISK   
duid: 06dba720e5855af2
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 5221
total sectors: 83886080
boundstart: 63
boundend: 83886080
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:         10490369               63  4.2BSD   2048 16384    1 
  c:         83886080                0  unused                   
  d:         10474368         10490432  4.2BSD   2048 16384    1 
  e:         10474400         20964800  4.2BSD   2048 16384    1 
  f:         10474368         31439200  4.2BSD   2048 16384    1 
  h:         41972512         41913568  4.2BSD   2048 16384    1

O nosso duid é 06dba720e5855af2 com isso já podemos configurar o /etc/fstab, as nossas partições vão ser informadas como 06dba720e5855af2.a para a partição a, 06dba720e5855af2.d para a partição d e assim por diante.

vim /etc/fstab
[...]
06dba720e5855af2.a /a   ffs rw,nodev,nosuid 1 2
06dba720e5855af2.d /d   ffs rw,nodev,nosuid 1 2
06dba720e5855af2.e /e   ffs rw,nodev,nosuid 1 2
06dba720e5855af2.f /f   ffs rw,nodev,nosuid 1 2
06dba720e5855af2.h /h   ffs rw,nodev,nosuid 1 2

Agora vamos mandar montar as novas partições

mount -a

Agora vamos mandar listar elas

df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a      731M   59.1M    635M     9%    /
/dev/wd0k      6.7G    2.0K    6.4G     0%    /home
/dev/wd0d      1.1G    4.0K    1.1G     0%    /tmp
/dev/wd0f      1.5G    799M    664M    55%    /usr
/dev/wd0g      895M    2.0K    850M     0%    /usr/X11R6
/dev/wd0h      3.2G   78.1M    3.0G     2%    /usr/local
/dev/wd0j      1.8G    1.1G    572M    67%    /usr/obj
/dev/wd0i      1.2G    870M    335M    72%    /usr/src
/dev/wd0e      1.7G    8.0M    1.6G     0%    /var
/dev/wd1a      4.9G    2.0K    4.7G     0%    /a
/dev/wd1d      4.9G    2.0K    4.7G     0%    /d
/dev/wd1e      4.9G    2.0K    4.7G     0%    /e
/dev/wd1f      4.9G    2.0K    4.7G     0%    /f
/dev/wd1h     19.7G    2.0K   18.7G     0%    /h

Como pode ser notado estão montadas e funcionando, se quiser testar reiniciar o servidor para listar as partições

reboot

Agora vamos ver o uptime da máquina

uptime
3:50PM  39 secs, 1 user, load averages: 0.15, 0.04, 0.01

Faz 39 segundos que a máquina esta up, vamos mandar listar as partições

df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a      731M   59.1M    635M     9%    /
/dev/wd0k      6.7G    2.0K    6.4G     0%    /home
/dev/wd0d      1.1G    4.0K    1.1G     0%    /tmp
/dev/wd0f      1.5G    799M    664M    55%    /usr
/dev/wd0g      895M    2.0K    850M     0%    /usr/X11R6
/dev/wd0h      3.2G   78.1M    3.0G     2%    /usr/local
/dev/wd0j      1.8G    1.1G    572M    67%    /usr/obj
/dev/wd0i      1.2G    870M    335M    72%    /usr/src
/dev/wd0e      1.7G    8.1M    1.6G     0%    /var
/dev/wd1a      4.9G    2.0K    4.7G     0%    /a
/dev/wd1d      4.9G    2.0K    4.7G     0%    /d
/dev/wd1e      4.9G    2.0K    4.7G     0%    /e
/dev/wd1f      4.9G    2.0K    4.7G     0%    /f
/dev/wd1h     19.7G    2.0K   18.7G     0%    /h

Como pode ser notado está tudo funcionando.

Referências

  1. man 8 fdisk
  2. man 8 disklabel