Partition de disque Freebsd 10. Création d'un balisage GPT

Alexeï Fedorchuk
2004

Dans cet article, nous parlerons du partitionnement manuel des disques durs, c'est-à-dire des disques durs, sans l'aide du programme sysinstall. Ce besoin ne se présente pas très souvent, mais il se fait sentir. Et pour l'enseignement général, il est utile d'effectuer une telle opération au moins une fois dans sa vie.

Comme vous le savez, les disques sont généralement divisés en partitions (partitions en termes DOS/Windows et Linux). Mais FreeBSD a aussi une approche originale. Pour le comprendre, il faut d'abord dire

Un peu de « géométrie »

Le mot « géométrie » dans le titre de la section n’est pas placé entre guillemets par hasard. Le fait est que depuis que le volume des disques a dépassé 500 mégaoctets (une limitation de l'ancien BIOS des ordinateurs personnels, auparavant appelés compatibles IBM), l'utilisateur ne rencontre jamais leur géométrie réelle. Un logiciel intégré à l'électronique du disque (le soi-disant firmware) le transforme en une forme qui peut être perçue par le BIOS - je ne m'attarderai pas sur les détails de la manière exacte dont cela est fait en raison de l'incompétence (et il est peu probable que quelqu'un d'autre que les fabricants de disques connaissent bien ces détails).

Et la géométrie du disque disponible pour le BIOS est décrite en termes cylindre/culasse/secteur (cylindres/têtes/secteurs, C/H/S). Au sens figuré (et, je le répète, tout ce qui touche à la géométrie des disques doit désormais être compris exclusivement au sens figuré, allégorique ou métaphorique), les têtes lisent les informations des pistes magnétiques concentriques dans lesquelles chaque plateau de disque est divisé. Une collection verticale de pistes portant les mêmes numéros sur toutes les plaques qui composent le disque en tant que périphérique physique forme un cylindre. Et les secteurs découpent la plaque, ainsi que ses traces, en fragments radiaux appelés blocs. Autrement dit, on peut imaginer que le bloc se trouve à l'intersection (dans l'espace) du cylindre, de la piste et du secteur.

