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

41

PARTITIONNEMENT (par exemple fdisk)
Quelles sont certaines commandes utiles utilisées pour partitionner un disque dur supplémentaire à partir de la ligne de commande? Étant donné que la plupart des guides publiés s’orientent vers GParted et d’autres utilitaires graphiques, il serait utile de résumer certaines séquences de ligne de commande.

TUNING - ESPACE RÉSERVÉ, RETARD D'ÉCRITURE ET TEMPS D'ACCÈS
Comment supprimer l'espace disque réservé réservé (par défaut) si le lecteur est 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é du lecteur entier.

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

gth
la source

Réponses:

64

Tout d'abord:

!! ATTENTION !!

Ces commandes sont des 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.


Pour configurer rapidement un disque en une seule partition ext4 ...

  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... à d elete la partition actuelle

    • n... pour créer une n partition ew

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

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

    • w... à w rite les changements.

  4. Affichez la nouvelle table de partition:

    fdisk -l
    
  5. Formater le nouveau système de fichiers de la 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. Supprimez 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. Monter au démarrage en utilisant /etc/fstabet aussi définir la politique d'écriture

    vi /etc/fstab
    
  4. Recherchez (ou ajoutez) la ligne correspondante dans fstabvotre 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;
    • Cinquièmement, le dumpcalendrier des sauvegardes. et,
    • Le sixième paramètre est pass-number (utilisé pour contrôler l' fsckordre).

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!

gth
la source
3
Il devrait y avoir un espace entre storage et ext4. La commande ressemble donc à / dev / sdx1 / stockage ext4, erreur = remount-ro 0 1
Ganesh Krishnan
Grand guide! Il serait bon d'avoir quelques références ici sur la façon de déterminer les options de fstab appropriées (juste un lien vers une liste serait génial)
Sander
14

En utilisant 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). partedsupporte GPT (GUID Partition Table) et peut ensuite être utilisé pour des partitions supérieures à 2 To, contrairement à fdisk.

Utilisez sudo lshw -C disk *-diskpour 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, on peut 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 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 l'utilisons --align optimal)

Avec sudo parted /dev/sdb print, on peut 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/fstabajoutez la ligne suivante ( /crimeale 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 en utilisant df -h:

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

Dans sudo nano /etc/fstab, au lieu d'utiliser, /dev/sdb1vous 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 pourriez simplement faire sudo blkid /dev/sdb1:

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

La nouvelle ligne /etc/fstabsera:

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 à la sdbplace de sba. Votre processus de démarrage serait foiré si fstab pointait vers le nom du périphérique. Cependant, dans le cas des UUID, ce serait bien.


Sommaire:

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
Franck Dernoncourt
la source
au lieu de dire à la fin MB en sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBmieux, il serait préférable de mettre ext4 0% 100%pour éviter l'avertissement: La partition résultante n'est pas correctement alignée pour des performances optimales.
Pablo Marin-Garcia