50 votes

Comment créer et régler une partition ext4 à partir de la ligne de commande ?

PARTITIONNEMENT (par exemple fdisk )
Quelles sont les commandes utiles pour partitionner un disque dur supplémentaire à partir de la ligne de commande ? Comme la plupart des guides publiés s'orientent vers GParted et d'autres utilitaires graphiques, un résumé de quelques séquences de ligne de commande serait utile.

TUNING - ESPACE RÉSERVÉ, TEMPS D'ÉCRITURE ET D'ACCÈS
Comment supprimer l'espace disque réservé (par défaut) au cas où le disque serait plein à 100 %. Comme il s'agit d'un disque secondaire destiné uniquement aux "données", la suppression de l'espace réservé permet d'utiliser la totalité du disque.

Je suis également curieux de savoir ce qu'il en est de l'écriture directe (write-through) par rapport à l'écriture indirecte (write-back) et de l'omission de la mise à jour des temps d'accès (sur les fichiers et les répertoires) afin d'améliorer les performances.

76voto

John Herro Points 51

D'abord et avant tout :

! ! ATTENTION ! !!

Ces commandes sont EXEMPLES . La SUPPRESSION de partitions, la MODIFICATION et le FORMATAGE de systèmes de fichiers détruisent des données et/ou peuvent empêcher votre machine de démarrer. Effectuez des sauvegardes. Utilisez-les à vos risques et périls. Essayez sur une machine dont vous ne craignez pas de perdre toutes les données. caveat admin.


Pour configurer rapidement un disque en tant que partition ext4 unique...

  1. Afficher les appareils détectés de la classe "DISK"

    lshw -C disk
  2. Afficher les tables de partitions existantes

    fdisk -l
  3. Modifier la table de partition pour le périphérique choisi (dans ce cas, "sdx")

    fdisk /dev/sdx

    Dans FDISK, appuyez sur :

    • d ...à d effacer la partition actuelle

    • n ...pour créer un n Nouvelle partition

    • p ...pour le spécifier en tant que P partition RIMAIRE

    • 1 ...pour en faire le 1 ST partition primaire

    • w ...à w rite les changements.

  4. Affichez la nouvelle table de partition :

    fdisk -l
  5. Formatez le système de fichiers de la nouvelle partition en tant que type ext4

    mkfs -t ext4 /dev/sdx1
  6. Créez un nouveau répertoire dans lequel le nouveau lecteur sera monté :

    mkdir /storage
    mount /dev/sdx1 /storage

TUNING

  1. Supprimer les blocs réservés (c'est-à-dire les mettre à 0 %), puisque ce lecteur est réservé aux données de l'utilisateur.

    tune2fs -m 0 /dev/sdx1
  2. Puisque le serveur est sur UPS, configurer le write-back pour que les applications n'attendent pas les écritures réelles sur le disque.

    tune2fs -o journal_data_writeback /dev/sdx1
  3. Montage au démarrage à l'aide de /etc/fstab et définir également une politique de retour en arrière

    vi /etc/fstab
  4. Trouvez (ou ajoutez) la ligne correspondante dans fstab pour votre conduite. Les paramètres dans fstab sont séparés par des espaces blancs. Par exemple, le disque décrit ci-dessus peut apparaître comme suit :

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    • Le premier paramètre identifie la partition (soit par /dev/, soit par un long UUID) ;
    • Le deuxième paramètre est le chemin sur lequel la partition sera montée ;
    • Le troisième est le type de système de fichiers ;
    • Le quatrième paramètre contient les options ;
    • Le cinquième est le dump le calendrier des sauvegardes ; et,
    • Le sixième paramètre est le numéro de passage (utilisé pour contrôler fsck ordre).

Modifier les options (4ème paramètre) en :

noatime,nodiratime,data=writeback,barrier=0,nobh,errors=remount-ro

Redémarrer pour vérifier que tout s'est bien passé.
N'oubliez pas que ces ordres sont destructeurs ! Faites des sauvegardes et soyez prudent !

21voto

amized Points 501

Utilisation parted

Ci-dessous les instructions pour créer une nouvelle partition ext4 sur un nouveau disque dur avec parted (testé sur Ubuntu 14.04.4 LTS x64). parted soutiens Table de partition GUID (GPT) et peut donc être utilisé pour des partitions de plus de 2TB, contrairement à fdisk .

使用する sudo lshw -C disk *-disk pour voir le nom logique de votre nouveau disque dur :

   description: ATA Disk
   product: ST6000NM0024-1HT
   vendor: Seagate
   physical id: 0.0.0
   bus info: scsi@1:0.0.0
   logical name: /dev/sdb
   version: SN05
   serial: Z4D30T30
   size: 5589GiB (6001GB)
   configuration: ansiversion=5 sectorsize=4096

Le nom logique est /dev/sdb . Nous pouvons commencer :

sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)

