Por que a fatia C ou a fatia 2 cobrem todo o disco?

14

Algo que eu estava discutindo com alguns amigos e não conseguimos descobrir. No FreeBSD e no OpenSolaris / Solaris, quando você particiona uma unidade, é criada uma partição que cobre todo o disco:

da0s1c
c0d0s2

Por exemplo, a saída do meu disco rígido principal no meu servidor OpenSolaris:

[email protected]:/dev/rdsk# prtvtoc /dev/rdsk/c4d0s2
* /dev/rdsk/c4d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*    7296 cylinders
*    7294 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*           0     16065     16064
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      16065 117145980 117162044
       2      5    01          0 117178110 117178109
       8      1    01          0     16065     16064

Qual foi o raciocínio por trás do uso da partição 2? Por que não particionar 0? Onde na história do unix isso foi decidido? Qual recurso legado ele serviu naquele momento? Com o particionamento GPT que desaparece completamente (do que eu encontrei).

Apenas algo interessante ...

Desde ParoX mencionou o particionamento de estilo GPT e como o Solaris representa isso em termos de layout vtoc, aqui está a saída de um dos meus discos com 1 TB e está em um array ZFS e foi configurada automaticamente com o GPT :

[email protected]:~# prtvtoc /dev/rdsk/c5d0
* /dev/rdsk/c5d0 partition map
*
* Dimensions:
*     512 bytes/sector
* 1953520128 sectors
* 1953520061 accessible sectors
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*          34       222       255
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      4    00        256 1953503455 1953503710
       8     11    00  1953503711     16384 1953520094
    
por X-Istence 06.05.2009 / 02:25

4 respostas

7

Nos velhos tempos faríamos backups usando "dd" de todo o disco. Portanto, tivemos a fatia "c" para que pudéssemos fazer tudo com um comando.

É por isso que a fatia "c" existe.

DD não é perfeito. Se um disco estiver apenas 10% cheio, você gasta 90% do seu tempo copiando blocos que são "lixo" ou (por exemplo) são usados para "trocar" (inútil para fazer o backup). "dd" é uma perda de tempo, a menos que seu disco esteja quase cheio ou, por algum motivo, você precise de uma cópia exata, bloco a bloco.

Isso foi tudo antes que o espelhamento de disco RAID-0 e os gerenciadores de volume fizessem todo esse tipo de cópia de partição para você.

(Alguém mencionou "dump" na fatia "c". Isso não funcionará. "dump" é uma cópia arquivo por arquivo [na verdade, inode por inode] para que não funcione.)

Alguém perguntou "por que é c, não a primeira partição ou a última". A resposta é "tradição". Eu só posso imaginar que Ken ou Dennis (ou possivelmente Bill Joy ou Kirk McKusick) tinham uma boa razão na época. Eu suponho que eles usaram as duas primeiras etiquetas de partições para partições reais. Então, um dia, alguém teve a ideia da partição sobreposta para fazer backups e "c" foi a próxima partição disponível. Como havia apenas 2-3 máquinas Unix no momento, fazer isso duas vezes pode "definir o padrão" que é usado pelo resto do tempo.

Outro exemplo de como acidentes históricos se tornam padrões que nunca acontecem é descrito neste artigo: Entendimento o bin, sbin, usr / bin, divisão usr / sbin

    
por 07.05.2009 / 03:53
4

É um resultado das fatias sendo tradicionalmente apresentadas da seguinte forma:

s0: root
s1: swap
s2: bkup

Eles atribuíram a coisa mais importante à primeira fatia e continuaram com importância decrescente :) (Quem precisa de swap se você não tiver uma partição raiz? Além disso, quem precisa fazer backup de qualquer coisa se você não tiver dados.)

Eu não sei exatamente quando isso foi decidido (provavelmente bem no início; sempre que os desenvolvedores do Solaris decidiram usar identificadores de disco e fatias do estilo Solaris.)

O problema desaparece com o GPT, já que o esquema de partição de estilo MBR não é aplicável. (Embora eu pessoalmente não esteja familiarizado com a forma como o Solaris representa partições GPT ...)

Espero que isso ajude XD


================
Editar:
Agora você me interessou. Vou postar alguns links que encontrei antes de ir para o trabalho.

Livro de respostas do Solaris 2.4 Sysadmin: Fatias costumeiras Guia do Usuário do Solaris 2.4 : Administração periférica

Ambos os documentos são por volta de 1994 e eles definem a criação de s2 como integrada ao 'formato' mesmo então. Tenho que continuar cavando XD!

    
por 06.05.2009 / 05:35
1

Mais informações sobre esta questão:

De acordo com o link no FreeBSD, a partição c de um disco que também está sendo usado por outros sistemas operacionais só vai estender em todo o slice do FreeBSD, e a partição d seria o disco rígido inteiro!

The c partition addresses the entire disk in dedicated mode, or the entire FreeBSD slice in slice mode. The other partitions are for general use.

Adicionar disco manual do FreeBSD ver 18.3.1 número 3.

    
por 07.05.2009 / 00:38
0

Por que o scsi id 3 era seu disco de inicialização padrão no Sun OS antigo?

Todos esses momentos serão perdidos no tempo, como lágrimas na chuva.

    
por 08.06.2009 / 05:48