Pourquoi la tranche C ou la tranche 2 couvre-t-elle l'intégralité du disque


14

Quelque chose que je discutais avec quelques amis et nous n'avons pas pu le comprendre. Dans FreeBSD et OpenSolaris / Solaris lorsque vous partitionnez un lecteur, une partition est créée qui couvre tout le disque:

da0s1c
c0d0s2

Par exemple, la sortie de mon disque dur principal sur mon serveur OpenSolaris:

xistence@Keyhole.network.lan:/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

Quel était le raisonnement derrière l'utilisation de la partition 2? Pourquoi ne pas partitionner 0? Où dans l'histoire d'Unix cela a-t-il été décidé? Quelle fonction héritée a-t-elle utilisée à ce moment-là? Avec le partitionnement GPT qui disparaît complètement (de ce que j'ai trouvé).

Juste quelque chose d'intéressant ...

Étant donné que ParoX a mentionné le partitionnement de style GPT et comment Solaris représente cela en termes de disposition de Vtoc, voici la sortie de l'un de mes disques qui est de 1 To et se trouve dans un tableau ZFS, et a été automatiquement configurée avec GPT:

xistence@Keyhole.network.lan:~# 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

Je n'y ai jamais vraiment pensé autant, mais c'est fascinant maintenant que vous m'y avez fait réfléchir. Curieux de voir si quelqu'un répond.
Milner

hmmm. Je sais que dans Solaris, on l'appelait la tranche de "sauvegarde". Je me demande si c'était un moyen de sauvegarder l'intégralité du disque, y compris la carte de partition, en un seul vidage? Par exemple, vider / dev / rdsk / c0t0d0s2 dans un fichier de bande et vous pourriez récupérer l'intégralité du lecteur physique, y compris la disposition FS, en une seule restauration? Juste une supposition. Impossible de trouver quoi que ce soit de plus dans Google. Bonne question!
jj33

@ jj33: Bien sûr, pourquoi acheter la tranche 2 ? Pourquoi pas 0 ou -1 ou une autre valeur distinctive?
Eddie

Réponses:


7

Dans le passé, nous faisions des sauvegardes en utilisant "dd" de tout le disque. Par conséquent, nous avions la tranche "c" afin que nous puissions tout faire avec une seule commande.

C'est pourquoi la tranche "c" existe.

DD n'est pas parfait. Si un disque n'est rempli qu'à 10%, vous passez 90% de votre temps à copier des blocs qui sont "indésirables" ou (par exemple) sont utilisés pour le "swap" (inutile d'être sauvegardé). "dd" est une perte de temps, sauf si votre disque est presque plein ou si, pour une raison quelconque, vous avez besoin d'une copie exacte, bloc par bloc.

Tout cela avant que la mise en miroir des disques RAID-0 et les gestionnaires de volumes n'effectuent tout ce type de copie de partition pour vous.