Avec sudo parted /dev/sdb print Nous pouvons voir que le GPT a été créé :

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Nous devons également connaître la taille du disque (nous utiliserons le Mo comme unité) :

sudo parted /dev/sdb print unit MB print free

qui indique :

Disk /dev/sdb: 6001175MB

Nous pouvons maintenant créer la partition principale de manière à ce qu'elle occupe tout l'espace du disque dur. Pour définir l'étiquette de la partition :

sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB 

(voir https://unix.stackexchange.com/a/49274/16704 si vous voulez savoir pourquoi nous utilisons --align optimal )

Avec sudo parted /dev/sdb print Nous pouvons voir que l'étiquette de la partition primaire a été créée :

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB  xfs          primary

Nous devons ensuite utiliser mkfs pour créer la partition :

sudo mkfs.ext4 /dev/sdb1

La partition est maintenant créée, nous devons la monter. Pour ce faire, procédez comme suit sudo nano /etc/fstab et ajoutez la ligne suivante ( /crimea est le dossier dans lequel nous choisissons de monter la nouvelle partition) :

/dev/sdb1       /crimea ext4 defaults   0       0      

Nous créons le dossier et rechargeons /etc/fstab :

sudo mkdir /crimea
sudo mount -a # Remount /etc/fstab without rebooting in Linux

Vous pouvez voir la nouvelle partition montée en utilisant df -h :

/dev/sdb1                      5.5T   58M  5.2T   1% /crimea

En sudo nano /etc/fstab au lieu d'utiliser /dev/sdb1 vous pouvez utiliser son UUID que vous pouvez trouver avec sudo lshw -C volume :

*-volume
       description: EXT4 volume
       vendor: Linux
       physical id: 1
       bus info: scsi@1:0.0.0,1
       logical name: /dev/sdb1
       logical name: /crimea
       version: 1.0
       serial: c3559307-795b-66db-9844-8e974c88a1cf
       size: 200MiB
       capacity: 5589GiB
       capabilities: journaled extended_attributes huge_files dir_nlink extents ext4 ext2 initialized
       configuration: created=2016-06-24 14:56:55 filesystem=ext4 lastmountpoint=/boot modified=2016-07-01 17:15:55 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2016-07-01 17:07:19 name=primary state=mounted

Sinon, vous pouvez simplement faire sudo blkid /dev/sdb1 :

/dev/sdb1: UUID="c3559307-795b-66db-9844-8e974c88a1cf" TYPE="ext4"

La nouvelle ligne /etc/fstab sera :

UUID=c3559307-795b-66db-9844-8e974c88a1cf          5.5T   58M  5.2T   1% /crimea

https://unix.stackexchange.com/a/137868/16704 explique pourquoi il est préférable d'utiliser l'UUID (liquidat, cc by-sa 3.0) :

L'avantage de l'utilisation de l'UUID est qu'il est indépendant du numéro de périphérique que le système d'exploitation attribue à votre disque dur. Image vous ajoutez un autre disque dur au système, et pour une raison quelconque le système d'exploitation décide que votre ancien disque est maintenant sdb au lieu de sba . Votre processus de démarrage serait perturbé si fstab pointait vers le nom du périphérique. Cependant, dans le cas des UUID, tout irait bien.


Résumé :

sudo lshw -C disk                # Checking the location of the new drive. It is /dev/sdb.     
sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)
sudo parted /dev/sdb print       # Checking that the GPT has been created
sudo parted /dev/sdb print unit MB print free # see 6001175MB size
sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB # Creating partition label
sudo mkfs.ext4 /dev/sdb1         # Creating the partition
sudo nano /etc/fstab             # Add line `/dev/sdb1 /crimea ext4 defaults 0 0`
sudo mount -a # Remount /etc/fstab without rebooting

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X