L'utilitaire 'format' dans le système d'exploitation SolarisGreg (shoe) Schuweiler, novembre 2004 Pour beaucoup, un disque dur est une "boîte noire" considéré comme un petit périphérique qui stocke des données, des programmes et/ou un système d'exploitation. Cette approche n'est pas critiquable, dans la mesure bien entendu où cela résume votre intérêt. Mais en qualité d'administrateur système, l'une de vos principales préoccupations doit être la protection des données. Une autre préoccupation dans la catégorie des hautes priorités doit être le mouvement efficace des données entre la mémoire et le disque physique. Dans cet article, je souhaite étudier l'un des utilitaires de base disponible dans le SE Solaris :
L'utilitaire
Parallèlement à Un autre avertissement : les commandes non destructives le sont, mais il vous appartient de décider de les exécuter ou non sur votre système. Les commandes destructives détruisentles données d'un disque ; ne les exécutez que si vous êtes certain de savoir ce que vous faites. Voici les commandes que j'utilise dans cet article : Étiquette de disque Liste des défauts : Table de partition : Gardez les points suivants à l'esprit en lisant cet article :
J'espère que vous avez un système muni d'un disque avec lequel vous pouvez jouer, car j'aimerais que cet article soit interactif. Choisissez tout d'abord le disque que vous allez utiliser avec r_gps@holstein: format Searching for disks...done AVAILABLE DISK SELECTIONS: 0.c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot /pci@1f,4000/scsi@3/sd@0,0 1.c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home /pci@1f,4000/scsi@3/sd@1,0 2.c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> trashme /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0 Specify disk (enter its number): Vous pouvez tapez 'quit' pour quitter ou sauvegarder un menu ou <Cntrl-D>, qui ferme complètement l'utilitaire « Warning: echo "adios data" | dd of=/dev/dsk/c2t1d0s2 bs=1 count=512 » Ainsi, la commande
r_gps@holstein: format
Searching for disks...done
c2t1d0: configured with capacity of 33.92GB
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot
/pci@1f,4000/scsi@3/sd@0,0
1. c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home
/pci@1f,4000/scsi@3/sd@1,0
2. c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
Specify disk (enter its number): 2
selecting c2t1d0
[disk formatted]
Disk not labeled. Label it now?
Ici, vous tapez 'y' si vous souhaitez étiqueter le disque, ce qui est une bonne idée car il devient ainsi utilisable pour le SE Solaris. Quittez ensuite la commande r_gps@holstein: prtvtoc /dev/dsk/c2t1d0s2 * /dev/dsk/c2t1d0s2 partition map * * Dimensions: * 512 bytes/sector * 107 sectors/track * 27 tracks/cylinder * 2889 sectors/cylinder * 24622 cylinders * 24620 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 0 262899 262898 1 3 01 262899 262899 525797 2 5 01 0 71127180 71127179 6 4 00 525798 70601382 71127179 Vous pouvez obtenir un certain nombre d'informations similaires à partir de la commande r_gps@holstein: format /dev/rdsk/c2t1d0s2
A l'invite Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0 partition>
Nous avons certaines de ces informations, comme avec la commande r_gps@holstein: dd if=/dev/dsk/c2t1d0s2 of=wart.bin bs=512 count=1 1+0 records in 1+0 records out
Nous obtenons ainsi un fichier binaire sur lequel nous pouvons utiliser la commande r_gps@holstein: od -x wart.bin 0000000 5355 4e33 3647 2063 796c 2032 3436 3230 0000020 2061 6c74 2032 2068 6420 3237 2073 6563 0000040 2031 3037 0000 0000 0000 0000 0000 0000 0000060 0000 0000 0000 0000 0000 0000 0000 0000 * 0000200 0000 0001 0000 0000 0000 0000 0008 0002 0000220 0000 0003 0001 0005 0001 0000 0000 0000 0000240 0000 0000 0000 0004 0000 0000 0000 0000 0000260 0000 0000 0000 0000 0000 0000 600d deee 0000300 0000 0000 0000 0000 0000 0000 0000 0000 * 0000640 0000 0000 2729 602e 0000 0000 0000 0001 0000660 602c 0002 001b 006b 0000 0000 0000 0000 0000700 0004 02f3 0000 005b 0004 02f3 0000 0000 0000720 043d 508c 0000 0000 0000 0000 0000 0000 0000740 0000 0000 0000 0000 0000 0000 0000 00b6 0000760 0435 4aa6 0000 0000 0000 0000 dabe 4297 0001000
Le vidage octal contient beaucoup d'informations, et un excellent document Sun aborde ce sujet -- Je ne souhaite pas dupliquer ces informations. Recherchez le Document 74087 dans SunSolve. Il convient de noter que
r_gps@holstein: format /dev/rdsk/c2t1d0s2
selecting /dev/rdsk/c2t1d0s2
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format>
J'aime donner à chaque disque un nom de volume pour mieux personnaliser le système. Ceci est également très utile si vous avez plusieurs systèmes pointant vers les mêmes unités de disque, ce qui peut être le cas dans un cluster haute disponibilité. J'ai vu plus de 120 disques présentés par deux moteurs RAID, tous visibles par 15 systèmes dans un cluster VERITAS. Attribuer un nom de volume à chaque disque aide à identifier ceux qui ont déjà été utilisés. Les disques sans nom de volume son inutilisés. A noter lorsque vous utilisez l'option de menu format> volname Enter 8-character volume name (remember quotes)[""]:"pigsnot" Ready to label disk, continue? y format>
L'option
L'option
format> disk
AVAILABLE DISK SELECTIONS:
0. /dev/rdsk/c2t1d0s2 <SUN36G cyl 24620 alt 2 hd 27 sec 107> pigsnot
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
Specify disk (enter its number)[0]:
L'option Current Disk = c2t1d0: pigsnot <SUN36G cyl 24620 alt 2 hd 27 sec 107> /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
L'option r_gps@holstein: ls /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0* /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h,raw Le nom du périphérique physique avec le terme "raw" est le périphérique de caractère, et l'autre de périphérique de bloc. La lettre 'a' correspond à la partition 0, la lettre 'b' à la partition 1, et ainsi de suite.
L'option
L'option
L'option format> verify Primary label contents: Volume name = < pigsnot> ASCII name = <SUN36G cyl 24620 alt 2 hd 27 sec 107> pcyl = 24622 ncyl = 24620 acyl = 2 nhead = 27 nsect = 107 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0
L'option
#
# New disk/partition type saved on Fri Aug 6 06:34:05 2004
#
disk_type = "SUN36G" \
: ctlr = SCSI : ncyl = 24620 : acyl = 2 : pcyl = 24622 \
: nhead = 27 : nsect = 107 : rpm = 10025
...
Enfin, l'option format> inq Vendor: FUJITSU Product: MAN3367M SUN36G Revision: 1502 format> Le niveau de révision doit être noté. Les mises à jour du microprogramme ressortent pour les unités de disque. Cette option vous permet de comparer les niveaux de révision de vos disques avec ce qui est disponible auprès du fournisseur. J'ai eu des fournisseurs qui mettent à jour le microprogramme sur les disques de leurs grandes baies RAID, mais ils le font à la volée. J'ai mis à jour le microprogramme sur des disques SCSI une ou deux fois, il y a longtemps. Mais je ne le fais plus -- principalement en raison du nombre de disques dans les environnements actuels et du temps total d'indisponibilité nécessaire. (Et de ce vieil adage, "Ne pas réparer quelque chose qui fonctionne," parfois très sensé.) Je n'ai pas trouvé comment faire la mise à niveau sans temps d'indisponibilité. Pour le moment.
L'un des côtés plaisants de la commande defect both dump /disks/c2t1d0-defect.dat r_gps@holstein: format -f c2t1d0.cmd /dev/rdsk/c2t1d0s2
Mais en raison de la puissance destructive de la commande
Avertissement : J'ai reproduit le menu
r_gps@holstein: format /dev/rdsk/c2t1d0s2
selecting /dev/rdsk/c2t1d0s2
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format>
L'option Les unités pour lesquelles nous devions pratiquer ainsi s'appelaient IPI et SMD. Essayez de faire une recherche sur Google avec unité de 'disque ipi smd' pour connaître l'historique et découvrir où vous pouvez encore acheter ce type d'unités si cela vous intéresse.
L'option Un domaine dans lequel je ne suis pas du tout d'accord avec Sun commence maintenant à émerger. Par exemple, dernièrement Sun et les ingénieurs Sun Systems (SE) que je connais ont recommandé une partition racine et une autre partition pour tout le reste sur le disque système. Balivernes ! Chaque tranche d'un disque est considérée comme un disque séparé par le SE ; alors avant de partitionner notre disque d'essai, voyons pourquoi je ne suis pas d'accord avec Sun sur ce point. Vous n'êtes pas obligés d'être d'accord avec moi -- vous pouvez même rédiger votre propre article !
Qu'advient-il si Le système d'exploitation considère chaque partition comme un système de fichier distinct. Cela signifie qu'il crée un cache et des tampons pour chacun de ces systèmes de fichiers. Les caches et les tampons supplémentaires répartissent un peu la charge des E/S. Oui, vous êtes limité par la sauvegarde, la vitesse d'interconnexion et le contrôleur du disque. Mais dans les périodes lourdes d'E/S, vous risquez beaucoup moins de rencontrer des problèmes. OK, je cesse mon cours magistral nous continuons avec le menu Partition. Il ouvre un autre menu qui se présente comme suit :
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
!<cmd> - execute <cmd>, then return
quit
La méthode la plus facile que je connaisse pour travailler avec une partition est la suivante : une fois dans le menu Partition, j'appuie juste sur la touche 'P' pour l'option Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0
Il s'agit de la table de partition par défaut que nous devons modifier, en nous rappelant que nous ne voulons absolument pas de partitions se chevauchant. L'option
Lorsque vous entrez
partition> modify
Select partitioning base:
0. Current partition table (original)
1. All Free Hog
Choose base (enter number) [0]?
Par défaut, vous allez modifier la partition courante, c'est parfait. La différence est très faible une fois l'opération terminée. Lorsque vous sélectionnez la table Current partition, l'utilitaire
Si je choisis de ne pas utiliser l'option partition> 0 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 Enter partition id tag[root]: Enter partition permission flags[wm]: Enter new starting cyl[0]: Enter partition size [262899b, 91c, 90e, 128.37mb, 0.13gb]: 256mb Vous pouvez aussi saisir un '?' au niveau de la balise id et les questions de l'indicateur d'autorisation, et obtenir des réponses acceptables. Si j'appuie à nouveau sur la touche 'P', nous constatons que j'ai un problème à résoudre. Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 256.74MB (182/0/0) 525798 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 ...La partition 0 chevauche la partition 1. A mesure que vous créez vos partitions, vérifiez qu'aucune d'entre elles n'en chevauche une autre. Le nombre de partitions que vous créez et leur taille dépendent de votre site, de vos besoins, de vos expériences, etc. Une fois terminé, j'obtiens ceci : Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 56.74MB (182/0/0) 525798 1 swap wu 182 - 272 128.37MB (1452/0/0) 4194828 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 3540 - 4265 1.00GB (726/0/0) 2097414 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 4266 - 4991 1.00GB (726/0/0) 2097414 6 usr wm 273 - 2087 2.50GB (1815/0/0) 5243535 7 var wm 2088 - 3539 2.00GB (1452/0/0) 4194828
Nous devons toujours écrire la table de partition. Pour cela, nous tapons simplement
Vous n'avez pas réellement besoin d'utiliser l'option
L'option
Je pense en avoir écrit plus qu'assez sur l'option
L'option
N'était-ce pas distrayant ? Formater et partitionner une paire de disque ne pose pas de problème - cela demande un peu de saisie, mais c'est supportable. Mais qu'advient-il lorsque vous êtes relié à une vaste baie RAID et que vous devez configurer 10 ou même 200 disques de manière identique ? J'ai une amie qui a dû faire cela pour un gros project d'imagerie. Elle a utilisé
Comme toujours, * Partition Tag Flag First Sector Sector Count 0 2 00 4194828 1048707 1 7 00 5243535 4145715 2 5 00 0 71127180 3 3 01 0 4194828 4 0 00 9389250 2097414 5 0 00 11486664 8389656 6 4 00 19876320 6292242
Le meilleur moyen consiste à employer l'utilitaire fmthard -i -n "" /dev/rdsk/c2t1d0s2 > ./mypartition.dat
La commande précédente écrit les partitions du disque sur « fmthard -s mypartition.dat -n "volumename" /dev/rdsk/cxtydzs2 »
Le désavantage de la commande
Si vous avez effectivement lu la page du manuel concernant
-e Enable SCSI expert menu. Note this option is not
recommended for casual use.
Je ne sais pas ce que vous en pensez, mais en ce qui me concerne, je n'ai pas pu m'empêcher de jouer avec cette option. Lorsque vous entrez dans l'utilitaire scsi - independent SCSI mode selects cache - enable, disable or query SCSI disk cache
Vous obtenez même un paragraphe d'avertissement clair et net lorsque vous accédez à l'option
Un mot d'avertissement si vous envisagez de jouer dans la zone de l'option Maintenant l'option cache fournit un menu pour le cache de lecture et d'écriture du disque. Tous les disques SCSI ne disposent pas d'un cache, et parmi ceux qui en ont un, tous ne permettent pas de changer leurs options de cache. Ce cache est une petite quantité de mémoire sur le disque -- et n'a rien à voir avec la mémoire du système. Ceci signifie que chaque disque peut être légèrement différent et se comporter différemment lorsque vous utilisez ces outils. J'ai découvert que le cache de lecture est généralement activé, ce qui est logique car rien n'est perdu en cas de coupure de courant pendant une opération de lecture. Les données doivent toujours être sur le disque. De la même façon, j'ai toujours trouvé le cache d'écriture désactivé. Ceci est également logique car, si vous perdez l'alimentation, vous perdez tout ce qui se trouve dans le cache d'écriture. Lorsque je l'ai activé et comparé les charges d'E/S en utilisant IOzone, les améliorations des opérations d'écriture se situaient entre très faibles et très marquées. L'amélioration varie selon le modèle de disque et le fournisseur.
Puisque vous êtes dans l'utilitaire format> label [0] SMI Label [1] EFI Label Specify Label type[0]:
Je pense que SMI signifie Sun Microsystems. Il s'agit de l'option par défaut, et vous la voyez lorsque vous entrez dans l'utilitaire Si vous sélectionnez l'étiquette EFI (Extensible Firmware Interface), vous obtenez une autre partition présentée ci-dessous. ascii name = <FUJITSU MAN3367M SUN36G 1502 43d671f> bytes/sector = 512 sectors = 71132958 accessible sectors = 71132925 Part Tag Flag First Sector Size Last Sector 0 root wm 34 128.35MB 262898 1 swap wu 262899 128.37MB 525797 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 usr wm 525798 33.66GB 71116540 7 unassigned wm 0 0 0 8 reserved wm 71116541 8.00MB 71132924 format> Vous trouverez beaucoup d'autres informations sur EFI dans la page Extensible Firmware Interface du site web Intel.
Alors où en sommes nous ? J'espère avoir éclairci quelques points que vous pouvez pratiquer avec l'utilitaire A propos de l'auteur Greg (shoe) Schuweiler travaille dans l'accueillant Midwest (États-Unis) depuis 20 ans en qualité de conseiller, comme concepteur de logiciel, Oracle DBA, et une foule d'autres titres étranges. Il exerce la noble profession d'UNIX SA depuis huit ans. Si vous souhaitez le joindre : gshoe [at] xadd.org.
Comments (latest comments first)Discuss and comment on this resource in the BigAdmin Wiki
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics | ||||||||||