web-dev-qa-db-fra.com

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

PARTITIONNEMENT (par exemple fdiskname__)
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 certaines séquences de ligne de commande serait utile.

TUNING - ESPACE RÉSERVÉ, ÉCRITURE/RETOUR ET TEMPS D'ACCÈS
Comment supprimer l’espace disque réservé réservé (par défaut) au cas où le lecteur serait saturé à 100%. Étant donné que I est un lecteur secondaire simplement pour les "données", la suppression de la zone réservée garantit la disponibilité de l'ensemble du lecteur.

Je suis également curieux de savoir si l'écriture directe est une réécriture et si je saute la mise à jour des temps d'accès (sur les fichiers et les répertoires) afin d'améliorer les performances.

40
gth

Tout d'abord:

!! ATTENTION !!

Ces commandes sont EXEMPLES. SUPPRIMER des partitions, MODIFIER et FORMATER des systèmes de fichiers détruisent des données et/ou peuvent empêcher votre ordinateur de démarrer. Faire des sauvegardes. Utilisez à vos risques et périls. Essayez une machine qui ne vous dérange pas de perdre toutes vos données. avertissement admin.


  1. Afficher les périphériques détectés de la classe "DISK"

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

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

    fdisk /dev/sdx
    

    Dans FDISK, appuyez sur:

    • d... to supprimer la partition actuelle

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

    • p... pour le spécifier en tant que PPartition RIMARY

    • 1 ... pour le définir comme 1Partition primaire ST

    • w... to write 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
    

RÉGLAGE

  1. Supprimer les blocs réservés (c.-à-d. Définis sur 0%), car ce lecteur est uniquement destiné aux données utilisateur

    tune2fs -m 0 /dev/sdx1
    
  2. Puisque le serveur est sur UPS, définissez l'écriture en retour pour que les applications n'attendent pas les écritures sur le disque

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Montez au démarrage à l'aide de /etc/fstab et définissez également la politique de réécriture

    vi /etc/fstab
    
  4. Recherchez (ou ajoutez) la ligne correspondante dans fstabpour votre lecteur. Les paramètres de fstab sont séparés par des espaces, par exemple, le lecteur 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 (par/dev/ou un long UUID);
    • Le deuxième paramètre est le chemin sur lequel la partition sera montée;
    • Troisième est le type de système de fichiers;
    • Le quatrième paramètre contient les options;
    • La cinquième est la planification dumppour les sauvegardes; et,
    • Le sixième paramètre est pass-number (utilisé pour contrôler l'ordre fsckname__).

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

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

Redémarrez pour vérifier que tout s'est bien passé.
Rappelez-vous que ces commandes sont destructives! Faites des sauvegardes et soyez prudent!

62
gth

Utilisation de partedname__

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). partedprend en charge table de partition GUID (GPT) et peut ensuite être utilisé pour les partitions supérieures à 2 To, contrairement à fdiskname__.

Utilisez 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 TPG 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 MB comme unité):

Sudo parted /dev/sdb print unit MB print free

ce qui indique:

Disk /dev/sdb: 6001175MB

Nous pouvons maintenant créer la partition principale de sorte qu'elle occupe tout l'espace du disque dur. Pour définir le libellé 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 le label de partition primaire 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
 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, Sudo nano /etc/fstab et ajoutez la ligne suivante (/crimea est le dossier dans lequel nous avons choisi 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 à l'aide de df -h:

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

Dans Sudo nano /etc/fstab, au lieu d'utiliser /dev/sdb1, vous pouvez utiliser son UUIDname__, 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 pourriez 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 UUID (liquidat, cc by-sa 3.0):

L'avantage d'utiliser l'UUID est qu'il est indépendant du numéro de périphérique réel 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 sdbau lieu de sbaname__. Votre processus de démarrage serait foutu si fstab pointe vers le nom du périphérique. Cependant, dans le cas des UUID, ce serait 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
13
Franck Dernoncourt