Cara mendefrag sistem file ext4

66

Saya tidak ingin ada jawaban yang mengatakan bahwa tidak perlu, tolong!

Fabby
sumber

Jawaban:

67

Gunakan e4defrag untuk mendefrag file Anda

Jika sistem file ext4 Anda dibuat dengan extentopsi (itu default di distro baru-baru ini), Anda dapat menggunakan e4defragutilitas untuk memeriksa dan men-defrag secara online yaitu tanpa umounting.

Cukup periksa level fragmentasi dengan sesuatu seperti ini (Anda harus root untuk melihat detailnya):

sudo e4defrag -c /path/to/myfiles

Berikut ini contoh output yang bisa Anda dapatkan:

$ sudo e4defrag -c iso/
<Fragmented files>                             now/best       size/ext
1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso
                                                 7/1         111177 KB
2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso
                                                 4/1         100897 KB
3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso
                                                 6/1         116053 KB
4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso
                                                 8/1          76160 KB
5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso
                                                15/1          75712 KB

 Total/best extents             40/5
 Average size per extent            90577 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (iso/) does not need defragmentation.
 Done.

Seperti dalam contoh ini, sebagian besar waktu akan memberi tahu Anda bahwa tidak ada defragmentasi yang diperlukan, tetapi jika Anda tetap ingin melakukannya, Anda dapat menggunakan (Anda tidak perlu menggunakan sudo untuk mendefrag file Anda sendiri):

e4defrag /path/to/myfiles

Pengguna Anda bahkan dapat menjalankannya di file mereka sendiri, tidak perlu menjadi root kecuali Anda ingin bekerja pada file pengguna atau sistem lain.

e4defragada dalam e2fsprogspaket, dan saya kira itu sudah diinstal pada sistem Ubuntu Anda.

gerlos
sumber
2
e4defrag -c tidak menghasilkan apa-apa selain done. Apakah itu berarti tidak ada fragmentasi?
hrzhu
3
Maaf, saya lupa menyebutkan bahwa Anda harus menjalankan e4defrag -cdengan sudoatau sebagai root untuk mendapatkan informasi terperinci tentang fragmentasi file Anda. Tapi tidak perlu root untuk men-defrag mereka.
gerlos
@gerlos Bagaimana jika saya mencoba untuk men-defrag sistem file root /?
Pavel Sayekat
2
@PavelSayekat Anda hanya perlu menjadi root (yaitu menggunakan sudo) untuk menjalankan e4defrag /, dan tidak perlu melakukan sesuatu yang istimewa. e4defragakan memeriksa setiap file di sana, jadi bersiaplah untuk menunggu drive Anda membaca semuanya. Ingatlah bahwa ini bisa membuang-buang waktu. Seringkali, jika Anda memiliki cukup ruang kosong dalam sistem file, Anda hanya akan memiliki beberapa file yang terfragmentasi, dan sering kali file tersebut ada di direktori home Anda, terkait dengan aktivitas browser web Anda. Sebagai contoh, pada PC desktop saya yang saya gunakan setiap hari e4defragmelaporkan bahwa hanya ada 5 file yang terfragmentasi, semuanya dalam konfigurasi Chromium dan cache cache.
gerlos
Ini mendefrag hanya luasan di dalam file itu sendiri, tetapi tidak file antara satu sama lain. Artinya, jika saya memiliki direktori yang berisi tiga file di lokasi fisik yang sangat berbeda pada disk, masih akan lambat untuk menggunakan file-file ini secara bersamaan setelah menjalankan alat ini. Apakah ada cara untuk mengatur ulang file pada disk, atau "defragment ruang kosong" seperti yang kadang-kadang disebut?
fuzzyTew
29

Lihatlah e2fsprogs . Ini juga tersedia dalam paket Ubuntu. Ini menyediakan program e4defrag.

TIIUNDER
sumber
5
Ini benar-benar hanya berguna pada sistem file ext4 yang dibuat dengan -O sejauh, yang bukan default.
Dobby
Orang itu menjawab tentang defrag, bisa jadi mungkin dengan e4defrag, pertanyaan tidak spesifik jurnal eksternal atau tidak, dia tidak layak -1.
Felipe Alcacibar
8
@dobey Ubuntu 12.04 (0,3) LTS mengandung extentdalam ext4bait dari [fs_types]bagian dalam /etc/mke2fs.conf- dengan demikian, itu adalah "default". Meskipun, terlepas dari konfigurasi mesin-waktu yang membuat sistem file terhubung, Anda sebaiknya memeriksa sistem file itu sendiri: tune2fs -l </dev/with/ext4> | grep extent(atau lihat baris "Filesystem features" dalam output tune2fs lengkap). Pikiran Anda, saya hanya berlari e4defrag -c ...pada sistem file 1TB 100% penuh dengan extent, dan hanya ada 5 file terfragmentasi, dan "skor fragmentasi" 0. YMMV.
Richard Michael
@RichardMichael FYI: e2defrag -c /pathhanya mencetak 5 file terfragmentasi pertama yang ditemukan (bahkan yang paling terfragmentasi). Jalankan e2defrag -v /pathuntuk melihat bagaimana ia mengurangi jumlah batas.
Tino
17

Gunakan Gparted untuk mendefrag sistem file Anda

