Wie erstelle und optimiere ich eine ext4-Partition über die Befehlszeile?

41

PARTITIONIERUNG (zB fdisk)
Welche nützlichen Befehle werden zum Partitionieren einer zusätzlichen Festplatte über die Befehlszeile verwendet? Da die meisten veröffentlichten Handbücher auf GParted und andere grafische Dienstprogramme abzielen, wäre eine Zusammenfassung einiger Befehlszeilensequenzen hilfreich.

TUNING - RESERVIERTE PLATZ-, RÜCKSCHREIB- UND ZUGRIFFSZEITEN
So entfernen Sie den reservierten Speicherplatz (standardmäßig), falls das Laufwerk zu 100% voll ist. Da es sich bei mir lediglich um ein sekundäres Laufwerk für "Daten" handelt, wird durch Entfernen des reservierten Bereichs sichergestellt, dass das gesamte Laufwerk zur Verwendung verfügbar ist.

Ich bin auch neugierig auf Write-through vs. Write-back und darauf, die Aktualisierung der Zugriffszeiten (für Dateien und Verzeichnisse) zu überspringen, um die Leistung zu verbessern.

gth
quelle

Antworten:

64

Zuallererst:

!! WARNUNG !!

Diese Befehle sind BEISPIELE . Durch das Löschen von Partitionen, das Ändern und Formatieren von Dateisystemen werden Daten gelöscht und / oder der Systemstart Ihres Computers wird möglicherweise verhindert. Machen Sie Backups. Verwendung auf eigene Gefahr. Probieren Sie eine Maschine aus, auf der es Ihnen nichts ausmacht, alle Daten zu verlieren. Einschränkung Admin.


So richten Sie ein Laufwerk schnell als einzelne ext4-Partition ein ...

  1. Erkannte Geräte der Klasse "DISK" anzeigen

    lshw -C disk
    
  2. Vorhandene Partitionstabelle (n) anzeigen

    fdisk -l
    
  3. Bearbeiten Sie die Partitionstabelle für mein ausgewähltes Gerät (in diesem Fall "sdx")

    fdisk /dev/sdx
    

    Drücken Sie in FDISK:

    • d... bis d elete die aktuelle Partition

    • n... zur Schaffung eines n ew Partition

    • p... um es als P RIMARY-Partition anzugeben

    • 1... um es als primäre Partition 1 ST festzulegen

    • w... um die Änderungen zu schreiben .

  4. Zeigen Sie die neue Partitionstabelle an:

    fdisk -l
    
  5. Formatieren Sie das Dateisystem der neuen Partition als Typ ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Erstellen Sie ein neues Verzeichnis, in das das neue Laufwerk geladen werden soll:

    mkdir /storage
    mount /dev/sdx1 /storage
    

ABSTIMMUNG

  1. Entfernen Sie reservierte Blöcke (dh setzen Sie sie auf 0%), da dieses Laufwerk nur für Benutzerdaten bestimmt ist

    tune2fs -m 0 /dev/sdx1
    
  2. Da sich der Server in der UPS befindet, stellen Sie das Zurückschreiben ein, damit die Apps nicht auf das tatsächliche Schreiben der Festplatte warten

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Mounten Sie beim Booten mit /etc/fstabund legen Sie auch die Write-Back-Richtlinie fest

    vi /etc/fstab
    
  4. Suchen Sie die entsprechende Zeile fstabfür Ihr Laufwerk (oder fügen Sie sie hinzu) . Parameter in fstab werden durch Leerzeichen getrennt. Das oben beschriebene Laufwerk könnte beispielsweise wie folgt aussehen:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • Der erste Parameter identifiziert die Partition (entweder durch / dev / oder eine lange UUID);
    • Der zweite Parameter ist der Pfad, an den die Partition angehängt wird.
    • Drittens ist der Dateisystemtyp;
    • Der vierte Parameter enthält die Optionen;
    • Fünftens ist der dumpZeitplan für Sicherungen; und,
    • Der sechste Parameter ist die Durchgangsnummer (zur Steuerung der fsckReihenfolge).