(Quelqu'un a mentionné "dump" sur la tranche "c". Cela ne fonctionnera pas. "Dump" est une copie fichier par fichier [en fait, inode par inode] donc cela ne fonctionnera pas.)

Quelqu'un d'autre a demandé "pourquoi est-ce c, pas la première partition ou la dernière". La réponse est "tradition". Je peux seulement deviner que Ken ou Dennis (ou peut-être Bill Joy ou Kirk McKusick) avaient une bonne raison à l'époque. Je suppose qu'ils avaient utilisé les deux premières étiquettes de partition pour les partitions réelles. Puis un jour, quelqu'un a eu l'idée de la partition de chevauchement pour faire des sauvegardes et "c" était la prochaine partition disponible. Puisqu'il n'y avait que 2 ou 3 machines Unix à l'époque, le faire deux fois peut "définir la norme" qui sera utilisée pour le reste du temps.

Un autre exemple de la façon dont les accidents historiques deviennent des normes qui ne disparaissent jamais est décrit dans cet article: Comprendre la répartition bin, sbin, usr / bin, usr / sbin


Oui, mais pourquoi c et pas a ?
Cristian Ciupitu le

1
Pourquoi cette lettre a-t-elle été choisie? Je ne sais pas. Soit Ritchie, Thompson, soit Bill Joy pourrait répondre à cela. Je suppose qu'ils ont utilisé 0, puis 1, puis quelqu'un a cette brillante idée d'une étiquette de partition qui se chevauchent. L'emplacement suivant était disponible, et beaucoup plus sûr que de déplacer des partitions. Rappelez-vous ... c'était quand des universités entières avaient 1 ou 2 ordinateurs. Vous avez rarement apporté de modifications majeures au système. Ce n'était pas comme aujourd'hui où si vous apportiez un changement comme celui-ci, vous réinventeriez librement vos machines. Avec 50 personnes partageant toutes un ordinateur, les mises à niveau attendent que tout le monde soit prêt.
TomOnTime

4

C'est le résultat des tranches traditionnellement disposées comme suit:

s0: root
s1: swap
s2: bkup

Ils ont attribué la chose la plus importante à la première tranche et ont continué avec une importance décroissante :) (Qui a besoin de swap si vous n'avez pas de partition racine? De plus, qui a besoin de sauvegarder quoi que ce soit si vous n'avez pas de données.)

Je ne sais pas exactement quand cela a été décidé (probablement assez tôt; chaque fois que les développeurs Solaris ont décidé d'utiliser des identificateurs et des tranches de disque de style Solaris.)

Le problème disparaît avec GPT car le schéma de partition de style MBR n'est pas applicable. (Bien que je ne sache pas personnellement comment Solaris représente les partitions GPT ...)

J'espère que cela a aidé XD


================
Edit:
Maintenant, vous m'avez intéressé. Je posterai quelques liens que j'ai trouvés juste avant de partir travailler.

Guide de réponse de Solaris 2.4 Sysadmin: tranches personnalisées
Guide de l'utilisateur de Solaris 2.4: administration périphérique

Ces deux documents datent de 1994 environ et ils définissent la création de s2 comme étant intégrée au «format» même à cette époque. Je dois continuer à creuser XD!


Cela aide, mais ce n'est toujours pas la réponse concrète que je cherchais :-) Je connaissais déjà les raisons possibles et la disposition des tranches par défaut. Je voudrais des preuves ou des preuves solides!
X-Istence

Heureux d'entraîner quelqu'un d'autre dans la folie qu'est cette question :-).
X-Istence,

Ok ... Le concept de tranches semble avoir son origine quelque part autour des versions de BSD 4.2 et Unix System V.4 (1984-1989) ... Il est temps de lancer la bibliothèque>. <(Il n'y avait pas beaucoup de connexion Internet à ce moment pour des raisons évidentes.)
ParoX

docsrv.sco.com/cgi-bin/man/man?vtoc+7 Apparemment, UnixWare utilise s0 comme partition entière avec s1 et s2 comme root et swap respectivement. Intéressant ...
ParoX

1
Je réduis cela à l'introduction d'UFS en 1982 dans l'arbre BSD. Je suis maintenant assez confiant que SVR a emprunté le concept à BSD dans sa version 4.2 (après avoir fouillé dans une tonne de références de vieux programmeurs.) Je
relancerai

1

Plus d'informations sur cette question:

Selon http://en.wikipedia.org/wiki/BSD_disklabel sur FreeBSD, la partition c sur un disque qui est également utilisé par d'autres systèmes d'exploitation ne s'étendra qu'à l'ensemble de la tranche FreeBSD, et la partition d serait l'ensemble du disque dur !

La partition c adresse le disque entier en mode dédié, ou la tranche FreeBSD entière en mode tranche. Les autres partitions sont à usage général.

Ajout manuel de disque FreeBSD voir 18.3.1 numéro 3.


0

Pourquoi scsi id 3 était-il votre disque de démarrage par défaut dans le système d'exploitation Sun vintage?

Tous ces moments seront perdus dans le temps, comme des larmes sous la pluie.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.