Bagaimana cara membuat dan menyetel partisi ext4 dari baris perintah?

41

PARTITIONING (eg fdisk)
Apa saja perintah berguna yang digunakan untuk mempartisi hard drive tambahan dari command-line? Karena sebagian besar panduan yang diterbitkan mengarahkan ke GParted dan utilitas grafis lainnya, ringkasan dari beberapa urutan baris perintah akan sangat membantu.

PENYESUAIAN - RUANG YANG DILINDUNGI, WAKTU MENULIS-KEMBALI & AKSES KALI
Bagaimana menghapus ruang disk yang dicadangkan disisihkan (secara default) jika drive menjadi 100% penuh. Karena saya adalah drive sekunder hanya untuk 'data', menghapus area yang dicadangkan memastikan seluruh drive tersedia untuk digunakan.

Saya juga ingin tahu tentang write-through vs. write-back dan melewatkan pembaruan waktu akses (pada file dan direktori) untuk meningkatkan kinerja.

gth
sumber

Jawaban:

64

Pertama dan terutama:

!! PERINGATAN !!

Perintah-perintah ini adalah CONTOH . MENGHAPUS partisi, MEMODIFIKASI dan FORMATING filesystem merusak data dan / atau dapat mencegah mesin Anda dari boot. Buat cadangan. Gunakan dengan risiko sendiri. Coba pada mesin yang Anda tidak keberatan kehilangan semua data. admin peringatan.


Untuk dengan cepat menyiapkan drive sebagai partisi ext4 tunggal ...

  1. Lihat perangkat yang terdeteksi dari kelas "DISK"

    lshw -C disk
    
  2. Lihat tabel partisi yang ada

    fdisk -l
    
  3. Edit tabel partisi untuk perangkat pilihan saya (dalam hal ini, "sdx")

    fdisk /dev/sdx
    

    Dalam FDISK, tekan:

    • d... untuk d apus partisi saat ini

    • n... untuk membuat n partisi ew

    • p... untuk menentukannya sebagai partisi P RIMARY

    • 1... untuk mengaturnya sebagai partisi utama 1 ST

    • w... untuk w ritus perubahan.

  4. Tampilkan tabel partisi baru:

    fdisk -l
    
  5. Format sistem file partisi baru sebagai tipe ext4

    mkfs -t ext4 /dev/sdx1
    
  6. Buat direktori baru tempat drive baru akan dipasang:

    mkdir /storage
    mount /dev/sdx1 /storage
    

TUNING

  1. Hapus blok yang dipesan (yaitu disetel ke 0%), karena drive ini hanya untuk data pengguna

    tune2fs -m 0 /dev/sdx1
    
  2. Karena server menggunakan UPS, Setel tulis-ulang agar aplikasi tidak menunggu penulisan disk yang sebenarnya

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. Mount saat boot menggunakan /etc/fstabdan juga menetapkan kebijakan write-back

    vi /etc/fstab
    
  4. Temukan (atau tambahkan) baris yang sesuai fstabuntuk drive Anda. Parameter dalam fstab dipisahkan oleh ruang putih, misalnya drive yang dijelaskan di atas mungkin muncul sebagai:

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • Parameter pertama mengidentifikasi partisi (baik oleh / dev / atau UUID yang panjang);
    • Parameter kedua adalah path tempat partisi akan dipasang;
    • Ketiga adalah tipe sistem file;
    • Parameter keempat berisi opsi;
    • Kelima adalah dumpjadwal untuk backup; dan,
    • Parameter keenam adalah pass-number (digunakan untuk mengontrol fsckurutan).

Ubah opsi (parameter ke-4) menjadi:

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

Nyalakan ulang untuk memeriksa bahwa semuanya berjalan dengan baik.
Ingat perintah ini merusak! Miliki cadangan dan berhati-hatilah!

gth
sumber
3
Harus ada ruang antara penyimpanan dan ext4. Jadi perintahnya seperti / dev / sdx1 / storage ext4 relatime, errors = remount-ro 0 1
Ganesh Krishnan
Panduan hebat! Akan menyenangkan untuk memiliki beberapa referensi di sini tentang cara menentukan opsi fstab yang sesuai (hanya tautan ke daftar saja akan lebih bagus)
Sander
13

Menggunakan parted

Di bawah instruksi untuk membuat partisi ext4 baru pada hard drive baru dengan parted(diuji pada Ubuntu 14.04.4 LTS x64). partedmendukung GUID Partition Table (GPT) dan selanjutnya dapat digunakan untuk partisi di atas 2TB, tidak seperti fdisk.

Gunakan sudo lshw -C disk *-diskuntuk melihat nama logis hard drive baru Anda:

   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

Nama logisnya adalah /dev/sdb. Kita bisa memulai:

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

Dengan sudo parted /dev/sdb print, kita dapat melihat GPT dibuat:

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

Kita juga perlu mengetahui ukuran disk (kita akan menggunakan MB sebagai unit):

sudo parted /dev/sdb print unit MB print free

yang menunjukkan:

Disk /dev/sdb: 6001175MB

Kita sekarang dapat membuat partisi utama sehingga dibutuhkan seluruh ruang hard drive. Untuk mengatur label partisi:

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

(lihat https://unix.stackexchange.com/a/49274/16704 jika Anda ingin tahu mengapa kami menggunakan --align optimal)

Dengan sudo parted /dev/sdb print, kita dapat melihat label partisi primer dibuat:

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

Kita kemudian perlu menggunakan mkfs untuk benar-benar membuat partisi:

sudo mkfs.ext4 /dev/sdb1

Partisi sekarang dibuat, kita perlu me-mount-nya. Untuk melakukannya, sudo nano /etc/fstabdan tambahkan baris berikut ( /crimeaadalah folder tempat kami memilih untuk memasang partisi baru):

/dev/sdb1       /crimea ext4 defaults   0       0      

Kami membuat folder dan memuat ulang /etc/fstab:

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

Anda dapat melihat partisi yang baru dipasang menggunakan df -h:

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

Di sudo nano /etc/fstab, alih-alih menggunakan /dev/sdb1Anda dapat menggunakan UUID, yang dapat Anda temukan dengan 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

Kalau tidak, Anda bisa melakukannya sudo blkid /dev/sdb1:

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

Baris baru /etc/fstabadalah:

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

https://unix.stackexchange.com/a/137868/16704 menjelaskan mengapa yang terbaik untuk menggunakan UUID (liquidat, cc by-sa 3.0):

Keuntungan menggunakan UUID adalah tidak tergantung dari nomor perangkat aktual yang diberikan sistem operasi kepada hard disk Anda. Gambar Anda menambahkan hard disk lain ke sistem, dan untuk beberapa alasan OS memutuskan bahwa disk lama Anda sekarang sdbbukan sba. Proses boot Anda akan kacau jika fstab akan menunjuk ke nama perangkat. Namun, dalam kasus UUID, itu akan baik-baik saja.


Ringkasan:

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
sumber
bukannya mengatakan MB akhir sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MBitu akan lebih baik ext4 0% 100%untuk menghindari Peringatan: Partisi yang dihasilkan tidak selaras dengan benar untuk kinerja terbaik.
Pablo Marin-Garcia