Ändern Sie die Optionen (4. Parameter) in:

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

Starten Sie den Computer neu, um zu überprüfen, ob alles ordnungsgemäß funktioniert hat.
Denken Sie daran, diese Befehle sind destruktiv! Habe Backups und sei vorsichtig!

gth
quelle
3
Zwischen Speicher und ext4 sollte ein Leerzeichen sein. Der Befehl lautet also / dev / sdx1 / storage ext4 relatime, errors = remount-ro 0 1
Ganesh Krishnan
Toller Reiseführer! Es wäre schön, hier einige Referenzen zu haben, um geeignete fstab-Optionen zu bestimmen (nur ein Link zu einer Liste wäre großartig)
Sander
13

Verwenden parted

Nachfolgend die Anleitung zum Erstellen einer neuen ext4-Partition auf einer neuen Festplatte mit parted(getestet auf Ubuntu 14.04.4 LTS x64). partedunterstützt im Gegensatz zu GUID Partition Table (GPT) und kann anschließend für Partitionen über 2 TB verwendet werden fdisk.

Verwenden Sie sudo lshw -C disk *-disk, um den logischen Namen Ihrer neuen Festplatte anzuzeigen:

   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

Der logische Name lautet /dev/sdb. Wir können loslegen:

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

Mit sudo parted /dev/sdb printkönnen wir sehen, dass die GPT erstellt wurde:

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

Wir müssen auch die Größe der Festplatte kennen (wir werden MB als Einheit verwenden):

sudo parted /dev/sdb print unit MB print free

was anzeigt:

Disk /dev/sdb: 6001175MB

Wir können jetzt die primäre Partition erstellen, sodass sie den gesamten Festplattenspeicher beansprucht. So legen Sie die Partitionsbezeichnung fest:

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

(Siehe https://unix.stackexchange.com/a/49274/16704, wenn Sie wissen möchten, warum wir verwenden --align optimal)

Mit sudo parted /dev/sdb printkönnen wir sehen, wie die primäre Partitionsbezeichnung erstellt wurde:

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

Wir müssen dann mkfs verwenden , um die Partition tatsächlich zu erstellen:

sudo mkfs.ext4 /dev/sdb1

Die Partition ist nun erstellt, wir müssen sie mounten. Dazu sudo nano /etc/fstabund fügen Sie die folgende Zeile ( /crimeader Ordner , in dem wir wählen die neue Partition zu mounten):

/dev/sdb1       /crimea ext4 defaults   0       0      

Wir erstellen den Ordner und laden neu /etc/fstab:

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

Sie können die neu gemountete Partition folgendermaßen anzeigen df -h:

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

In sudo nano /etc/fstab, statt mit /dev/sdb1Ihnen seine verwenden könnte UUID, die Sie finden können , mit 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

Ansonsten könnte man einfach machen sudo blkid /dev/sdb1:

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

Die neue Zeile /etc/fstablautet:

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

https://unix.stackexchange.com/a/137868/16704 erklärt, warum es am besten ist, UUID (liquidat, cc by-sa 3.0) zu verwenden:

Die Verwendung der UUID hat den Vorteil, dass sie unabhängig von der tatsächlichen Gerätenummer ist, die das Betriebssystem Ihrer Festplatte gibt. Image Sie fügen dem System eine weitere Festplatte hinzu, und aus irgendeinem Grund entscheidet das Betriebssystem, dass Ihre alte Festplatte jetzt sdbnicht mehr vorhanden ist sba. Ihr Boot-Vorgang wäre durcheinander, wenn fstab auf den Gerätenamen zeigen würde. Im Falle der UUIDs wäre dies jedoch in Ordnung.


Zusammenfassung:

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
quelle
Stattdessen sollten Sie das Ende des MB sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBbesser angeben ext4 0% 100%, um die Warnung zu vermeiden: Die resultierende Partition ist nicht richtig ausgerichtet, um die beste Leistung zu erzielen.
Pablo Marin-Garcia