This is an old revision of the document!
Ensenhador
Trucs en vrac sur Linux
Disques et partitionnement
Disques
Les anciens formats IDE/PATA ou ATAPI sont répertoriés dans le système comme hdx. Le disque sur le premier port sera donc hda, et les suivants hdb, hdc , ..etc… avec une subtilité à propos des maître et esclaves :
- hda = ide0, maître
- hdb = ide0, esclave
- etc…
Concernant les disques SATA, vous les retrouverez sous le répertoire «/dev» /sda ou sdb … etc… C'est valable aussi pour les disque sur ports USB, SCA, fibre, et d'autres…
Avec la commande lsblk
dans un terminal, vous verrez la liste de ces disques disponibles sur votre ordinateur.
Il n'y a de limites que le nombre de ports physiques disponibles dans la machine.
Pour modifier les paramètres de vos disques, vous pouvez utiliser hdparm
ou sdparm
, selon les cas. Mais il est rare dans un usage courant d'avoir à le faire.
Partitions
Il y a différents outils qui permettent de gérer les partitions de vos disques : fdisk
, parted
ou encore gdisk
(fdisk dédié au GPT) et d'autres.
Durant l'installation d'une distribution, vous avez un outil de partitionnement graphique qui vous permettra d'ajuster vos disques et partitions selon vos besoins durant l'installation d'un système GNU Linux.
Pour Windows, le nombre de partitions primaires est limité à 4. Au delà, vous devez créer vos partitions à l'intérieur d'une partition étendue. Et encore, les systèmes windows antérieurs W7 ne reconnaissent comme partitions étendues que les types 0x05.
Les disque formatés de type GPT ne posent plus de limitations sur le nombre de partitions primaires.
Copie de partitions
Copie de carte SD
J'ai fait ça pour le raspberry pi. J'ai créé un disque LVM de 16 Go exprès pour ça. Je copie donc une carte sur ce disque, puis ce disque sur la seconde carte. C'est une façon de faire, qui n'est pas la plus élégante. Mais je l'ai fait ainsi pour le cas où je n'ai pas de port disponible pour y mettre les deux cartes, pour avoir une copie directe de la carte sur mon ordinateur, et pour moi tester dd.
dd if=/dev/fedora/tempon of=/dev/sdc bs=1024 conv=notrunc,noerror status=progress 15643120640 octets (16 GB, 15 GiB) copiés, 2946 s, 5,3 MB/s 15280129+0 enregistrements lus 15280128+0 enregistrements écrits 15646851072 octets (16 GB, 15 GiB) copiés, 2980,69 s, 5,2 MB/s
Manifestement avec un bs à 512 ça va bien mieux
dd if=/dev/sdc of=/dev/fedora/tempon bs=512 conv=notrunc,noerror status=progress 15635018240 octets (16 GB, 15 GiB) copiés, 1393 s, 11,2 MB/s 30560256+0 enregistrements lus 30560256+0 enregistrements écrits 15646851072 octets (16 GB, 15 GiB) copiés, 1396,21 s, 11,2 MB/s
Systèmes de fichiers
Préambule
qu'est-ce ?
Une organisation, au niveau le plus bas sur un support de stockage, comme au niveau de l'utilisateur, des données ; et une organisation logique du support en question.
Comment cela se passe ?
Sous GNU Linux, il est impératif, lorsque l'on crée un système de fichier, de respecter la norme posix.
Du coup tout système de fichier GNU Linux est compatible Unix et vice versa.
POSIX servant de base, il n'est pas interdit de proposer des extensions… souvent liées à la sécurité ( e.g : selinux ou ACL ).
Et quoi d'autre ?
Donc le système de fichier consiste à organiser et structurer des données dans des fichiers sur un support de stockage. Il doit aussi présenter le tout de façon exploitable à l'utilisateur, c'est à dire, en faciliter…
- la distinction;
- la recherche;
- le traitement;
- la manipulation;
- permettre à des programmes d'y accéder.
La présentation de la chose, est une arborescence dont la racine est « / ». Certains sous-répertoires de cette racine sont normés. Par exemple vous trouverez toujours « /home », où sont stockées les données des utilisateurs (mais ça fera l'objet d'un complément à cette page plus tard).
Métadonnées
Un fichier est constitué et 2 morceaux : les données , et les métadonnées. Ces deux morceaux ne sont pas écrits au même endroit sur le support, du moins, pas forcément. Les métadonnées comprennent les informations suivantes (dixit «Linux maîtrisez l'administration du système» de Sébastien Rohaut 1) ) :
- les droits;
- dates d'accès et, bien sûr de modification;
- propriété (utilisateur et groupe);
- taille;
- nombre de blocs utilisés;
- type MIME;
- les liens;
- un arbre d'adresses de blocs de données.
Tout cela constitue un «inode».
Noms de fichiers
Vous êtes limités à 255 caractères. La pratique usuelle qui consiste à y inclure une «extension» séparée par un point est une très bonne pratique pour indiquer quel est le type du fichier. Mais du point de vue de Linux, cela n'a aucun sens.
GNU Linux détermine le type d'un fichier par le type MIME inclus dans les métadonnées.
E.g : dans un terminal prenez 1_fichier_quelconque et copiez-le en 1_fichier_quelconque.ext puis dans un terminal tapez la commande suivante :
file 1_fichier_quelconque && file 1_fichier_quelconque.ext
Le nom de fichiers sont écrits dans un catalogue à part, avec leur lien vers un inode.
Conséquemment, un même fichier peut avoir plusieurs noms
Tout cela confère une souplesse énorme à l'utilisateur et sur ce que sont les fichiers. J'en profite pour énoncer l'une des forces majeures de GNU Linux :
Tout est fichier sous GNU Linux.
Ce qui, à sont tour confère une souplesse énorme à l'utilisateur, et sur ce que sont les objets manipulés sur votre machine, comme par exemple les interfaces d'entrée et de sortie.
le journal
Le problème est de garantir l'intégrité des données. L'écriture d'un fichier est différée. Toutes les modifications que l'on y fait sont notées dans un journal. Pendant ce temps le fichier lui-même n'est pas touché. Lorsque l'on valide les changements, alors, le journal est «exécuté». Supposons que tout d'un coup il n'y ait plus d'électricité, le fichier n'est pas endommagé, et il suffit de relire le journal pour en connaître l'état actuel et final, et y inscrire les modifications.
Systèmes de fichiers Linux
ext2
Ce système propose une seconde extension basée du minix, et le premier vrai système de fichiers Linux. Il n'a pas de journal. Rapide, moins d'écritures sur le support.
La taille maximale d'un fichier : 2 To = 2048 Go La taille maximale d'une partition : 32 To ou 128 To si l'on configure la taille blocs pour ça.
ext3
third extended file system créé en 1999. Ajoute l'extension journal à ext2. L'un et l'autre sont parfaitement compatibles et l'on peut transformer très facilement un support ext2 et ext3 et vice versa. Il suffit de monter la partition en précisant le type.
ext4
En plus des deux premiers, il offre… une pré-allocation des blocks ce qui évite la fragmentation. On peut passer du ext3 vers ext4, mais pas l'inverse. Plus rapide qu'ext3
La taille maximale d'un fichier : 16 To La taille maximale d'une partition : 1 Eo (Exaoctets) ou 1024 Po (Pentaoctets)
BTRFS
ButterFs ou BetterFS sera le futur système par défaut de Linux. Oracle et SLES le proposent par défaut à l'installation. Certaines de ses fonctionnalités sont expérimentales.
sous-volumes
Sur un même système de fichier, vous pouvez créer des sous-volumes qui ont leur propres :
- arborescence;
- options de droits, quotas, etc…;
- sommes de contrôle des données et métadonnées pour détecter et éviter leur corruption;
- extension ou réduction du système de fichier «à chaud» et du nombre de supports qui le composent (et il supporte RAID);
- instantanés.
Instantanés
Vous prenez un instantané d'une arborescence. Vous pouvez la copier ailleurs. et surtout vous pouvez bricoler l'orignal. Si la bricole détruit le système, vous récupérez l'instantané et voilà !
Conclusion sur BTRFS
C'est de la balle !
ReiserFS
Journalisé avant même Ext, il fut développé pour Linux. Il gère bien l'espace occupé par les petits fichiers de moins d'un block : stockés intégralement dans leur inode sans allocation de données dans un bloc à part. Un bon système de fichier qui n'a pas eu le succès qu'il mérite à priori.