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? Que recurso herdado serviu naquele momento? Com o particionamento GPT que desaparece completamente (pelo que eu encontrei).

Apenas algo interessante ...

Desde que o ParoX mencionou o particionamento no 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 em uma matriz ZFS, e foi configurado 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
X-Istence
fonte
Nunca pensei muito sobre isso, mas é intrigante agora que você me fez pensar sobre isso. Curioso para ver se alguém responde.
251 Milner
hmmm. Eu sei que no Solaris isso foi chamado de fatia de "backup". Gostaria de saber se era uma maneira de fazer backup de todo o disco, incluindo o mapa de partição, em um despejo? Como, despejar / dev / rdsk / c0t0d0s2 em um arquivo de fita e você poderá recuperar toda a unidade física, incluindo o layout FS, em uma restauração? Apenas um palpite. Não foi possível encontrar mais nada no google. Boa pergunta!
Jj33
@ jj33: Claro, compre por que cortar 2 ? Por que não 0 ou -1 ou algum outro valor distintivo?
Eddie

Respostas:

7

Antigamente, realizávamos 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 "troca" (inútil para fazer backup). "dd" é uma perda de tempo, a menos que seu disco esteja quase cheio ou se, por algum motivo, você precisar de uma cópia exata, bloco a bloco.

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

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

Alguém mais perguntou "por que é c, não a primeira partição ou a última". A resposta é "tradição". Só posso supor que Ken ou Dennis (ou possivelmente Bill Joy ou Kirk McKusick) tivessem um bom motivo na época. Suponho que eles usaram os dois primeiros rótulos de partição para partições reais. Então, um dia, alguém teve a idéia da partição de sobreposição para fazer backups e "c" foi a próxima partição disponível. Como havia apenas 2-3 máquinas Unix na época, fazer isso duas vezes pode "definir o padrão" usado pelo resto do tempo.

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

TomOnTime
fonte
Sim, mas por que c e não a ?
Cristian Ciupitu 02/09/09
1
Por que essa carta foi escolhida? Eu não sei. Ritchie, Thompson ou talvez Bill Joy poderiam responder a isso. Meu palpite é que eles usaram 0, depois 1, então alguém tem essa ideia brilhante de um rótulo de partição sobreposto. O próximo slot estava disponível, e muito mais seguro do que mover partições. Lembre-se ... foi quando universidades inteiras tinham 1 ou 2 computadores. Você fazia alterações importantes no sistema raramente. Não era como hoje, se você estivesse fazendo uma alteração como essa, repensaria livremente suas máquinas. Com 50 pessoas compartilhando um computador, as atualizações aguardam até que todos estejam prontos.
TomOnTime 25/09/09
4

É o resultado das fatias tradicionalmente serem dispostas da seguinte maneira:

s0: raiz
s1: troca
s2: bkup

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

Não sei quando exatamente isso foi decidido (provavelmente bem cedo; sempre que os desenvolvedores do Solaris decidissem usar identificadores e fatias de disco no estilo Solaris).

O problema desaparece com o GPT, pois o esquema de partição no estilo MBR não é aplicável. (Embora eu pessoalmente não conheça como o Solaris representa partições GPT ...)

Espero que isso tenha ajudado XD


================
Editar:
Agora você me interessou. Vou postar alguns links que encontrei antes de começar a trabalhar.

Livro de respostas do Solaris 2.4 Sysadmin: Fatias habituais
Guia do usuário do Solaris 2.4: Administração de periféricos

Ambos os documentos estão por volta de 1994 e definem a criação do s2 como integrada no 'formato' mesmo assim. Tenho que continuar cavando XD!

ParoX
fonte
Ajuda, mas ainda não é a resposta concreta que eu estava procurando :-) Eu já sabia os possíveis motivos do motivo e o layout de fatia padrão. Eu gostaria de evidências ou provas sólidas!
X-Istence
Feliz em arrastar alguém para a loucura que é essa pergunta :-).
X-Istence
Ok ... O conceito de fatias parece ter se originado em algum lugar nos lançamentos do BSD 4.2 e do Unix System V.4 (1984-1989) ... Hora de acessar a biblioteca>. <(Não havia muito registro na Internet nesse momento, por razões óbvias).
Parox
docsrv.sco.com/cgi-bin/man/man?vtoc+7 Aparentemente, o UnixWare usa s0 como a partição inteira, com s1 e s2 como root e swap, respectivamente. Interessante ...
Parox
1
Estou restringindo isso à introdução do UFS em 1982 na árvore do BSD. Agora estou bastante confiante de que SVR emprestado o conceito de BSD em sua 4.2 liberação Eu vou bater a biblioteca novamente amanhã lol (depois de vasculhar uma tonelada de referências do antigo programador.)
Parox
1

Mais informações sobre esta questão:

De acordo com http://en.wikipedia.org/wiki/BSD_disklabel no FreeBSD, a partição c em um disco que também está em uso por outros sistemas operacionais se estenderá apenas para toda a fatia do FreeBSD, e a partição d seria o disco rígido inteiro !

A partição c endereça todo o disco no modo dedicado ou toda a fatia do FreeBSD no modo de fatia. As outras partições são para uso geral.

Adicionando Disco Manual ao FreeBSD veja 18.3.1 número 3.

X-Istence
fonte
0

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

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

Ronald Pottol
fonte