Le nombre de pistes et de secteurs dans les disques modernes est généralement fixe (ou plutôt apparaît comme tel dans le BIOS) : 255 pistes sont découpées en 63 secteurs chacune, ce qui donne au total 16 065 blocs par cylindre. Et le nombre de cylindres est déterminé par le volume du disque (je n'entrerai pas dans les calculs arithmétiques). La seule chose importante ici est que les têtes de disque se déplacent mécaniquement de manière synchrone le long de la surface de toutes les plaques. Autrement dit, si les informations sont lues à partir de la piste 1 sur un plateau, alors toutes les autres têtes sont déplacées vers la même piste - chacune sur son propre plateau.

Je le répète, tout cela est conditionnel - ne serait-ce que parce que la notion de cylindre au sens géométrique du terme est très difficile à appliquer aux disques modernes, souvent non seulement monoplaques, mais même, pour ainsi dire, demi-plaques ( c'est-à-dire avec un seul côté d'une seule plaque impliqué) . Mais gérer cette géométrie relève du firmware et du BIOS ; pour nous, ce sont les cylindres qui nous intéressent - l'ensemble des pistes auxquelles on accède de manière synchrone, et les blocs - le quanta minimum d'espace disque.

Les pistes qui forment les cylindres sont créées lors du marquage initial en usine du disque - ce qu'on appelle. formatage de bas niveau. D'après ce qui précède, il est évident que l'accès aux données d'un cylindre ou d'un groupe de cylindres voisins sera plus rapide qu'aux données partiellement écrites sur le premier et, disons, le dernier cylindre du disque. Ce cas n'est pas aussi improbable qu'il y paraît : sous DOS, où l'espace occupé par les fichiers effacés est marqué comme inutilisé, mais n'est en réalité écrasé que lorsque l'espace libre sur le disque est complètement épuisé, une telle situation pourrait bien se produire.

Ainsi, afin de minimiser la probabilité que les données soient distribuées sur des cylindres séparés, des partitions de disque ont été inventées (ou plutôt, dans ce but également - l'allocation de partitions de disque a de nombreux autres objectifs). Un groupe de cylindres adjacents est combiné en une seule section.

Où finit une section et où commence une autre ? Les gens raisonnables d’Odessa diraient qu’une section se termine exactement là où commence la seconde. Cependant, il est évident pour nous que pour chaque section, nous devons stocker des informations sur son début et sa fin (c'est-à-dire les numéros du premier et du dernier des cylindres impliqués). Où dois-je les stocker ? Pour répondre à cette question, il faut se tourner vers la notion de bloc.

Comme les pistes, les blocs de disque (ou physiques - il existe également des blocs logiques, mais cela s'applique aux systèmes de fichiers, dont nous parlerons plus tard) sont créés lors du formatage de bas niveau, et l'utilisateur ne peut pas (presque) les influencer. Leur taille est également toujours la même et égale à 512 octets. Ou plutôt, c'est ainsi que le BIOS de l'ordinateur personnel le voit - ce que c'est réellement, seul Allah le sait.

Cependant, le fait que l'échange de données avec un disque soit possible par tranches d'au moins 512 octets est une réalité objective, tout comme le fait que toute quantité d'informations, aussi petite soit-elle, qui y est écrite occupera un bloc entier - indépendamment de sa taille réelle. Autrement dit, les petits fichiers texte de quelques caractères (c'est-à-dire des octets) captureront toujours jusqu'à 512 octets, pas moins (en fait, même plus, mais nous y reviendrons la prochaine fois). D'un autre côté, la lecture des données par blocs de 512 octets sera plus rapide que si les données étaient lues octet par octet à chaque fois que la tête accédait au disque. Cependant, cela concerne également le thème des systèmes de fichiers.

Pour l'instant, nous nous intéressons à un seul bloc formé par le premier secteur sur la première piste du premier cylindre. Il est réservé à une zone de service du disque appelée master boot record (MBR - Master Boot Recodr), qui est lue par le BIOS au démarrage de la machine. Évidemment, pour l'usage auquel il est destiné, le MBR n'est utilisé que si le disque est défini dans la configuration du BIOS comme amorçable (ou s'il est simplement le seul du système). Cependant, l'utilisation de chaque disque spécifique étant à la discrétion de l'utilisateur, un espace lui est toujours alloué.

À l'intérieur du bloc zéro, entre autres (notamment le code de tout bootloader pouvant y être écrit), il y a certainement une section réservée. Il est destiné à la table de partition du BIOS, pour laquelle depuis des temps immémoriaux (depuis le tout premier IBM PC, semble-t-il) 64 octets ont été alloués. Cette table enregistre (ou peut enregistrer) des données sur la ou les partitions dans un format spécifique que le BIOS peut comprendre.

Et ce format fournit pour chaque section l'indication de son bloc de départ, de sa taille en octets, de l'identifiant du type de système de fichiers (ceci, contrairement au nom, n'est pas du tout le même que le système de fichiers, qui sera abordé dans la section suivante) et ( pour une seule des partitions) indicateur d'activité (c'est-à-dire marquer cette partition comme amorçable). Ce dernier est nécessaire pour certains systèmes d'exploitation de type DOS, bien que FreeBSD ou, par exemple, Linux ne se soucient pas de ce flag.

Les informations totales requises pour décrire la partition de disque sont de 16 octets. Et comme, comme on s'en souvient, seuls 64 octets sont alloués pour l'ensemble de la table de partitions, sans calculatrice, nous pouvons calculer que le nombre maximum de partitions sur un disque est de 4. Ces partitions sont dites primaires ou, pas tout à fait précisément, physiques. Puisque dans la plupart des cas, ces sections peuvent également être divisées en parties - sections logiques (qui seront discutées plus tard).

Je le répète encore une fois - cela ne s'applique qu'aux machines dotées d'un BIOS PC, c'est-à-dire aux ordinateurs personnels ordinaires. Sur toutes sortes de PowerPC, Sparcs et stations similaires, tout peut être complètement différent (même si, pour être honnête, je ne sais pas exactement comment).

Comme vous pouvez le voir, la description de la partition inclut l'identifiant du système de fichiers. Il s'agit d'un certain nombre (sous FreeBSD, généralement en notation décimale, sous Linux, par exemple, en hexadécimal), qui est défini en fonction du système de fichiers du système d'exploitation prévu pour être placé sur le disque. Ainsi, la partition destinée à FreeBSD a un identifiant de 165 (décimal) ou A5, la partition pour Linux (Linux natif) - 131 (ou 83), FAT16 - 6, la partition étendue (dite DOS Extended) - 5, et ainsi de suite.

Attribuer un identifiant à une partition ne signifie pas qu'un système de fichiers correspondant y apparaîtra comme par magie. Non, il prédétermine simplement quel type de table de partition secondaire peut y être écrit (bien que ce ne soit pas tout à fait vrai - et dans certains cas, ce n'est pas du tout vrai). Mais ici nous arrivons à la conversation

En fait, à propos des tranches

Ainsi, l'enquête a établi que jusqu'à 4 partitions (incluses) peuvent être créées sur un disque physique, chacune pouvant être attribuée à un système d'exploitation distinct. Quelle est la prochaine étape ? Et puis vous devriez étudier la question des styles de balisage de section.

Les styles de disposition des sections sont appelés Étiquette de disque, qu'il ne faut pas confondre avec les étiquettes de disque - des noms arbitraires qui peuvent être attribués à une partition de disque sous DOS (et pas seulement). Les styles de balisage sont le format de la table de partition secondaire, écrit dans le premier bloc de la partition principale. Ce tableau détermine la nature des actions disponibles sur cette partition principale.

Les utilisateurs de Windows (et, dans la plupart des cas, Linux) n'ont généralement aucune raison de réfléchir à la question des styles de balisage. Cependant, il existe de nombreux styles de ce type - pour le vérifier, il suffit d'aller dans le menu de configuration du noyau Linux, dans la sous-section Types de partitions section Systèmes de fichiers. Cependant, parmi toute cette abondance, nous ne nous intéresserons qu'à deux styles : DOS et BSD.

DOS/Windows utilise (étonnamment) le style de partitionnement DOS. Il est basé sur la table du BIOS, qui n'est que partiellement utilisée. À savoir, sur les quatre entrées disponibles dans la table de partitions, seules deux sont remplies (ou plutôt, seules deux partitions peuvent être créées à l'aide de FDISK standard à partir de DOS/Windows9X/ME ; je ne sais tout simplement pas quelle est la situation dans NT/2000/ XP).

Dans l'entrée de la première partition, vous pouvez spécifier un identifiant de type de système de fichiers (par exemple, FAT16 ou FAT32), tandis que la deuxième partition se voit automatiquement attribuer un identifiant de type DOS étendu. Et la partition étendue peut être divisée en partitions logiques. Cependant, cela ne nous intéresse pas maintenant, et la structure de la partition étendue et des partitions logiques y a été décrite à plusieurs reprises.

Linux utilise également le style de balisage DOS. Seulement ici, la table du BIOS est utilisée dans son intégralité - en utilisant les outils standard de ce système d'exploitation (par exemple, fdisk ou cfdisk), vous pouvez créer les quatre partitions principales et les utiliser pour votre plaisir. cependant, encore une fois, un seul d’entre eux peut être déclaré étendu et, par conséquent, divisé en sections logiques.

Le style de balisage BSD (BSD Label) utilisé dans FreeBSD, DragonFlyBSD, Net- et OpenBSD, ainsi que dans BSD/OS est complètement différent. Une table BIOS peut également être utilisée ici, dont le remplissage créera quatre partitions principales. Dans la terminologie FreeBSD, on les appelle tranches (la traduction la plus précise serait « segments ») pour les distinguer des partitions du balisage BSD. Les tranches de la nomenclature des fichiers de périphérique sont marquées en ajoutant la lettre s et un numéro de série au nom du fichier disque (contrairement aux disques commençant par un), par exemple : ad0s1, ad0s2, ad0s3, ad0s4 pour le disque maître sur le premier canal IDE.

Si une ou plusieurs tranches se voient attribuer un identifiant système BSD - 165 en décimal (à proprement parler, il s'appelle 4.2BSD et est également caractéristique de DragonFlyBSD et NetBSD - bien que théoriquement ce dernier, comme OpenBSD, ait également son propre numéro d'identifiant de partition ), alors son bloc initial sera écrit par la table de partition BSD réelle (BSD Label). Conformément à son format, chaque tranche portant l'ID 165 est absolument égale et peut être divisée en sections logiques (en fait des partitions, dans la terminologie FreeBSD).

Il y a huit entrées pour les sections dans la table BSD. Les sections correspondantes sont marquées par la nomenclature en ajoutant une lettre au nom du fichier de tranche - de a à h. Cependant, dans DragonFlyBSD, cette limitation est contournée et une tranche peut contenir jusqu'à 16 partitions logiques.

En réalité, toutes les partitions de tranches ne peuvent pas être utilisées pour héberger des systèmes de fichiers. Pour commencer, l'un des enregistrements (le troisième, marqué de la lettre c) est réservé à la description de la tranche entière dans son ensemble - par exemple, ad0s1c, dont la nécessité deviendra claire plus tard. Ensuite, la première entrée de table, correspondant à laquelle le fichier de périphérique est marqué comme ad#s#a , est allouée pour décrire la partition racine du système de fichiers. Et il est évident que sur une machine locale spécifique, il ne peut y avoir qu'une seule partition racine, quel que soit le nombre de tranches et de disques physiques.

Enfin, la deuxième entrée (fichier de périphérique - ad#s#b) est uniquement destinée à décrire la partition d'échange, qui, d'une part, ne peut pas contenir de données, et d'autre part, est la seule sur tout le disque (évidemment, la création d'une partition d'échange dans chaque tranche est inutile, même si si vous avez deux disques physiques, diviser l'espace de swap entre eux est une idée tout à fait saine).

Généralement, la création de tranches vise à placer plusieurs systèmes d'exploitation sur un disque et à maintenir la possibilité d'échanger des données entre eux (en théorie, les partitions BSD sont accessibles depuis Linux si son noyau est correctement reconstruit ; bien que la procédure inverse consiste à accéder à une partition ext2fs depuis FreeBSD , - beaucoup plus simple).

Si l'intégralité du disque existant doit être détruite par FreeBSD, alors généralement une seule tranche est créée pour (presque) tout son volume, laissant les entrées dans la table du BIOS pour le reste inutilisées. Sept positions dans la table BSD suffisent pour séparer les branches du système de fichiers telles que /usr, /tmp, /var et /home - c'est approximativement la méthode de partitionnement de disque par défaut proposée par le programme sysinstall.

Bien entendu, dans certains cas, le nombre par défaut de partitions pouvant être créées dans une tranche n'est pas suffisant. en particulier, il existe une opinion, non sans raison, selon laquelle des parties du système de fichiers telles que /usr/src, /usr/ports, /usr/ports/distfiles devraient également être séparées en branches distinctes. peut-être /usr/local . Dans ce cas, vous devrez créer deux tranches BSD (bien qu'il existe des informations selon lesquelles vous pouvez utiliser la partition étendue pour la division fractionnaire du système de fichiers, mais je n'ai jamais essayé cela moi-même).

Le partitionnement de disque qui utilise les entrées de la table BIOS du premier bloc est appelé partitionnement en mode de compatibilité. Qu'une tranche soit créée pour FreeBSD ou plusieurs tranches distinctes pour chaque système d'exploitation, en mode de compatibilité, un espace de 63 blocs (environ 30 Ko au total) est réservé au début du disque, dans lequel non seulement le « par défaut » " Le MBR reste intact, mais il y a également de la place pour écrire le code d'un chargeur de démarrage tiers. De ce fait, le disque reste accessible aux autres systèmes d'exploitation, du moins en théorie.

Cependant, l'utilisation du mode de compatibilité et de la table de partition du BIOS est facultative sous FreeBSD. Il est tout à fait acceptable d'écrire la table de partition BSD directement dans le MBR, au lieu de la table du BIOS. Dans ce cas, il est clair que les tranches en tant que telles ne sont pas créées et que tout l'espace disque est comme une seule tranche et peut être divisé en partitions BSD selon les mêmes règles qu'une tranche distincte. Et ici, la nécessité de réserver le troisième champ de la table BSD devient claire - c'est dans celui-ci que l'ensemble de notre disque, entièrement alloué à FreeBSD, est décrit.

Ce traitement du disque est appelé mode d'utilisation exclusive, ou Dangerously Dedicated. Contrairement à son nom, il ne présente aucun danger pour les données ou la santé de l’utilisateur. Et le seul danger qui l'attend est que le disque en mode exclusif ne sera reconnu par aucun autre système d'exploitation installé sur cet ordinateur (il n'interférera pas avec l'accès au disque via le réseau). Cependant, il s'agit d'un inconvénient purement théorique, car aucun des systèmes d'exploitation que je connais ne peut réellement fonctionner avec les partitions BSD et le système de fichiers FreeBSD (en particulier le système moderne - UFS2). Et, disons, s'il y a un multibooter GRUB sur un autre disque physique, FreeBSD à partir du disque « exclusif » peut très bien être chargé avec.

La documentation FreeBSD indique que les disques « exclusifs » ne parviennent parfois pas à démarrer, probablement parce que le BIOS ne sera pas capable de reconnaître les entrées MBR non standard. Cependant, apparemment, cela s'applique à certaines anciennes versions du BIOS - je n'ai jamais rencontré cela, même si j'ai souvent eu recours au mode exclusif lorsqu'il était possible de donner un disque physique entier à FreeBSD.

Cependant, les documents du projet FreeBSD soulignent toujours que le mode exclusif - notamment en raison des économies d'espace disque sans le sou - ne doit être utilisé que dans des cas exceptionnels. L'une des raisons de cette utilisation est l'écart entre la « géométrie » du disque, visible depuis le BIOS, et l'idée qu'en a FreeBSD.

Marquage des tranches

Lors de l'installation initiale de FreeBSD, le programme sysinstall, un programme d'installation et de personnalisation universel pour ce système d'exploitation, est généralement utilisé pour créer des tranches et des partitions sur ceux-ci. Cependant, il ne faut pas oublier qu'il ne s'agit que d'un frontal à une série d'utilitaires spécialisés, notamment des utilitaires de partitionnement de disque. Et donc apprendre à les connaître ne sera en aucun cas nuisible. D'une part, cela permettra de comprendre ce que fait réellement sysinstall. En revanche, certaines actions pour partitionner un disque s'avèrent plus faciles à réaliser avec leur aide. J'ai donc passé beaucoup de temps à créer des partitions pour préparer les matrices RAID logicielles, jusqu'à ce que je réalise que le faire manuellement était beaucoup plus facile.

Il existe également un troisième côté : les utilitaires de partitionnement de disque, en plus de remplir leur fonction directe, constituent une source indispensable d'informations sur le disque physique en général et sur ce que FreeBSD en pense. Et puis, avec leur aide, vous pouvez obtenir des informations sur les partitions de disque que l'on ne trouve nulle part ailleurs.

Contrairement à Linux, le partitionnement de disque sous FreeBSD s'effectue en deux étapes et par deux programmes distincts. Tout d'abord, le disque est découpé en tranches (ou une tranche est créée, soit en mode compatibilité, soit pour un usage exclusif). Et puis la tranche allouée à FreeBSD est divisée en sections.

L'utilitaire fdisk effectue la première tâche. Il s'agit d'un outil encore plus puissant pour travailler avec des disques que le programme Linux du même nom. Cependant, on ne peut pas le qualifier de facile à utiliser. Même dans man (8) fdisk, parmi les BUG, ​​on note que son interface pourrait être plus conviviale. Cependant, en réalité, son utilisation n’est pas du tout effrayante.

Exécutée sans options ni arguments, la commande fdisk affiche simplement des informations sur le premier disque physique de la machine (ou plutôt, le disque qui héberge le système de fichiers racine FreeBSD). Et les informations sont riches : ici nous verrons à la fois le nom de fichier du périphérique de disque actuel (par exemple, /dev/ad0), et des informations sur sa géométrie (le nombre de cylindres, de têtes, de secteurs par piste, de blocs par cylindre - une autre chose est qu'ils sont liés à la géométrie réelle (ils ne le sont pas, mais nous en avons déjà parlé) et à la taille du bloc physique.

Et puis il y aura des informations sur la ou les tranches vivant sur ce disque. Et ici, pour chaque tranche, nous verrons l'identifiant du type de système de fichiers, sa taille (en blocs et mégaoctets), l'indicateur d'activité (s'il y en a un), les données sur le début et la fin (numéro de cylindre/tête/secteur). S'il y a moins de quatre tranches sur le disque, celles qui n'existent pas (c'est-à-dire correspondant aux entrées vides de la table de partition) seront marquées comme INUTILISÉES. La même marque sera sur les tranches 2 à 4 avec un disque marqué en mode exclusif.

Cependant, même avec une seule tranche sur le disque, marquée en mode de compatibilité, il est très facile de la distinguer du disque « exclusif » par le résultat de la commande fdisk : le bloc de départ de la première sera 63, et sa valeur initiale la piste sera numérotée en premier. Alors qu’une tranche d’un disque « exclusif » partira d’un bloc zéro et d’une piste zéro.

Comme déjà mentionné, toutes ces informations se réfèrent au disque avec le système de fichiers racine. Pour obtenir des informations similaires pour d'autres lecteurs, le nom de fichier du périphérique correspondant doit être explicitement spécifié comme argument de la commande fdisk. Par exemple,

$ fdisk /dev/ar0

les fournira pour le lecteur connecté au connecteur IDE-RAID du contrôleur. Cette information peut paraître redondante. Cependant, en utilisant fdisk, vous pouvez afficher des informations plus concises (et en même temps uniquement essentielles). A quoi sert l'option -s ? En réponse à la commande

$ fdisk -s /dev/ad#

nous ne recevrons que la chose la plus importante : le nom du fichier de l'appareil, le nombre de cylindres, de têtes et de secteurs, ainsi que de brèves informations uniquement sur les tranches existantes (c'est-à-dire non marquées comme INUTILISÉES) - secteur de départ, taille de tranche, système de fichiers identifiant de type et indicateur d’activité. C'est-à-dire approximativement sous la forme suivante :

/dev/ad0 : 155061 cyl 16 hd 63 sec Partie Début Taille Type Indicateurs 1 : 0 156301488 0xa5 0x80

Tout ce qui a été dit avait uniquement pour but d'obtenir des informations. Afin d'effectuer des actions de partitionnement de disque actif à l'aide de fdisk, vous devez vous familiariser avec ses autres options. Il n'y en a pas beaucoup, et la plus importante est peut-être l'option -I. Inclus dans l'équipe

$ fdisk -I /dev/ar0

il créera cependant la première et unique tranche sur le disque, en mode de compatibilité, c'est-à-dire à partir du secteur 63. Évidemment, si le disque a été précédemment partitionné d'une manière ou d'une autre et contenait des données, la configuration précédente du disque et son contenu seront irrémédiablement détruits. Cependant, ce comportement est typique de tous les utilitaires de partitionnement de disque sur n'importe quel système d'exploitation. Certes, contrairement à l'utilitaire Linux du même nom, Free fdisk répartit immédiatement le disque. Et d’ailleurs, ici on ne nous demandera même pas de confirmer nos actions, il faut donc être prudent.

Mais de nombreuses questions suivront lors de l'utilisation de l'option -i, qui vous permet de partitionner le disque de manière interactive. Donné avec le nom du fichier de périphérique comme argument, c'est-à-dire sous la forme

$ fdisk -i /dev/ar0

Tout d'abord, il nous rappellera quel disque a été abusé et nous indiquera ses paramètres (à la fois ceux enregistrés dans le Disk Label et ceux lus depuis le BIOS - dans le cas général, ils ne doivent pas nécessairement correspondre) :

******* Travailler sur le périphérique /dev/da0 ******* les paramètres extraits de l'étiquette du disque interne sont : cylindres = 124 têtes = 64 secteurs / piste = 32 (2048 blks / cyl) paramètres à utilisés pour les calculs du BIOS sont : cylindres = 124 têtes = 64 secteurs/piste = 32 (2048 blks/cyl)

Et il nous demandera immédiatement si nous voulons ajuster la géométrie du disque du BIOS. La réponse par défaut (non) est évidente s'il n'y a pas de message concernant une « mauvaise » géométrie du BIOS, qui correspond également à la géométrie décrite dans l'étiquette du disque. Mais si une « mauvaise » géométrie se produit, cela vaut la peine d’y réfléchir.

Le moyen le plus simple est de le laisser tel quel - cela ne posera probablement aucun problème. Cependant, vous pouvez corriger la situation manuellement dans un souci de commande. Pour ce faire, vous devez d'abord répondre positivement à la question ci-dessus, après quoi il vous sera demandé de saisir séquentiellement tous les paramètres spécifiés - le nombre de cylindres, de pistes et de secteurs. La confirmation de la légalité de ces actions peut être obtenue plus tard - en vérifiant avec celles de sysinstall.

Le premier divertissement après correction de la géométrie (ou à sa place) en équipe

$ fdisk -i /dev/ar0

- il s'agit de la création manuelle de tranches (avec un balisage existant, la question sera d'abord posée de savoir si on le souhaite - avec une réponse négative par défaut). Pour ce faire, vous demandez d'abord l'identifiant du type de système de fichiers (la valeur par défaut est existante si le disque a été partitionné, ou 0 pour un nouveau disque) - vous devez spécifier sa valeur décimale (165 pour une tranche FreeBSD). Ensuite - le secteur de départ (0 - avec disposition « exclusive », 63 - avec disposition en mode compatibilité), et la taille de la tranche en blocs (si vous utilisez l'intégralité du disque, elle sera évidemment égale au nombre total d'entre eux , sinon quelques calculs arithmétiques seront nécessaires ).

Après cela, il vous sera demandé de préciser précisément le début et la fin de la tranche. Si vous refusez, elles seront reprises des définitions précédentes ; si vous êtes d'accord, vous devrez indiquer le premier et le dernier cylindre, culasse, secteur. Qui sera affiché sous la forme

Sysid 165 (0xa5), (FreeBSD/NetBSD/386BSD) début 0, taille 260 000 (126 Mo), drapeau 0 début : cyl 0/tête 0/secteur 1 ;

fin : cyl 126/ tête 60/ secteur 32

Confirmer vos actions avec une réponse positive à la question

Sommes-nous satisfaits de cette entrée ? [New York

vous pouvez passer à la création de la deuxième section

Les données de la partition 2 sont : Voulez-vous la modifier ? [n]

- selon le même schéma que le premier. Il est clair que si une seule tranche est créée, vous devez refuser de modifier les entrées potentielles restantes de la table de partition - dans ce cas, elles resteront marquées comme inutilisées. Dans tous les cas, la dernière question sera posée - confirmation d'exécution :

Si la réponse est positive, toutes les modifications apportées prendront effet (et vous pourrez dire au revoir à son contenu sur le disque précédemment marqué). Vous devez donc prévisualiser tout ce qui a été saisi précédemment (heureusement, dans FreeBSD, cela est facile à faire en faisant défiler le tampon de l'historique de la console virtuelle) et si une erreur est détectée, annulez les modifications et exécutez à nouveau la commande fdisk. Cependant, vous pouvez en sortir à tout moment sans conséquences et de la manière standard - avec une combinaison de touches Contrôle+C.

En général, créer de manière interactive une seule tranche "exclusive" avec fdisk (et une seule tranche "compatible" est plus facile à créer avec l'option -I) n'est pas si mal. Si vous avez besoin de plusieurs tranches, vous devrez vous armer d'une calculatrice (FreeBSD en possède une - bc, lancée depuis la ligne de commande, très simple et facile à utiliser).

Bien qu'il existe une autre façon de créer des tranches - en décrivant au préalable leurs paramètres, et en même temps la géométrie du disque, dans un fichier (dans un fichier texte ordinaire, en utilisant n'importe quel éditeur habituel). Après quoi le programme fdisk est lancé sous la forme

$ fdisk -f fichier de configuration /dev/ad#

Et en ajoutant l'option -t, vous pouvez d'abord tester l'exactitude de votre balisage sans écrire de modifications sur le disque. Cependant, je ne l'ai pas fait moi-même, laissant le soin à ceux qui souhaitent le faire eux-mêmes : toutes les informations nécessaires, y compris le format du fichier de configuration, se trouvent dans man (8) fdisk.

Enfin, pour partitionner un disque en mode exclusif, vous pouvez vous passer du tout de la commande fdisk : il suffit de réinitialiser ses blocs initiaux à l'aide de la commande dd, qui effectue ce qu'on appelle. copie avec conversion. Il nécessite deux arguments : le nom du fichier en cours de copie (if - fichier d'entrée) et le nom de fichier du périphérique sur lequel il est copié (of - fichier de sortie). Vous pouvez également définir la taille du bloc de données copiées et son nombre. Autrement dit, dans notre cas, cela ressemblera à ceci :

$ dd if=/dev/zero of=/dev/ad# bs=1k count=1

$ jj si=/dev/zéro de=/dev/ad# count=2

Dans les deux cas, /dev/zero est compris comme ce qu'on appelle un périphérique « zéro » et /dev/ad# est le disque partitionné ; des options supplémentaires indiquent que les deux premiers blocs physiques de celui-ci doivent être remplis de zéros.

Disposition des partitions

Une tranche créée avec fdisk, qu'elle soit « exclusive » ou « compatible », est déjà utilisable - un système de fichiers peut être créé directement dessus. Cependant, il est généralement d'abord divisé en sections logiques (ou au moins une section est créée, ad#s1c , qui décrit la tranche entière). Auparavant, l'utilitaire disklabel servait à cet effet, mais dans la version 5.1, il a été remplacé par le programme bsdlabel emprunté à NetBSD (avec une interface plus conviviale, comme disent les optimistes). Bien que disklabel puisse être trouvé dans le répertoire /sbin, il ne s'agit que d'un lien physique vers le même fichier exécutable que bsdlabel. Cela peut être facilement vérifié en regardant les identifiants des deux fichiers :

$ ls -l /sbin/bsdlabel /sbin/disklabel -r-xr-xr-x 2 roue racine 27348 23 février 22:42 /sbin/bsdlabel* -r-xr-xr-x 2 roue racine 27348 23 février 22 : 42 /sbin/étiquette de disque*

ayant des valeurs égales (27348).

Encore une fois, lancé sans options (mais avec un argument obligatoire sous la forme du nom du fichier de périphérique - la tranche), bsdlabel sert uniquement à informer sur l'état des choses, en affichant quelque chose comme ce qui suit pour une tranche étiquetée sous FreeBSD :

$ bsdlabel /dev/ad0 # /dev/ad0 : 8 partitions : # size offset fstype a : 524288 0 4.2BSD 2048 16384 32776 b : 2074624 524288 swap c : 156301488 0 inutilisé 0 0 0 # partie "brute", à ne pas faire modifier d : 524288 2598912 4.2BSD 0 0 0 e : 10240000 3123200 4.2BSD 0 0 0 f : 142938288 13363200 4.2BSD 0 0 0

Pour la conclusion ci-dessus, quelques commentaires seraient utiles. Les lettres de gauche sont les désignations des lettres des partitions existantes, pour chacune desquelles sont donnés : la taille en blocs, le décalage du premier bloc depuis le début du disque, c'est-à-dire le secteur zéro (décalage), le système de fichiers le type et ses paramètres : taille du fragment, taille du bloc, densité des enregistrements - tout cela sera discuté dans la section sur le système de fichiers FreeBSD ; Pour l'instant, il convient de noter qu'un bloc de système de fichiers est un bloc logique, et ce n'est pas du tout la même chose qu'un bloc de disque physique. Pour l'instant, nous ne ferons pas attention au fait que les colonnes correspondantes de toutes les partitions sauf a contiennent des zéros.

Parmi les partitions, celle marquée de la lettre c est remarquable : c'est le même « conteneur » pour les partitions restantes (une analogie lointaine est la partition étendue DOS). Il est clair que son décalage est nul et que sa taille est égale au nombre total de blocs de disque physique. Pour les autres sections, le décalage est facilement calculé (par exemple, à l'aide du calculateur bc) en additionnant le décalage de la section précédente avec sa taille.

L'exemple ci-dessus fait référence à un disque « exclusif » - c'est pourquoi nous voyons un décalage zéro de la première partition et de la « tranche » c. Pour un disque partitionné en mode de compatibilité, l'image ressemblera à ceci :

# /dev/ad0s1 : 8 partitions : # size offset fstype a : 524288 63 4.2BSD 2048 16384 32776 c : 16771797 63 inutilisé 0 0 # partie "brute", ne pas modifier d : 524288 524351 4.2BSD 2048 16384 3 2776e : 524288 1048639 4.2BSD 2048 16384 32776 f: 1048576 1572927 4.2BSD 2048 16384 8 g: 14150357 2621503 4.2BSD 2048 16384 28552

Autrement dit, vous pouvez voir que la première partition d'un disque partitionné « normalement » est décalée par rapport à son début de 63 blocs réservés.

Ce n'est pas une coïncidence si le champ fstype de la section c contient la valeur inutilisée - il ne peut être utilisé pour aucun stockage de données. Cependant, seul cela est disponible sur le support fraîchement partitionné à l'aide de fdisk. Comment créer les partitions nécessaires restantes ?

Curieusement, l'un des moyens est extrêmement simple : via un éditeur de texte classique. Pour ce faire, bsdlabel est lancé avec l'option -e et l'argument - le nom de fichier de la tranche étiquetée :

$ bsdlabel -e /dev/ad0s1

En réponse, l'éditeur défini dans la variable EDITOR du fichier de profil superutilisateur sera appelé (il est inutile de rappeler que toutes les opérations sur les disques, tranches et partitions sont effectuées uniquement pour le compte de root), à défaut de celui-ci, tel un l'éditeur sera /usr/bin/vi. Et dans cet éditeur, nous verrons ce qui suit :

# /dev/da0 : 8 partitions : # size offset fstype c : 254787 0 inutilisé 0 0 # partie "brute", ne pas modifier

Si vous ne prévoyez pas de placer le système de fichiers racine sur cette tranche, pour créer une seule partition il suffira d'ajouter (en utilisant les outils d'édition les plus courants) une ligne comme

D:2547870 4.2BSD

dans le cas d'un disque "exclusif", ou

D : 254787 63 4.2BSD

pour un disque partitionné en mode compatibilité.

Et - quittez l'éditeur avec sa commande habituelle, en enregistrant les modifications (dans le cas de vi - :wq), en réponse à quoi nous serons informés que

Fichier /tmp/EdDk.KvEGsqRNsh enregistré.

La prochaine fois que bsdlabel sera appelé pour la même tranche, mais sans options, l'image sera la suivante :

# /dev/da0 : 8 partitions : # size offset fstype c: 254787 0 inutilisé 0 0 # partie "brute", ne pas modifier d: 254787 0 4.2BSD 0 0 0

Autrement dit, vous pouvez voir que la partition « de travail » a été créée avec succès.

Pour créer plusieurs partitions, y compris la racine et pour le swap, nous avons encore besoin d'une certaine arithmétique, similaire à celle utilisée dans le mode interactif du programme fdisk. C'est-à-dire que chaque partition, commençant par a , doit recevoir la valeur du décalage initial (le premier - correspondant au bloc initial de la tranche entière, le reste - la somme du décalage et la taille du précédent), la taille (toujours en blocs), type de système de fichiers (pour les partitions « de travail » - 4.2BSD, pour la partition d'échange - swap). Les champs des paramètres du système de fichiers peuvent être laissés vides - dans ce cas, les paramètres du système de fichiers seront déterminés lors de celui-ci. est créée (c'est-à-dire lors du « formatage », en termes DOS, de la partition).

À ce stade, la question des tranches et de la partition peut, en première approximation, être considérée comme close. Bien entendu, les partitions créées ne sont toujours pas utilisables - des systèmes de fichiers doivent d'abord y être créés. Ou, comme le disent les « appuis de fenêtre », formatez-les. C'est ce que nous ferons dans un avenir très proche. Mais déjà - dans la section suivante...

Dans cet article, nous parlerons du partitionnement manuel des disques durs, c'est-à-dire des disques durs, sans l'aide du programme sysinstall. Ce besoin ne se présente pas très souvent, mais il se fait sentir. Et pour l'enseignement général, il est utile d'effectuer une telle opération au moins une fois dans sa vie.

Comme vous le savez, les disques sont généralement divisés en partitions (partitions en termes DOS/Windows et Linux). Mais FreeBSD a aussi une approche originale. Pour le comprendre, il faut d'abord dire

Un peu de "géométrie"

Le mot « géométrie » dans le titre de la section n’est pas placé entre guillemets par hasard. Le fait est que depuis que le volume des disques a dépassé 500 mégaoctets (une limitation de l'ancien BIOS des ordinateurs personnels, auparavant appelés compatibles IBM), l'utilisateur ne rencontre jamais leur géométrie réelle. Un logiciel intégré à l'électronique du disque (le soi-disant firmware) le transforme en une forme qui peut être perçue par le BIOS - je ne m'attarderai pas sur les détails de la manière exacte dont cela est fait en raison de l'incompétence (et il est peu probable que quelqu'un d'autre que les fabricants de disques connaissent bien ces détails).

Et la géométrie du disque disponible pour le BIOS est décrite en termes cylindre/culasse/secteur (cylindres/têtes/secteurs, C/H/S). Au sens figuré (et, je le répète, tout ce qui touche à la géométrie des disques doit désormais être compris exclusivement au sens figuré, allégorique ou métaphorique), les têtes lisent les informations des pistes magnétiques concentriques dans lesquelles chaque plateau de disque est divisé. Une collection verticale de pistes portant les mêmes numéros sur toutes les plaques qui composent le disque en tant que périphérique physique forme un cylindre. Et les secteurs découpent la plaque, ainsi que ses traces, en fragments radiaux appelés blocs. Autrement dit, on peut imaginer que le bloc se trouve à l'intersection (dans l'espace) du cylindre, de la piste et du secteur.

Le nombre de pistes et de secteurs dans les disques modernes est généralement fixe (ou plutôt apparaît comme tel dans le BIOS) : 255 pistes sont découpées en 63 secteurs chacune, ce qui donne au total 16 065 blocs par cylindre. Et le nombre de cylindres est déterminé par le volume du disque (je n'entrerai pas dans les calculs arithmétiques). La seule chose importante ici est que les têtes de disque se déplacent mécaniquement de manière synchrone le long de la surface de toutes les plaques. Autrement dit, si les informations sont lues à partir de la piste 1 sur un plateau, alors toutes les autres têtes sont déplacées vers la même piste - chacune sur son propre plateau.

Je le répète, tout cela est conditionnel - ne serait-ce que parce que la notion de cylindre au sens géométrique du terme est très difficile à appliquer aux disques modernes, souvent non seulement monoplaques, mais même, pour ainsi dire, demi-plaques ( c'est-à-dire avec un seul côté d'une seule plaque impliqué) . Mais gérer cette géométrie relève du firmware et du BIOS ; pour nous, ce sont les cylindres qui nous intéressent - l'ensemble des pistes auxquelles on accède de manière synchrone, et les blocs - le quanta minimum d'espace disque.

Les pistes qui forment les cylindres sont créées lors du marquage initial en usine du disque - ce qu'on appelle. formatage de bas niveau. D'après ce qui précède, il est évident que l'accès aux données d'un cylindre ou d'un groupe de cylindres voisins sera plus rapide qu'aux données partiellement écrites sur le premier et, disons, le dernier cylindre du disque. Ce cas n'est pas aussi incroyable qu'il y paraît : sous DOS, où l'espace occupé par les fichiers effacés est marqué comme inutilisé, mais n'est en réalité écrasé que lorsque l'espace libre sur le disque est complètement épuisé, une telle situation pourrait bien se produire.

Ainsi, afin de minimiser la probabilité que les données soient distribuées sur des cylindres séparés, des partitions de disque ont été inventées (ou plutôt, dans ce but également - l'allocation de partitions de disque a de nombreux autres objectifs). Un groupe de cylindres adjacents est combiné en une seule section.

Où finit une section et où commence une autre ? Les gens raisonnables d’Odessa diraient qu’une section se termine exactement là où commence la seconde. Cependant, il est évident pour nous que pour chaque section, nous devons stocker des informations sur son début et sa fin (c'est-à-dire les numéros du premier et du dernier des cylindres impliqués). Où dois-je les stocker ? Pour répondre à cette question, il faut se tourner vers la notion de bloc.

Comme les pistes, les blocs de disque (ou physiques - il existe également des blocs logiques, mais cela s'applique aux systèmes de fichiers, dont nous parlerons plus tard) sont créés lors du formatage de bas niveau, et l'utilisateur ne peut pas (presque) les influencer. Leur taille est également toujours la même et égale à 512 octets. Ou plutôt, c'est ainsi que l'on voit le BIOS d'un ordinateur personnel - ce qu'il est réellement, seul Allah le sait.

Cependant, le fait que l'échange de données avec un disque soit possible par tranches d'au moins 512 octets est une réalité objective, tout comme le fait que toute quantité d'informations, aussi petite soit-elle, qui y est écrite occupera un bloc entier - indépendamment de sa taille réelle. Autrement dit, les petits fichiers texte de quelques caractères (c'est-à-dire des octets) captureront toujours jusqu'à 512 octets, pas moins (en fait, même plus, mais nous y reviendrons la prochaine fois). D'un autre côté, la lecture des données par blocs de 512 octets sera plus rapide que si les données étaient lues octet par octet à chaque fois que la tête accédait au disque. Cependant, cela concerne également le thème des systèmes de fichiers.

Pour l'instant, nous nous intéressons à un seul bloc formé par le premier secteur sur la première piste du premier cylindre. Il est réservé à la zone de service du disque, appelée master boot record (MBR - Master Boot Recodr), qui est lue par le BIOS au démarrage de la machine. Évidemment, le MBR n'est utilisé aux fins prévues que si le MBR est utilisé aux fins prévues. Le disque est défini dans le BIOS d'installation "mais comme disque de démarrage (ou est simplement le seul dans le système). Cependant, comme l'utilisation de chaque disque spécifique est à la discrétion de l'utilisateur, de l'espace lui est toujours alloué.

À l'intérieur du bloc zéro, entre autres (notamment le code de tout bootloader pouvant y être écrit), il y a certainement une section réservée. Il est destiné à la table de partition du BIOS, pour laquelle depuis des temps immémoriaux (depuis le tout premier IBM PC, semble-t-il) 64 octets de données sur la ou les partitions ont été alloués dans un certain format compréhensible du BIOS.

Et ce format fournit pour chaque section l'indication de son bloc de départ, de sa taille en octets, de l'identifiant du type de système de fichiers (ceci, contrairement au nom, n'est pas du tout le même que le système de fichiers, qui sera abordé dans la section suivante) et ( pour une seule des partitions) indicateur d'activité (c'est-à-dire marquer cette partition comme amorçable). Ce dernier est nécessaire pour certains systèmes d'exploitation comme DOS, bien que FreeBSD ou, par exemple, Linux, ce drapeau soit complètement indifférent.

Les informations totales requises pour décrire la partition de disque sont de 16 octets. Et comme, comme on s'en souvient, seuls 64 octets sont alloués pour l'ensemble de la table de partitions, sans calculatrice, nous pouvons calculer que le nombre maximum de partitions sur un disque est de 4. Ces partitions sont dites primaires ou, pas tout à fait précisément, physiques. Puisque dans la plupart des cas, ces sections peuvent également être divisées en parties - sections logiques (qui seront discutées plus tard).

Je le répète encore une fois - cela ne s'applique qu'aux machines dotées d'un BIOS PC, c'est-à-dire aux ordinateurs personnels ordinaires. Sur toutes sortes de PowerPC, Sparcs et stations similaires, tout peut être complètement différent (même si, pour être honnête, je ne sais pas exactement comment).

Comme vous pouvez le voir, la description de la partition inclut l'identifiant du système de fichiers. Il s'agit d'un certain nombre (sous FreeBSD, généralement en notation décimale, sous Linux, par exemple, en hexadécimal), qui est attribué en fonction du système de fichiers du système d'exploitation prévu pour être placé sur le disque. Ainsi, la partition destinée. pour FreeBSD a l'identifiant 165 (décimal) ou A5, partition pour Linux (Linux natif) - 131 (ou 83), FAT16 - 6, partition étendue (dite DOS Extended) - 5, et ainsi de suite.

Attribuer un identifiant à une partition ne signifie pas qu'un système de fichiers correspondant y apparaîtra comme par magie. Non, il prédétermine simplement quel type de table de partition secondaire peut y être écrit (bien que ce ne soit pas tout à fait vrai - et dans certains cas, ce n'est pas du tout vrai). Mais ici nous arrivons à la conversation

En fait, à propos des tranches

Ainsi, l'enquête a établi que jusqu'à 4 partitions (incluses) peuvent être créées sur un disque physique, chacune pouvant être attribuée à un système d'exploitation distinct. Quelle est la prochaine étape ? Et puis vous devriez étudier la question des styles de balisage de section.

Les styles de disposition des sections sont appelés Étiquette de disque, qu'il ne faut pas confondre avec les étiquettes de disque - des noms arbitraires qui peuvent être attribués à une partition de disque sous DOS (et pas seulement). Les styles de balisage sont le format de la table de partition secondaire, écrit dans le premier bloc de la partition principale. Ce tableau détermine la nature des actions disponibles sur cette partition principale.

Les utilisateurs de Windows (et, dans la plupart des cas, Linux) n'ont généralement aucune raison de réfléchir à la question des styles de balisage. Cependant, il existe de nombreux styles de ce type - pour le vérifier, il suffit d'aller dans le menu de configuration du noyau Linux, dans la sous-section Types de partitions section Systèmes de fichiers. Cependant, parmi toute cette abondance, nous ne nous intéresserons qu'à deux styles : DOS et BSD.

DOS/Windows utilise (étonnamment) le style de partitionnement DOS. Il est basé sur la table du BIOS, qui n'est que partiellement utilisée. À savoir, sur les quatre entrées disponibles dans la table de partitions, seules deux sont remplies (ou plutôt, seules deux partitions peuvent être créées à l'aide de FDISK standard à partir de DOS/Windows9X/ME ; je ne sais tout simplement pas quelle est la situation dans NT/2000/ XP).

Dans l'entrée de la première partition, vous pouvez spécifier un identifiant de type de système de fichiers (par exemple, FAT16 ou FAT32), tandis que la deuxième partition se voit automatiquement attribuer un identifiant de type DOS étendu. Et la partition étendue peut être divisée en partitions logiques. Cependant, cela ne nous intéresse pas maintenant, et la structure de la partition étendue et des partitions logiques y a été décrite à plusieurs reprises.

Linux utilise également le style de balisage DOS. Seulement ici, la table du BIOS est utilisée dans son intégralité - en utilisant les outils standard de ce système d'exploitation (par exemple, fdisk ou cfdisk), vous pouvez créer les quatre partitions principales et les utiliser pour votre plaisir. cependant, encore une fois, un seul d’entre eux peut être déclaré étendu et, par conséquent, divisé en sections logiques.

Le style de balisage BSD (BSD Label) utilisé dans FreeBSD, DragonFlyBSD, Net- et OpenBSD, ainsi que dans BSD/OS est complètement différent. Une table BIOS peut également être utilisée ici, dont le remplissage créera quatre partitions principales. Dans la terminologie FreeBSD, on les appelle tranches (slices - la traduction la plus précise serait "segments") pour les distinguer des sections (partitions) du balisage BSD. Les tranches de la nomenclature des fichiers de périphérique sont marquées en ajoutant la lettre s et un numéro de série au nom du fichier disque (contrairement aux disques commençant par un), par exemple : ad0s1, ad0s2, ad0s3, ad0s4 pour le disque maître sur le premier canal IDE.

Si une ou plusieurs tranches se voient attribuer un identifiant système BSD - 165 en décimal (à proprement parler, il s'appelle 4.2BSD et est également caractéristique de DragonFlyBSD et NetBSD - bien que théoriquement ce dernier, comme OpenBSD, ait également son propre numéro d'identifiant de partition ), alors son bloc initial sera écrit par la table de partition BSD réelle (BSD Label). Conformément à son format, chaque tranche portant l'ID 165 est absolument égale et peut être divisée en sections logiques (en fait des partitions, dans la terminologie FreeBSD).

Il y a huit entrées pour les sections dans la table BSD. Les sections qui leur correspondent sont des nomenclatures marquées en ajoutant une lettre au nom du fichier de tranche - de a à h. Cependant, dans DragonFlyBSD, cette limitation est contournée et une tranche peut contenir jusqu'à 16 partitions logiques.

En réalité, toutes les partitions de tranches ne peuvent pas être utilisées pour héberger des systèmes de fichiers. Pour commencer, l'un des enregistrements (le troisième, marqué de la lettre c) est réservé à la description de la tranche entière dans son ensemble - par exemple, ad0s1c, dont la nécessité deviendra claire plus tard. Ensuite, la première entrée de table, correspondant à laquelle le fichier de périphérique est marqué comme ad#s#a , est allouée pour décrire la partition racine du système de fichiers. Et il est évident que sur une machine locale spécifique, il ne peut y avoir qu'une seule partition racine, quel que soit le nombre de tranches et de disques physiques.

Enfin, la deuxième entrée (fichier de périphérique - ad#s#b) est uniquement destinée à décrire la partition de swap, qui, d'une part, ne peut pas contenir de données, et d'autre part, est la seule sur tout le disque (évidemment, celle qui crée un swap partitionner dans chaque tranche est inutile, même si si vous avez deux disques physiques, diviser l'espace de swap entre eux est une idée tout à fait saine).

Généralement, la création de tranches vise à placer plusieurs systèmes d'exploitation sur un disque et à maintenir la possibilité d'échanger des données entre eux (en théorie, les partitions BSD sont accessibles depuis Linux si vous reconstruisez correctement son noyau ; bien que la procédure inverse consiste à accéder à une partition ext2fs depuis FreeBSD , - beaucoup plus simple).

Si l'intégralité du disque existant doit être détruite par FreeBSD, alors généralement une seule tranche est créée pour (presque) tout son volume, laissant les entrées dans la table du BIOS pour le reste inutilisées. Sept positions dans la table BSD suffisent pour séparer les branches du système de fichiers telles que /usr, /tmp, /var et /home - c'est approximativement la méthode de partitionnement de disque par défaut proposée par le programme sysinstall.

Bien entendu, dans certains cas, le nombre par défaut de partitions pouvant être créées dans une tranche n'est pas suffisant. en particulier, il existe une opinion, non sans raison, selon laquelle des parties du système de fichiers telles que /usr/src, /usr/ports, /usr/ports/distfiles devraient également être séparées en branches distinctes. peut-être /usr/local . Dans ce cas, vous devrez créer deux tranches BSD (bien qu'il existe des informations selon lesquelles vous pouvez utiliser la partition étendue pour la division fractionnaire du système de fichiers, mais je n'ai jamais essayé cela moi-même).

Le partitionnement de disque qui utilise les entrées de la table BIOS du premier bloc est appelé partitionnement en mode de compatibilité. Qu'une tranche soit créée pour FreeBSD ou plusieurs tranches distinctes pour chaque système d'exploitation, en mode de compatibilité, un espace de 63 blocs (environ 30 Ko au total) est réservé au début du disque, dans lequel non seulement le « par défaut » " Le MBR reste intact, mais il y a également de la place pour écrire le code d'un chargeur de démarrage tiers. De ce fait, le disque reste accessible aux autres systèmes d'exploitation, du moins en théorie.

Cependant, l'utilisation du mode de compatibilité et de la table de partition du BIOS est facultative sous FreeBSD. Il est tout à fait acceptable d'écrire la table de partition BSD directement dans le MBR, au lieu de la table du BIOS. Dans ce cas, il est clair que les tranches en tant que telles ne sont pas créées et que tout l'espace disque est comme une seule tranche et peut être divisé en partitions BSD selon les mêmes règles qu'une tranche distincte. Et ici, la nécessité de réserver le troisième champ de la table BSD devient claire - c'est dans celui-ci que l'ensemble de notre disque, entièrement alloué à FreeBSD, est décrit.

Ce traitement du disque est appelé mode d'utilisation exclusive, ou Dangerously Dedicated. Contrairement à son nom, il ne présente aucun danger pour les données ou la santé de l’utilisateur. Et le seul danger qui l'attend est que le disque en mode exclusif ne sera reconnu par aucun autre système d'exploitation installé sur cet ordinateur (il n'interférera pas avec l'accès au disque via le réseau). Cependant, il s'agit d'un inconvénient purement théorique, car aucun des systèmes d'exploitation que je connais ne peut réellement fonctionner avec les partitions BSD et le système de fichiers FreeBSD (en particulier le système moderne - UFS2). Et, disons, s'il y a un multibooter GRUB sur un autre disque physique, FreeBSD à partir du disque « exclusif » peut très bien être chargé avec.

La documentation FreeBSD indique que les disques « exclusifs » ne parviennent parfois pas à démarrer, probablement parce que le BIOS ne sera pas capable de reconnaître les entrées MBR non standard. Cependant, apparemment, cela s'applique à certaines anciennes versions du BIOS - je n'ai jamais rencontré cela, même si j'ai souvent eu recours au mode exclusif lorsqu'il était possible de donner un disque physique entier à FreeBSD.

Cependant, les documents du projet FreeBSD soulignent toujours que le mode exclusif - notamment en raison des économies d'espace disque sans le sou - ne doit être utilisé que dans des cas exceptionnels. L'une des raisons de cette utilisation est l'écart entre la « géométrie » du disque, visible depuis le BIOS, et l'idée qu'en a FreeBSD (vous pouvez en savoir plus sur ce sujet dans la FAQ officielle de FreeBSD).

Marquage des tranches

Lors de l'installation initiale de FreeBSD, le programme sysinstall, un programme d'installation et de personnalisation universel pour ce système d'exploitation, est généralement utilisé pour créer des tranches et des partitions sur ceux-ci. Cependant, il ne faut pas oublier qu'il ne s'agit que d'un frontal à une série d'utilitaires spécialisés, notamment des utilitaires de partitionnement de disque. Et donc apprendre à les connaître ne sera en aucun cas nuisible. D'une part, cela permettra de comprendre ce que fait réellement sysinstall. En revanche, certaines actions pour partitionner un disque s'avèrent plus faciles à réaliser avec leur aide. J'ai donc passé beaucoup de temps à créer des partitions pour préparer les matrices RAID logicielles, jusqu'à ce que je réalise que le faire manuellement était beaucoup plus facile.

Il existe également un troisième côté : les utilitaires de partitionnement de disque, en plus de remplir leur fonction directe, constituent une source indispensable d'informations sur le disque physique en général et sur ce que FreeBSD en pense. Et puis, avec leur aide, vous pouvez obtenir des informations sur les partitions de disque que l'on ne trouve nulle part ailleurs.

Contrairement à Linux, le partitionnement du disque sous FreeBSD s'effectue en deux étapes et par deux programmes distincts. Tout d'abord, le disque est découpé en tranches (ou une tranche est créée, soit en mode de compatibilité, soit pour un usage exclusif, puis la tranche allouée). FreeBSD est divisé en sections.

L'utilitaire fdisk effectue la première tâche. Il s'agit d'un outil encore plus puissant pour travailler avec des disques que le programme Linux du même nom. Cependant, il ne peut pas être qualifié de facile à utiliser. Même dans man (8) fdisk, parmi les BUG, ​​il est à noter que son interface pourrait être. plus convivial. Cependant, en réalité, son utilisation n’est pas du tout effrayante.

Exécutée sans options ni arguments, la commande fdisk affiche simplement des informations sur le premier disque physique de la machine (ou plutôt, le disque qui héberge le système de fichiers racine FreeBSD). Et les informations sont riches : ici nous verrons à la fois le nom de fichier du périphérique de disque actuel (par exemple, /dev/ad0), et des informations sur sa géométrie (le nombre de cylindres, de têtes, de secteurs par piste, de blocs par cylindre - une autre chose est qu'ils sont liés à la géométrie réelle (ils ne le sont pas, mais nous en avons déjà parlé) et à la taille du bloc physique.

Et puis il y aura des informations sur la ou les tranches vivant sur ce disque. Et ici, pour chaque tranche, nous verrons l'identifiant du type de système de fichiers, sa taille (en blocs et mégaoctets), l'indicateur d'activité (s'il y en a un), les données sur le début et la fin (numéro de cylindre/tête/secteur). S'il y a moins de quatre tranches sur le disque, celles qui n'existent pas (c'est-à-dire correspondant aux entrées vides de la table de partition) seront marquées comme INUTILISÉES. La même marque sera sur les tranches 2 à 4 avec un disque marqué en mode exclusif.

Cependant, même avec une seule tranche sur le disque, marquée en mode de compatibilité, il est très facile de la distinguer du disque « exclusif » par le résultat de la commande fdisk : le bloc de départ de la première sera 63, et sa valeur initiale la piste sera numérotée en premier. Alors qu’une tranche d’un disque « exclusif » partira d’un bloc zéro et d’une piste zéro.

Comme déjà mentionné, toutes ces informations se réfèrent au disque avec le système de fichiers racine. Pour obtenir des informations similaires pour d'autres lecteurs, le nom de fichier du périphérique correspondant doit être explicitement spécifié comme argument de la commande fdisk. Par exemple,

$ fdisk /dev/ar0

les fournira pour le lecteur connecté au connecteur IDE-RAID du contrôleur. Cette information peut paraître redondante. Cependant, en utilisant fdisk, vous pouvez afficher des informations plus concises (et en même temps uniquement essentielles). A quoi sert l'option -s ? En réponse à la commande

$ fdisk -s /dev/ad#

nous ne recevrons que la chose la plus importante : le nom du fichier de l'appareil, le nombre de cylindres, de têtes et de secteurs, ainsi que de brèves informations uniquement sur les tranches existantes (c'est-à-dire non marquées comme INUTILISÉES) - secteur de départ, taille de tranche, système de fichiers identifiant de type et indicateur d’activité. C'est-à-dire approximativement sous la forme suivante :

/dev/ad0 : 155061 cyl 16 hd 63 sec Partie Début Taille Type Indicateurs 1 : 0 156301488 0xa5 0x80

Tout ce qui a été dit avait uniquement pour but d'obtenir des informations. Afin d'effectuer des actions de partitionnement de disque actif à l'aide de fdisk, vous devez vous familiariser avec ses autres options. Il n'y en a pas beaucoup, et la plus importante est peut-être l'option -I. Inclus dans l'équipe

$ fdisk -I /dev/ar0

il créera cependant la première et unique tranche sur le disque, en mode de compatibilité, c'est-à-dire à partir du secteur 63. Évidemment, si le disque a été précédemment partitionné d'une manière ou d'une autre et contenait des données, la configuration précédente du disque et son contenu seront irrémédiablement détruits. Cependant, ce comportement est typique de tous les utilitaires de partitionnement de disque sur n'importe quel système d'exploitation. Certes, contrairement à l'utilitaire Linux du même nom, Free fdisk répartit le disque immédiatement. Et d'ailleurs, ici on ne nous demandera même pas de confirmer nos actions, il faut donc être prudent.

Mais de nombreuses questions suivront lors de l'utilisation de l'option -i, qui vous permet de partitionner le disque de manière interactive. Donné avec le nom du fichier de périphérique comme argument, c'est-à-dire sous la forme

$ fdisk -i /dev/ar0

Tout d'abord, il nous rappellera quel disque a été abusé et nous indiquera ses paramètres (à la fois ceux enregistrés dans le Disk Label et ceux lus depuis le BIOS - dans le cas général, ils ne doivent pas nécessairement correspondre) :

******* Travailler sur le périphérique /dev/da0 ******* les paramètres extraits de l'étiquette du disque interne sont : cylindres = 124 têtes = 64 secteurs / piste = 32 (2048 blks / cyl) paramètres à utilisés pour les calculs du BIOS sont : cylindres = 124 têtes = 64 secteurs/piste = 32 (2048 blks/cyl)

Et il nous demandera immédiatement si nous voulons corriger la géométrie du BIOS du disque. La réponse par défaut (non) est évidente s'il n'y a pas de message concernant la « mauvaise » géométrie du BIOS, qui coïncide également avec la géométrie décrite dans l'étiquette du disque. Mais si une « mauvaise » géométrie se produit, cela vaut la peine d’y réfléchir.

Le moyen le plus simple est de le laisser tel quel - cela ne posera probablement aucun problème. Cependant, vous pouvez corriger la situation manuellement dans un souci de commande. Pour ce faire, vous devez d'abord répondre positivement à la question ci-dessus, après quoi il vous sera demandé de saisir séquentiellement tous les paramètres spécifiés - le nombre de cylindres, de pistes et de secteurs. La confirmation de la légalité de ces actions peut être obtenue plus tard - en vérifiant avec celles de sysinstall.

Le premier divertissement après correction de la géométrie (ou à sa place) en équipe

$ fdisk -i /dev/ar0

Il s'agit d'une création manuelle de tranches (compte tenu du balisage existant, il nous sera d'abord demandé si nous le souhaitons - avec une réponse négative par défaut). Pour cela, l'identifiant du type de système de fichiers est d'abord demandé (la valeur par défaut est existante si le disque a été partitionné, ou 0 pour un nouveau disque) - sa valeur décimale doit être précisée (165 pour une tranche FreeBSD). Ensuite - le secteur de départ (0 - pour le partitionnement "exclusif", 63 - pour le partitionnement en mode compatibilité), et la taille de la tranche en blocs (si vous utilisez l'intégralité du disque, évidemment, elle sera égale au nombre total d'entre eux , sinon quelques calculs arithmétiques seront nécessaires ).

Après cela, il vous sera demandé de préciser précisément le début et la fin de la tranche. Si vous refusez, elles seront reprises des définitions précédentes ; si vous êtes d'accord, vous devrez indiquer le premier et le dernier cylindre, culasse, secteur. Qui sera affiché sous la forme

Sysid 165 (0xa5), (FreeBSD/NetBSD/386BSD) début 0, taille 260 000 (126 Mo), drapeau 0 début : cyl 0/tête 0/secteur 1 ;

fin : cyl 126/ tête 60/ secteur 32

Confirmer vos actions avec une réponse positive à la question

Sommes-nous satisfaits de cette entrée ? [New York

vous pouvez passer à la création de la deuxième section

Selon le même schéma que le premier. Il est clair que si une seule tranche est créée, vous devez refuser de modifier les entrées potentielles restantes de la table de partition - dans ce cas, elles resteront marquées comme inutilisées. Dans tous les cas, la dernière question sera posée - confirmation d'exécution :

- selon le même schéma que le premier. Il est clair que si une seule tranche est créée, vous devez refuser de modifier les entrées potentielles restantes de la table de partition - dans ce cas, elles resteront marquées comme inutilisées. Dans tous les cas, la dernière question sera posée - confirmation d'exécution :

Si la réponse est positive, toutes les modifications apportées prendront effet (et vous pourrez dire au revoir à son contenu sur le disque précédemment marqué). Vous devez donc prévisualiser tout ce qui a été saisi précédemment (heureusement, dans FreeBSD, cela est facile à faire en faisant défiler le tampon de l'historique de la console virtuelle) et si une erreur est détectée, annulez les modifications et exécutez à nouveau la commande fdisk. Cependant, vous pouvez en sortir à tout moment sans conséquences et de la manière standard - avec une combinaison de touches Contrôle+C.

En général, créer de manière interactive une seule tranche "exclusive" avec fdisk (et une seule tranche "compatible" est plus facile à créer avec l'option -I) n'est pas si mal. Si vous avez besoin de plusieurs tranches, vous devrez vous armer d'une calculatrice (FreeBSD en possède une - bc, lancée depuis la ligne de commande, très simple et facile à utiliser).

Bien qu'il existe une autre façon de créer des tranches - en décrivant au préalable leurs paramètres, et en même temps la géométrie du disque, dans un fichier (dans un fichier texte ordinaire, en utilisant n'importe quel éditeur habituel). Après quoi le programme fdisk est lancé sous la forme

$ fdisk -f fichier de configuration /dev/ad#

Et en ajoutant l'option -t, vous pouvez d'abord tester l'exactitude de votre balisage sans écrire de modifications sur le disque. Cependant, je ne l'ai pas fait moi-même, laissant le soin à ceux qui souhaitent le faire eux-mêmes : toutes les informations nécessaires, y compris le format du fichier de configuration, se trouvent dans man (8) fdisk.

Enfin, pour partitionner un disque en mode exclusif, vous pouvez vous passer du tout de la commande fdisk : il suffit de réinitialiser ses blocs initiaux à l'aide de la commande dd, qui effectue ce qu'on appelle. copie avec conversion. Il nécessite deux arguments : le nom du fichier en cours de copie (if - fichier d'entrée) et le nom de fichier du périphérique sur lequel il est copié (of - fichier de sortie). Vous pouvez également définir la taille du bloc de données copiées et son nombre. Autrement dit, dans notre cas, cela ressemblera à ceci :

$ dd if=/dev/zero of=/dev/ad# bs=1k count=1

$ jj si=/dev/zéro de=/dev/ad# count=2

Dans les deux cas, /dev/zero est compris comme ce qu'on appelle un périphérique « zéro » et /dev/ad# est le disque partitionné ; des options supplémentaires indiquent que les deux premiers blocs physiques de celui-ci doivent être remplis de zéros.

Disposition des partitions

Une tranche créée avec fdisk, qu'elle soit « exclusive » ou « compatible », est déjà utilisable - un système de fichiers peut être créé directement dessus. Cependant, il est généralement d'abord divisé en sections logiques (ou au moins une section est créée, ad#s1c , qui décrit la tranche entière). Auparavant, l'utilitaire disklabel servait à cet effet, mais dans la version 5.1, il a été remplacé par le programme bsdlabel emprunté à NetBSD (avec une interface plus conviviale, comme disent les optimistes). Bien que disklabel puisse être trouvé dans le répertoire /sbin, il ne s'agit que d'un lien physique vers le même fichier exécutable que bsdlabel. Cela peut être facilement vérifié en regardant les identifiants des deux fichiers :

$ ls -l /sbin/bsdlabel /sbin/disklabel -r-xr-xr-x 2 roue racine 27348 23 février 22:42 /sbin/bsdlabel* -r-xr-xr-x 2 roue racine 27348 23 février 22 : 42 /sbin/étiquette de disque*

ayant des valeurs égales (27348).

Encore une fois, lancé sans options (mais avec un argument obligatoire sous la forme du nom du fichier de périphérique - la tranche), bsdlabel sert uniquement à informer sur l'état des choses, en affichant quelque chose comme ce qui suit pour une tranche étiquetée sous FreeBSD :

$ bsdlabel /dev/ad0 # /dev/ad0 : 8 partitions : # size offset fstype a : 524288 0 4.2BSD 2048 16384 32776 b : 2074624 524288 swap c : 156301488 0 inutilisé 0 0 0 # partie "brute", à ne pas faire modifier d : 524288 2598912 4.2BSD 0 0 0 e : 10240000 3123200 4.2BSD 0 0 0 f : 142938288 13363200 4.2BSD 0 0 0

Pour la conclusion ci-dessus, quelques commentaires seraient utiles. Les lettres de gauche sont les désignations des lettres des partitions existantes, pour chacune desquelles sont données : la taille (taille) en blocs, le décalage du premier bloc depuis le début du disque, c'est-à-dire le secteur zéro (décalage) , le type de système de fichiers et ses paramètres : taille des fragments, taille des blocs, densité des enregistrements - tout cela sera discuté dans la section sur le système de fichiers FreeBSD ; Pour l'instant, il convient de noter qu'un bloc de système de fichiers est un bloc logique, et ce n'est pas du tout la même chose qu'un bloc de disque physique. Pour l'instant, nous ne ferons pas attention au fait que les colonnes correspondantes de toutes les partitions sauf a contiennent des zéros.

Parmi les partitions, celle marquée de la lettre c est remarquable : c'est le même « conteneur » pour les partitions restantes (une analogie lointaine est la partition étendue DOS). Il est clair que son décalage est nul et que sa taille est égale au nombre total de blocs de disque physique. Pour les autres sections, le décalage est facilement calculé (par exemple, à l'aide du calculateur bc) en additionnant le décalage de la section précédente avec sa taille.

L'exemple ci-dessus fait référence à un disque « exclusif » - c'est pourquoi nous voyons un décalage zéro de la première partition et de la « tranche » c. Pour un disque partitionné en mode de compatibilité, l'image ressemblera à ceci :

# /dev/ad0s1 : 8 partitions : # size offset fstype a : 524288 63 4.2BSD 2048 16384 32776 c : 16771797 63 inutilisé 0 0 # partie "brute", ne pas modifier d : 524288 524351 4.2BSD 2048 16384 3 2776e : 524288 1048639 4.2BSD 2048 16384 32776 f: 1048576 1572927 4.2BSD 2048 16384 8 g: 14150357 2621503 4.2BSD 2048 16384 28552

Autrement dit, vous pouvez voir que la première partition d'un disque partitionné « normalement » est décalée par rapport à son début de 63 blocs réservés.

Ce n'est pas une coïncidence si le champ fstype de la section c contient la valeur inutilisée - il ne peut être utilisé pour aucun stockage de données. Cependant, seul cela est disponible sur le support fraîchement partitionné à l'aide de fdisk. Comment créer les partitions nécessaires restantes ?

Curieusement, l'un des moyens est extrêmement simple : via un éditeur de texte classique. Pour ce faire, bsdlabel est lancé avec l'option -e et l'argument - le nom de fichier de la tranche étiquetée :

$ bsdlabel -e /dev/ad0s1

En réponse, l'éditeur défini dans la variable EDITOR du fichier de profil superutilisateur sera appelé (il est inutile de rappeler que toutes les opérations sur les disques, tranches et partitions sont effectuées uniquement pour le compte de root s'il est absent, un tel éditeur) ; sera /usr/bin/vi Et dans cet éditeur, nous verrons ce qui suit :

# /dev/da0 : 8 partitions : # size offset fstype c : 254787 0 inutilisé 0 0 # partie "brute", ne pas modifier

Si vous ne prévoyez pas de placer le système de fichiers racine sur cette tranche, pour créer une seule partition il suffira d'ajouter (en utilisant les outils d'édition les plus courants) une ligne comme

D:2547870 4.2BSD

dans le cas d'un disque "exclusif", ou

D : 254787 63 4.2BSD

pour un disque partitionné en mode compatibilité.

Et - quittez l'éditeur avec sa commande habituelle, en enregistrant les modifications (dans le cas de vi - :wq), en réponse à quoi nous serons informés que

Fichier /tmp/EdDk.KvEGsqRNsh enregistré.

La prochaine fois que bsdlabel sera appelé pour la même tranche, mais sans options, l'image sera la suivante :

# /dev/da0 : 8 partitions : # size offset fstype c: 254787 0 inutilisé 0 0 # partie "brute", ne pas modifier d: 254787 0 4.2BSD 0 0 0

Autrement dit, vous pouvez voir que la partition « de travail » a été créée avec succès.

Pour créer plusieurs partitions, y compris la racine et pour le swap, nous avons encore besoin d'une arithmétique similaire à celle utilisée dans le mode interactif du programme fdisk, c'est-à-dire que chaque partition, commençant par a, doit recevoir la valeur du décalage initial (le). le premier correspond au bloc initial de la tranche entière, le reste - la somme du décalage et la taille du précédent), la taille (encore une fois en blocs), le type de système de fichiers (pour les partitions "de travail" - 4.2BSD, pour la partition d'échange - swap). Les champs des paramètres du système de fichiers peuvent être laissés vides - dans ce cas, les paramètres du système de fichiers seront déterminés lors de sa création (c'est-à-dire lors du « formatage », en termes DOS, de la partition).

À ce stade, la question des tranches et de la partition peut, en première approximation, être considérée comme close. Bien entendu, les partitions créées ne sont toujours pas utilisables - des systèmes de fichiers doivent d'abord y être créés. Ou, comme le disent les « appuis de fenêtre », formatez-les. C'est ce que nous ferons dans un avenir très proche. Mais déjà - dans la section suivante...

J'attire souvent l'attention sur le fait que les questions simples sont souvent mal abordées sur Internet. C'est probablement parce que tous les gourous sont sûrs que personne ne posera jamais de questions aussi stupides, car tout le monde le sait. Mais ma pratique a montré que ce sont précisément ces petites questions simples qui sont les plus courantes non seulement parmi les débutants, mais aussi parmi les administrateurs sérieux qui n'ont tout simplement pas eu à y faire face. Même les administrateurs sérieux ne le font pas tous les jours, mais, pour ne pas oublier, ils gardent pour eux une sorte d'aide-mémoire, sans l'admettre à personne. Réparons tout. Vous allez maintenant apprendre à ajouter un disque dur à FreeBSD en 5 minutes. Donc. Tout d'abord, des instructions complètes seront données pour comprendre le processus, et à la fin, il y aura une courte liste d'actions, qui ne contiendra qu'une liste de commandes sous forme d'aide-mémoire.

Instructions détaillées avec explications

Sélection d'un nom de disque dur

Nous devons d’abord déterminer le nom de l’appareil que nous venons d’ajouter. La commande suivante nous y aidera :

Liste des disques Geom

Ou cette commande :

Liste des développeurs de Camcontrol

Dans un système réel, ces commandes afficheront des informations plus utiles, à savoir les noms des appareils et les numéros de série.

Avant d'installer le nouveau périphérique, nous savions que notre système était installé sur ada0, ce qui signifie, logiquement, que notre nouveau disque est ada1. Vous pouvez le déterminer par le nom du nouvel appareil, son numéro de série ou son volume.

Vérifions maintenant s'il y a un marquage sur notre nouveau disque

Gpart montrer ada1

Le disque ne porte aucune marque.

Supprimer le balisage existant

Si le disque a déjà été utilisé et qu'il est nécessaire d'en supprimer les marquages, exécutez simplement :

Gpart détruire -F ada1

Création d'un balisage GPT

Tout d'abord, nous devons créer une partition de disque. Je recommande fortement d'oublier le MBR et de passer à un nouveau, plus pratique et fonctionnel - GPT.

Nous créons un balisage GPT sur le disque, puis vérifions ce qui se passe :

Gpart create -s gpt /dev/ada1 gpart show ada1

Notre disque est désormais balisé GPT. À partir de la sortie, vous pouvez voir que l'intégralité du disque, à partir de LBA 34 et se terminant par LBA 8388541, est vide. LBA 0−33 - réservé par le système pour la table de partition.

Disons que nous devons créer deux partitions sur ce disque :

  • échanger- échanger la partition
  • données- une section de type ufs pour stocker toutes les données dont nous avons besoin.

Création de sections (tranches)

Si l'installation est effectuée sur des disques durs modernes d'une taille de secteur de 4 Ko, l'alignement doit être utilisé lors de la création de partitions. Vous pouvez le faire de deux manières : 1) si nous spécifions les paramètres de section en blocs, alors saisissons le numéro de bloc sous la forme d'un multiple de 8, par exemple : -b 40; 2) si nous indiquons la taille de la partition en octets, ou n'indiquons pas du tout le début et la taille, utilisez le paramètre -un 4k, qui ajustera le début et la fin de la section à des secteurs de 4 Ko. Puisque dans cet exemple nous effectuons une installation test sur un disque dur virtuel, nous n’avons pas à le faire. Dans tous les cas, avant de créer des partitions, vous devez connaître exactement la taille des secteurs de votre disque, sinon cela entraînera de terribles ralentissements de travail.

Créons maintenant les partitions. Pour ce faire, il existe une commande gpart add avec différents paramètres. Premier paramètre -t- indique le type de système de fichiers en cours de création. Dans notre cas, deux types seront utilisés : freebsd-swap et freebsd-ufs. Viennent ensuite deux paramètres facultatifs : -b- indique le numéro LBA à partir duquel la partition doit être créée. Si vous ne précisez pas ce paramètre, la partition sera créée automatiquement à partir du premier LBA libre. -s- indique la taille de la partition dans le LBA. Taille d'un bloc LBA = 512 octets. Il est conseillé d'indiquer en nombre de blocs LBA, mais c'est également possible en kilo/méga/giga/… octets (suffixe k/M/G). Si vous ne spécifiez pas ce paramètre, la partition sera créée au maximum de LBA possible dans la zone vide. Vous pouvez également spécifier le libellé de la section en tant que paramètre, par exemple : -l échange1- dans ce cas, le label /dev/gpt/swap1 sera créé, qui pourra être utilisé pour accéder plus facilement à la partition. Le dernier paramètre obligatoire est le chemin d'accès au disque. Dans notre cas : /dev/ada1.

Créons deux partitions et voyons ensuite ce que nous avons. Nous allons créer la première partition sans préciser le LBA initial, mais en précisant la taille de 1 Go (2097152 blocs). Nous allons créer la deuxième partition sans préciser le LBA initial et sans préciser la taille - elle sera ainsi créée sur tout l'espace libre.

Gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1 gpart show ada1

La taille peut être spécifiée en octets plutôt qu'en blocs. C'est beaucoup plus pratique. Le seul point négatif est que le système ne peut pas toujours calculer correctement le nombre de blocs. Il peut arriver qu'un certain nombre de blocs restent vides sur le disque lors de la spécification de la taille de la partition en octets.

Création d'un système de fichiers (formatage)

Il n'est pas nécessaire de formater les partitions de swap. Mais les partitions comme ufs doivent être formatées avant utilisation. Il serait plus correct de dire : un système de fichiers devrait être créé sur eux.

Afin de créer un système de fichiers sur la deuxième partition, exécutez simplement la commande suivante :

Newfs -U /dev/ada1p2

Dans ce cas, le paramètre -U a été utilisé - il indique que le mécanisme de mises à jour logicielles doit être utilisé dans ce système de fichiers. Vous pouvez omettre cette option pour éviter d'activer ce mécanisme.

Montage

L'étape suivante consiste à monter les partitions. Tout d'abord, pour ne pas oublier, ajoutons nos nouvelles sections dans /etc/fstab. Mon fichier après édition ressemble à ceci :

Afin de remonter toutes les partitions selon le fichier /etc/fstab, exécutez simplement la commande :

Monter -a

Comme vous pouvez le voir sur le résultat, la partition /dev/ada1p2 est montée. Voyons maintenant ce qui est arrivé à la section SWAP. Exécutons la commande :

Comme vous pouvez le constater, la nouvelle partition SWAP n'est pas montée. Pour que SWAP soit monté, vous devez l'activer avec une commande spéciale :

Swapon /dev/ada1p1

De la même manière, à l'aide de la commande swapoff, vous devez désactiver la partition SWAP avant d'effectuer toute action dessus.

Ceci termine toutes les étapes pour ajouter un nouveau disque dur au système.

Brèves instructions

Donné: disque dur /dev/ada1

Cible: Supprimez la partition existante, créez une nouvelle partition GPT, créez deux partitions : swap et data et connectez-les au système de travail.

Après chaque action, faites spectacle gpart pour observer le résultat. Séquence d'actions :

  1. Supprimer la partition existante : gpart destroy -F ada1
  2. Créez une nouvelle partition : gpart create -s gpt /dev/ada1
  3. Créez deux partitions : swap et data : gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Créer un système de fichiers UFSv2 sur la deuxième partition : newfs -U /dev/ada1p2
  5. Ajoutez des lignes au fichier /etc/fstab pour le montage automatique au démarrage : /dev/ada1p1 none swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Montez une nouvelle partition (la commande monte toutes les partitions à partir du fichier /etc/fstab) : mount -a
  7. Activez la nouvelle partition swap avec la commande : swapon /dev/ada1p1

Ceci termine la configuration.

Installez FreeBSD 10 en quelques minutes (installation étape par étape)

FreeBSD est un système d'exploitation gratuit. Modification moderne d'UNIX. L'un des systèmes les plus fiables, parfait pour administrer un réseau local, tel qu'un serveur d'accès, un serveur de messagerie, un serveur de fichiers, un serveur de noms et bien plus encore. Ce n’est pas pour rien que Mac OS a finalement été créé sur cette base. Il est également possible d'installer un shell graphique ou d'utiliser une solution toute faite pour le projet PCBSD.

1. Sélection d'une distribution, préparation du support d'installation
2. Début de l'installation, partitionnement du disque
3. Sélection et installation des composants

FreeBSD est avant tout un système réseau et pour de meilleures performances, il ne dispose pas (par défaut) de shell graphique. L'essence même du travail dans ce système se résume à l'édition des fichiers nécessaires, à l'installation de programmes, à l'activation de fonctions et à la saisie de commandes.

Et lorsque vous configurez le système en fonction de vos besoins, il ne vous décevra pas. Personnellement, en travaillant avec (2 ans), je n'ai observé aucune panne, problème ou charge sur l'équipement.

Sélection d'une distribution, préparation du support d'installation

Sur le site officiel, vous pouvez sélectionner la version du système d'exploitation, la profondeur de bits et la plate-forme (amd64, i386, powerpc, sparc).

Après avoir sélectionné la plateforme, une liste d'options d'installation s'ouvrira (CD, DVD, serveurs FTP, MS DOS, disquettes et même bandes magnétiques).

Bien sûr, il vaut mieux ne pas « jouer avec un tambourin » et télécharger le kit de distribution pour disques CD ou DVD et graver le disque d'installation à l'aide des programmes : Alcohol120%, UltraISO ou tout autre programme de gravure d'un disque d'installation.

Début de l'installation, partitionnement du disque

Nous démarrons à partir du disque d'installation et le menu du chargeur de démarrage FreeBSD démarre. Vous pouvez attendre 10 secondes que le programme d'installation démarre automatiquement ou cliquer sur Entrer ou 1.

L'écran affichera de nombreuses lignes d'équipements spécifiques. Vous pouvez le visualiser en cliquant sur le bouton Verrouillage du défilement, faire défiler les pages à l'aide des boutons Page précédente et Page suivante.

Après avoir identifié et testé le matériel, la fenêtre de bienvenue de l'installation de FreeBSD apparaîtra. Cliquez Installer


Dans la fenêtre de sélection de la disposition du clavier, laissez la valeur par défaut ou sélectionnez une disposition appropriée.



doc- documentation du système

jeux- des jeux

ports- ports pour installer des programmes

src- noyau du système

Habituellement, je ne laisse que src, puisque je n'ai pas besoin de documentation, de jeux non plus, nous installerons et mettrons à jour les ports après avoir installé le système, car la version la plus récente est mise à jour via Internet. Le noyau peut également être installé ultérieurement.


Nous décidons des tranches (c’est ainsi qu’on appelle les partitions dans FreeBSD) du disque dur. Nous pouvons choisir l’option de créer automatiquement des partitions ou créer nous-mêmes les partitions dont nous avons besoin.


L'éditeur de sections a créé automatiquement trois zones :

ada0p1 512 Ko démarrage gratuit- zone du chargeur de démarrage. C'est suffisant, il n'en faut pas plus

ada0p2 19 Go gratuitsbsd-ufs/- partition racine du système d'exploitation. Tout l'espace restant est réservé au système et aux fichiers avec lesquels vous travaillerez. En fait, il n'a besoin que de 1 Go de mémoire, à condition que d'autres partitions soient créées et que seuls des travaux soient effectués sur celles-ci.

Pour les experts : Il est d'usage de créer d'autres partitions en plus d'une partition racine :

/var- contient des fichiers et des journaux temporaires et en constante évolution.

/usr- contient des fichiers avec les programmes installés et d'autres éléments.

/données- dans cette section j'avais par exemple les fichiers du site.

ada0p3 1,0 Go freebsd-swap aucun- fichier d'échange. Sa taille dépend de la quantité de RAM. Si cela ne suffit pas, disons 1 Go, il est alors conseillé de définir une taille de fichier d'échange deux fois plus grande. S'il y a beaucoup de RAM, le fichier d'échange peut être défini sur une quantité égale à la quantité de RAM, voire inférieure.


Appuyez sur le bouton Finition, confirmez les modifications acceptées Commettre et l'installation du système FreeBSD commence.


Après l'installation, vous êtes invité à saisir votre mot de passe deux fois. Les caractères que vous saisissez ne sont pas affichés.


Sélection et installation des composants

Après cela, vous êtes invité à configurer la ou les cartes réseau pour accéder au réseau. Contrairement à Linux, où toute carte réseau est appelée eth, sous FreeBSD, la carte réseau peut être appelée différemment selon le fabricant.


Nous sélectionnons la version du protocole Internet, la quatrième version d'IPv4 ou la sixième version d'IPv6. Ensuite, vous configurez le réseau via DHCP ou enregistrez l'adresse IP, le masque de sous-réseau et la passerelle.


Nous réglons l'heure en fonction de l'heure de la machine locale ou sélectionnons notre fuseau horaire.


Nous sélectionnons les services qui démarreront au démarrage de FreeBSD. Laisser par défaut.


Vous pouvez ajouter des utilisateurs supplémentaires, leur attribuer des droits et leurs répertoires. Vous pourrez faire tout cela plus tard.


L'installation est presque terminée et vous souhaiterez peut-être reconfigurer ou ajuster certains paramètres avant la fin.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :