Jak utworzyć i dostroić partycję ext4 z wiersza poleceń?

41

PARTYCJONOWANIE (np. fdisk)
Jakie są przydatne polecenia do partycjonowania dodatkowego dysku twardego z wiersza poleceń? Ponieważ większość opublikowanych przewodników dotyczy GParted i innych narzędzi graficznych, pomocne byłoby podsumowanie niektórych sekwencji wiersza poleceń.

TUNING - ZAREZERWOWANE MIEJSCA, CZASY ZAPISU I DOSTĘPU
Jak usunąć zarezerwowane miejsce na dysku zarezerwowane (domyślnie) w przypadku, gdy napęd zapełni się w 100%. Ponieważ jestem dyskiem dodatkowym po prostu do „danych”, usunięcie zarezerwowanego obszaru zapewnia, że ​​cały dysk jest dostępny do użycia.

Jestem również ciekawy zapisu po zakończeniu i zapisu wstecz i pomijania aktualizacji czasów dostępu (w plikach i katalogach), aby poprawić wydajność.

gth
źródło

Odpowiedzi:

64

Po pierwsze i najważniejsze:

!! OSTRZEŻENIE !!

Te polecenia są PRZYKŁADAMI . USUWANIE partycji, MODYFIKOWANIE i FORMATOWANIE systemów plików niszczy dane i / lub może uniemożliwić uruchomienie komputera. Twórz kopie zapasowe. Używaj na własne ryzyko. Wypróbuj na komputerze, na którym nie masz nic przeciwko utracie wszystkich danych. zastrzeżenie administratora.


Aby szybko skonfigurować dysk jako pojedynczą partycję ext4 ...

  1. Wyświetl wykryte urządzenia klasy „DISK”

    lshw -C disk
    
  2. Wyświetl istniejące tabele partycji

    fdisk -l
    
  3. Edytuj tablicę partycji dla mojego wybranego urządzenia (w tym przypadku „sdx”)

    fdisk /dev/sdx
    

    W FDISK naciśnij:

    • d... do d suĹ bieżącej partycji

    • n... stworzyć n partycję ew

    • p... aby określić ją jako partycję P RIMARY

    • 1... aby ustawić ją jako partycję podstawową 1 ST

    • w... aby w rite zmiany.

  4. Wyświetl nową tablicę partycji:

    fdisk -l
    
  5. Sformatuj system plików nowej partycji jako typ ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Utwórz nowy katalog, w którym nowy dysk zostanie zamontowany w:

    mkdir /storage
    mount /dev/sdx1 /storage
    

STROJENIE

  1. Usuń zarezerwowane bloki (tj. Ustawione na 0%), ponieważ ten dysk jest tylko dla danych użytkownika

    tune2fs -m 0 /dev/sdx1
    
  2. Ponieważ serwer jest w trybie UPS, ustaw zapisywanie wstecz, aby aplikacje nie czekały na rzeczywiste zapisy na dysku

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Montuj przy rozruchu, /etc/fstaba także ustaw zasady zapisu wstecznego

    vi /etc/fstab
    
  4. Znajdź (lub dodaj) odpowiedni wiersz fstabdla dysku. Parametry w fstab są oddzielone spacją, na przykład dysk opisany powyżej może wyglądać następująco:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • Pierwszy parametr identyfikuje partycję (według / dev / lub długiego UUID);
    • Drugi parametr to ścieżka, do której zostanie zamontowana partycja;
    • Trzeci to typ systemu plików;
    • Czwarty parametr zawiera opcje;
    • Po piąte jest dumpharmonogram tworzenia kopii zapasowych; i,
    • Szósty parametr to numer przepustki (używany do kontrolowania fsckkolejności).

Zmień opcje (czwarty parametr) na:

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

Uruchom ponownie, aby sprawdzić, czy wszystko poszło dobrze.
Pamiętaj, że te polecenia są destrukcyjne! Miej kopie zapasowe i bądź ostrożny!

gth
źródło
3
Między pamięcią a ext4 powinna być spacja. Więc polecenie jest jak / dev / sdx1 / storage ext4 relatime, błędy = remount-ro 0 1
Ganesh Krishnan
Świetny przewodnik! Byłoby miło mieć tutaj jakieś referencje na temat określania odpowiednich opcji fstab (po prostu link do jakiejś listy byłby świetny)
Sander
13

Za pomocą parted

Poniżej instrukcje tworzenia nowej partycji ext4 na nowym dysku twardym z parted(testowane na Ubuntu 14.04.4 LTS x64). partedobsługuje GUID Partition Table (GPT), a następnie może być używany do partycji powyżej 2 TB, w przeciwieństwie do fdisk.

Użyj, sudo lshw -C disk *-diskaby zobaczyć logiczną nazwę nowego dysku twardego:

   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

Logiczna nazwa to /dev/sdb. Możemy zacząć:

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

Dzięki sudo parted /dev/sdb print, możemy zobaczyć GPT został stworzony:

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

Musimy także znać rozmiar dysku (użyjemy MB jako jednostki):

sudo parted /dev/sdb print unit MB print free

Co wskazuje:

Disk /dev/sdb: 6001175MB

Możemy teraz utworzyć partycję podstawową, aby zajmowała całe miejsce na dysku twardym. Aby ustawić etykietę partycji:

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

(patrz https://unix.stackexchange.com/a/49274/16704, jeśli chcesz wiedzieć, dlaczego korzystamy --align optimal)

Z sudo parted /dev/sdb printwidzimy nalepka partycji został stworzony:

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

Następnie musimy użyć mkfs do faktycznego utworzenia partycji:

sudo mkfs.ext4 /dev/sdb1

Partycja jest teraz utworzona, musimy ją zamontować. Aby to zrobić, sudo nano /etc/fstabi dodaj następujący wiersz ( /crimeato folder, w którym zdecydujemy się zamontować nową partycję):

/dev/sdb1       /crimea ext4 defaults   0       0      

Tworzymy folder i ładujemy ponownie /etc/fstab:

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

Możesz zobaczyć nową zamontowaną partycję używając df -h:

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

W sudo nano /etc/fstab, zamiast używać /dev/sdb1możesz użyć jego UUID, którą możesz znaleźć w 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

W przeciwnym razie możesz po prostu zrobić sudo blkid /dev/sdb1:

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

Nowa linia /etc/fstabbędzie:

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

https://unix.stackexchange.com/a/137868/16704 wyjaśnia, dlaczego najlepiej używać UUID (liquidat, cc by-sa 3.0):

Zaletą korzystania z UUID jest to, że jest on niezależny od faktycznego numeru urządzenia, jaki system operacyjny podaje Twojemu dyskowi twardemu. Obraz dodajesz kolejny dysk twardy do systemu iz jakiegoś powodu system operacyjny decyduje, że twój stary dysk jest teraz sdbzamiast sba. Twój rozruch byłby spieprzony, gdyby fstab wskazywał na nazwę urządzenia. Jednak w przypadku UUID byłoby dobrze.


Podsumowanie:

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
źródło
zamiast tego, mówiąc o końcu MB sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB, lepiej byłoby umieścić ext4 0% 100%ostrzeżenie: Wynikowa partycja nie jest właściwie wyrównana dla najlepszej wydajności.
Pablo Marin-Garcia