Come posso creare e ottimizzare una partizione ext4 dalla riga di comando?


41

Partizionamento (ad es. fdisk)
Quali sono alcuni comandi utili usati per partizionare un disco rigido aggiuntivo dalla riga di comando? Poiché la maggior parte delle guide pubblicate si orientano verso GParted e altre utilità grafiche, sarebbe utile un riepilogo di alcune sequenze della riga di comando.

SINTONIA - SPAZIO RISERVATO, SCRITTURA E TEMPI DI ACCESSO
Come rimuovere lo spazio su disco riservato messo da parte (per impostazione predefinita) nel caso in cui l'unità si riempia al 100%. Poiché I è un'unità secondaria semplicemente per "dati", la rimozione dell'area riservata garantisce che l'intera unità sia disponibile per l'uso.

Sono anche curioso di scrivere e scrivere e di saltare l'aggiornamento dei tempi di accesso (su file e directory) in modo da migliorare le prestazioni.

Risposte:


64

Innanzitutto:

!! AVVERTIMENTO !!

Questi comandi sono ESEMPI . L'eliminazione di partizioni, la MODIFICA e la FORMATTAZIONE dei file system distrugge i dati e / o può impedire l'avvio del computer. Effettua backup. Utilizzare a proprio rischio. Prova su una macchina che non ti dispiace perdere tutti i dati. avvertenza admin.


Per configurare rapidamente un'unità come singola partizione ext4 ...

  1. Visualizza i dispositivi rilevati della classe "DISK"

    lshw -C disk
    
  2. Visualizza le tabelle delle partizioni esistenti

    fdisk -l
    
  3. Modifica la tabella delle partizioni per il dispositivo scelto (in questo caso "sdx")

    fdisk /dev/sdx
    

    All'interno di FDISK, premere:

    • d... al d elete la partizione corrente

    • n... per creare un n partizione ew

    • p... per specificarlo come partizione P RIMARY

    • 1... per impostarlo come partizione primaria 1 ST

    • w... per confermare le modifiche.

  4. Visualizza la nuova tabella delle partizioni:

    fdisk -l
    
  5. Formatta il filesystem della nuova partizione come tipo ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Creare una nuova directory in cui verrà montata la nuova unità:

    mkdir /storage
    mount /dev/sdx1 /storage
    

MESSA A PUNTO

  1. Rimuovere i blocchi riservati (ovvero impostati su 0%), poiché questa unità è solo per i dati dell'utente

    tune2fs -m 0 /dev/sdx1
    
  2. Poiché il server è su UPS, imposta la riscrittura in modo che le app non aspettino le scritture effettive del disco

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Montare all'avvio utilizzando /etc/fstabe anche impostare la politica di riscrittura

    vi /etc/fstab
    
  4. Trova (o aggiungi) la linea pertinente fstabper il tuo disco. I parametri in fstab sono separati da uno spazio bianco, ad esempio l'unità sopra descritta potrebbe apparire come:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • Il primo parametro identifica la partizione (tramite / dev / o un UUID lungo);
    • Il secondo parametro è il percorso su cui verrà montata la partizione;
    • Terzo è il tipo di filesystem;
    • Il quarto parametro contiene le opzioni;
    • Quinto è il dumpprogramma per i backup; e,
    • Il sesto parametro è pass-number (utilizzato per controllare l' fsckordine).

Modificare le opzioni (4 ° parametro) in:

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

Riavvia per verificare che tutto sia andato bene.
Ricorda che questi comandi sono distruttivi! Avere backup e fare attenzione!


3
Dovrebbe esserci uno spazio tra storage ed ext4. Quindi il comando è come / dev / sdx1 / storage ext4 relatime, errori = remount-ro 0 1
Ganesh Krishnan

Ottima guida! Sarebbe bello avere alcuni riferimenti qui su come determinare le opzioni fstab appropriate (solo un link ad un elenco sarebbe fantastico)
Sander

13

utilizzando parted

Di seguito le istruzioni per creare una nuova partizione ext4 su un nuovo disco rigido con parted(testato su Ubuntu 14.04.4 LTS x64). partedsupporta GUID Partition Table (GPT) e successivamente può essere utilizzato per partizioni superiori a 2 TB, a differenza fdisk.

Utilizzare sudo lshw -C disk *-diskper visualizzare il nome logico del nuovo disco rigido:

   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

Il nome logico è /dev/sdb. Possiamo iniziare:

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

Con sudo parted /dev/sdb print, possiamo vedere il GPT creato:

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

Dobbiamo anche conoscere la dimensione del disco (useremo MB come unità):

sudo parted /dev/sdb print unit MB print free

che indica:

Disk /dev/sdb: 6001175MB

Ora possiamo creare la partizione primaria in modo che occupi l'intero spazio sul disco rigido. Per impostare l'etichetta della partizione:

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

(vedi https://unix.stackexchange.com/a/49274/16704 se vuoi sapere perché lo usiamo --align optimal)

Con sudo parted /dev/sdb print, possiamo vedere l'etichetta della partizione primaria creata:

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

Abbiamo quindi bisogno di usare mkfs per creare effettivamente la partizione:

sudo mkfs.ext4 /dev/sdb1

La partizione è stata creata, dobbiamo montarla. Per fare ciò, sudo nano /etc/fstabaggiungi la seguente riga ( /crimeaè la cartella in cui scegliamo di montare la nuova partizione):

/dev/sdb1       /crimea ext4 defaults   0       0      

Creiamo la cartella e ricarichiamo /etc/fstab:

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

Puoi vedere la nuova partizione montata usando df -h:

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

In sudo nano /etc/fstab, invece di usarlo /dev/sdb1puoi usarne UUID, che puoi trovare con 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

Altrimenti potresti semplicemente fare sudo blkid /dev/sdb1:

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

La nuova linea /etc/fstabsarà:

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

https://unix.stackexchange.com/a/137868/16704 spiega perché è meglio usare UUID (liquidat, cc by-sa 3.0):

Il vantaggio dell'utilizzo dell'UUID è che è indipendente dal numero effettivo del dispositivo che il sistema operativo fornisce al disco rigido. Immagina di aggiungere un altro disco rigido al sistema e per qualche motivo il sistema operativo decide che il tuo vecchio disco è ora sdbinvece di sba. Il tuo processo di avvio verrebbe rovinato se fstab punta al nome del dispositivo. Tuttavia, nel caso degli UUID, andrebbe bene.


Sommario:

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

invece dire al fine MB sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBsarebbe meglio mettere ext4 0% 100%per evitare l'avvertimento: la partizione risultante non è correttamente allineata per le migliori prestazioni.
Pablo Marin-Garcia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.