Jika Anda memiliki cukup ruang pada hard drive Anda, Anda dapat menggunakan Gparted untuk mendefrag sistem file Anda ( ext2, ext 4, nfts, dll .). Anda harus mem-boot dari CD / DVD / USB boot disk karena drive yang sedang Anda kerjakan harus dilepas. Anda juga harus memiliki lebih banyak ruang yang tidak terpakai yang tersedia daripada ruang yang digunakan agar ini berfungsi dan mungkin perlu waktu.

  • Boot dari disk boot.
  • Jalankan gparted dan perkecil partisi yang berisi data yang ingin Anda defrag hingga melebihi jumlah data Anda.
  • Pastikan partisi yang ingin Anda defrag adalah partisi terakhir di drive dengan memindahkannya ke ujung (Anda mungkin harus membuat partisi kosong lain di depannya jika hanya ada satu partisi di drive).

Dengan partisi yang ingin Anda defrag sebagai partisi terakhir di drive:

  • tumbuhkan partisi di sebelah kiri ke ukuran maksimum. Ini akan memindahkan data partisi Anda ke ujung drive.
  • Setelah selesai, kecilkan partisi itu kembali ke ukuran sebelumnya.
  • Jika Anda membuat partisi kosong untuk memiliki lebih dari satu di disk, Anda sekarang dapat menghapusnya.
  • Pindahkan partisi Anda kembali ke tatanan asli dan tumbuhkan kembali partisi yang ingin Anda defrag kembali ke ukuran penuhnya.

Sekarang didefrag.

Dan saya tahu Anda tidak tertarik mengapa / mengapa tidak melakukan defrag ubuntu, tetapi saya akan tetap memposting tautan ke mengapa-adalah-defragmentasi-tidak perlu .

James
sumber
Setelah menyusut dan bergerak ke kanan, mengapa Anda tumbuh ke kiri lalu menyusut lagi alih-alih hanya bergerak ke kiri?
Jason C
Juga saya perhatikan bahwa setelah langkah tumbuh-kiri, data itu sendiri benar-benar dipindahkan ke kiri lagi (dibuktikan oleh data perpindahan gparted, diverifikasi oleh pemeriksaan langsung dari perangkat blok sesudahnya), jadi kecuali itu adalah perilaku yang bergantung pada versi / sistem file final menyusut + tumbuh kembali bisa dilewati. Ini tampaknya akan cukup untuk hanya melakukan: 1) menyusut dan bergerak ke kanan, 2) berlaku, 3) tumbuh kiri.
Jason C
Sederhana memindahkan partisi yang ingin Anda defrag ke yang terakhir tidak serta-merta memindahkannya ke akhir HD yang sebenarnya. Menumbuhkan partisi ke kiri ke ukuran maksimum memastikan bahwa partisi akhir sebenarnya "dipindahkan" ke bagian paling akhir dari hard drive.
James
Memindahkannya ke kanan tidak memindahkannya ke ujung hard drive. Bilah partisi di bagian atas GUI gparted sebenarnya merupakan representasi akurat dari tata letak data (well, setidaknya seperti yang terlihat oleh OS, perangkat flash misalnya memetakan logis ke lokasi fisik di sisi lain controller, tetapi untuk HDD khas, akurat). Ini dapat diverifikasi dengan mengamati lokasi awal yang baru di tabel partisi. :)
Jason C
Ah, kita salah berkomunikasi. Anda bermaksud menyusun ulang partisi sehingga ini adalah yang terakhir. Maksud saya memindahkan partisi ke ujung drive, dan itulah yang saya pikir Anda maksud juga (Anda dapat memindahkan partisi di drive dengan gparted secara terpisah untuk menyusun ulang mereka). :)
Jason C
3

Mendefrag sistem file ext4 di linux Saya menambahkan jawaban ini untuk juga menunjukkan bagaimana kita dapat menemukan berbagai alat Linux bawaan untuk melakukan beberapa operasi yang biasa dilakukan. kamu

Juga, perhatikan bahwa Anda hanya perlu melakukan sebagai pengguna super jika Anda ingin men-defragmen tanpa melepas.

Menggunakan perintah apropos

e4defrag -vc /path #verbose output with count
Sudip Bhandari
sumber
2

Ubuntu 14.04 LTS memang menempatkan (setidaknya drive utama) ke dalam partisi EXT4 ketika diinstal pada instalasi yang bersih (tidak berada di atas Win-Junk).

Dalam hal ini, jika Anda baru saja menyiapkan sistem baru, atau diformat segar pada sistem lama dan kemudian melakukan instalasi bersih, maka secara default dengan 14,04 LTS, Anda memiliki Partisi EXT4 di /dev/sda1.

Sekarang, buka saja Terminal ( CTRL- ALT- T) dan ketik:

sudo e4defrag -c /dev/sda1

dan bersabarlah sampai 'cek' selesai dan Anda mendapatkan kembali laporan fragmentasi.

Jika Anda tidak yakin memiliki Partisi EXT4 pada drive OS Anda, cukup pergi HOME dan ketik df -T. Lihat untuk melihat apa partisi sda * Anda diatur (coba ini di 14.04LTS, dan Anda akan melihat EXT4 kecuali Anda memilih jenis partisi lain saat pemasangan harddisk).

tombak
sumber
Punya sedikit di luar topik dan hampir tidak menambah nilai pertanyaan, terutama dengan kata-kata kasar terakhir.
Fernando Silveira
Anda dapat mendefrag lebih dari satu partisi dengan perintah yang sama: sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay
1

e2fsck -D /dev/sda1 mengoptimalkan Direktori dengan mengurutkan dan mengindeks ulang mereka yang biasanya mempercepat. Mungkin tidak dapat dianggap sebagai defrag sistem file lengkap, tetapi tidak semua sistem memiliki e4defrag.

rjt
sumber