Por que particionar discos?

6

Eu li muitas vezes que é importante particionar discos em partições menores, e isso é especialmente verdadeiro para discos raiz ou do SO, mas nunca consegui encontrar uma boa razão para isso. Uma desculpa comumente dada é que ela melhora a segurança dos dados: se seu disco é dividido em partições de sistema operacional (por exemplo, /, / usr, / usr / local, / home, etc, ou no Windows C: (OS), D: ( dados)) e um falhar, apenas essa informação é perdida, e você pode reinstalar o sistema operacional ou restaurar os dados de backup sem danificar as outras informações. A maioria de nós (bem, muitos de nós) (bem, alguns de nós) usam SSDs para o sistema operacional e um disco rígido para nossos dados, e todos nós (provavelmente) só particionamos cada um em uma única partição, então esse argumento parece ilusório ou, na melhor das hipóteses, primitivo. Mesmo que não usemos SSDs, os HDDs são tão baratos que usar duas unidades separadas é bastante razoável, então, na maior parte dos casos, nossos discos só têm uma única partição neles.

O que me leva ao ponto do post: por que discos de partição, mesmo em uma única partição de extensão de disco? Eu fiz alguns experimentos ultimamente e descobri que, enquanto o Windows não pode fazer nada com um disco não particionado, o Linux e alguns outros Unices (o OpenBSD não incluído) não tem nenhum problema com isso:

# mkfs.ext4 /dev/sdb
mke2fs 1.42.5 (29-Jul-2012)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
# mount /dev/sdb /mnt
# ls -l /mnt
drwx------  2 root root 16384 Dec 10 06:30 lost+found/
# mkdir /mnt/test
# ls -l /mnt
drwx------  2 root root 16384 Dec 10 16:30 lost+found
drwx------  2 root root  4096 Dec 10 16:31 test
# umount /mnt

Então, por que se incomodar?

    
por Wocky 10.12.2015 / 21:04

1 resposta

3

Segurança (ao custo de talvez mais aborrecimento administrativo se você dimensionar as coisas erradas). Da minha área de trabalho do OpenBSD:

/dev/sd0b none swap sw
/dev/sd0a / ffs rw,softdep 1 1
/dev/sd0k /home ffs rw,nodev,nosuid,softdep 1 2
/dev/sd0d /tmp ffs rw,nodev,nosuid,noexec 1 2
/dev/sd0f /usr ffs rw,nodev 1 2
/dev/sd0g /usr/X11R6 ffs rw,nodev 1 2
/dev/sd0h /usr/local ffs rw,nodev 1 2
/dev/sd0j /usr/obj ffs rw,nodev,nosuid,noatime,async 1 2
/dev/sd0i /usr/src ffs rw,nodev,nosuid,noatime,async 1 2
/dev/sd0e /var ffs rw,nodev,nosuid 1 2

Benefícios: algo preenchendo /var ou /home não causará problemas para outras partições. As partições de rascunho podem ter noatime e async definidas nelas, para melhor desempenho. As partições que não são dispositivos não permitem dispositivos, o que pode ajudar a impedir a criação de um kmem ou algum outro dispositivo desse tipo para fins indubitavelmente nefastos. Além disso, nosuid em vários sistemas de arquivos aleatórios, para eliminar aqueles que estão sendo criados, no entanto acidentalmente.

Com apenas uma partição massiva, algo pode preencher todo o disco (ah, você precisou escrever para /tmp para criar aquele ticket do kerberos para entrar? Desculpe ...), talvez crie dispositivos aleatórios e suid binários, e não há ajuste de desempenho possível nessa partição grande para diferentes necessidades.

Qual estilo faz sentido dependerá do SO, site, propósito do sistema, facilidade de gerenciamento, etc.

    
por 10.12.2015 / 22:24

Tags