ext4ファイルシステムをデフラグする方法


回答:


67

e4defragを使用してファイルを最適化する

ext4ファイルシステムがextentオプション(最近のディストリビューションではデフォルト)で作成されている場合、e4defragユーティリティを使用してオンラインで(アンマウントせずに)チェックおよびデフラグできます。

断片化レベルを次のようなもので確認してください(詳細を表示するには、rootになる必要があります)。

sudo e4defrag -c /path/to/myfiles

取得できる出力の例を次に示します。

$ 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.

この例のように、ほとんどの場合、デフラグは不要であると表示されますが、それでも実行したい場合は使用できます(独自のファイルをデフラグするためにsudoを使用する必要はありません)。

e4defrag /path/to/myfiles

ユーザーは自分のファイルで実行することもできます。他のユーザーのファイルやシステムファイルで作業する場合を除き、rootになる必要はありません。

e4defragであり e2fsprogs、パッケージ、そして私は、それがすでにお使いのUbuntuシステムにインストールさだと思います。


2
e4defrag -cはのみを返しますdone。それは断片化がないということですか?
hrzhu

3
申し訳ありませんが、ファイルの断片化に関する詳細情報を取得するには、root e4defrag -csudoまたはrootとして実行する必要があることを忘れていました。しかし、それらをデフラグするためにrootになる必要はありません。
ゲルロス

@gerlosルートファイルシステムをデフラグしようとするとどうなります/か?
パベルSayekat

2
@PavelSayekat sudoを実行するにはe4defrag /、rootになる(つまりを使用する)だけで、特別なことをする必要はありません。e4defragそこにあるすべてのファイルをチェックするので、ドライブがすべてを読み取るのを待つ準備をしてください。時間の浪費になることを忘れないでください。ほとんどの場合、ファイルシステムに十分な空き領域がある場合、断片化されたファイルはごくわずかであり、多くの場合、それらはWebブラウザのアクティビティに関連するホームディレクトリにあります。たとえば、私が毎日使用しているデスクトップPCでは、e4defrag断片化されたファイルが5つしかなく、すべてChromium configおよびcache dirにあると報告しています。
ゲルロス

これにより、ファイル内のエクステントのみがデフラグされますが、相互のファイルはデフラグされません。つまり、ディスク上の大きく異なる物理的な場所に3つのファイルを含むディレクトリがある場合、このツールを実行した後にこれらのファイルを同時に使用するのは依然として遅くなります。ディスク上のファイルを再配置する方法、または「空き領域を最適化する」方法はありますか?
ファジィ16

29

e2fsprogsを見てください。これはUbuntuパッケージでも利用できます。e4defragプログラムを提供します。


5
これは、デフォルトではない-Oエクステントで作成されたext4ファイルシステムでのみ有効です。
ドビー

男はデフラグに賛成します。e4defragで可能性があります。外部ジャーナリングであるかどうかは特定できません。-1に値しません。
フェリペアルカシバル

8
@dobey Ubuntu 12.04(.3)LTSはのセクションextentext4スタンザに含まれています-したがって、これは「デフォルト」です。ただし、ファイルシステムが接続されているマシンの作成時の構成に関係なく、ファイルシステム自体を検査することをお勧めします。念のため、私は100%のフル1TBファイルシステムでを実行しましたが、断片化されたファイルは5つしかなく、「断片化スコア」は0です。YMMV。[fs_types]/etc/mke2fs.conftune2fs -l </dev/with/ext4> | grep extente4defrag -c ...extent
リチャードマイケル

@RichardMichael FYI:e2defrag -c /path検出された最初の5つの断片化されたファイルのみを出力します(最も断片化されたファイルでさえも)。実行e2defrag -v /pathしてエクステントカウントがどのように減少するかを確認します。
ティノ

17

Gpartedを使用してファイルシステムを最適化する

ハードドライブに十分なスペースがある場合は、Gpartedを使用してファイルシステム(ext2、ext 4、nftsなど)を最適化できます。作業しているドライブをマウント解除する必要があるため、CD / DVD / USBブートディスクから起動する必要があります。また、これを機能させるには、使用済みスペースよりも多くの未使用スペースを使用できるようにする必要があり、時間がかかる場合があります。

  • 起動ディスクから起動します。
  • gpartedを実行し、デフラグするデータを含むパーティションを、データ量を超えて圧縮します。
  • 最適化するパーティションがドライブの最後のパーティションであることを確認してください(ドライブにパーティションが1つしかない場合は、その前に別の空のパーティションを作成する必要があります)。

ドライブの最後のパーティションとしてデフラグするパーティションを使用します。

  • 左側のパーティションを最大サイズに拡大します。これにより、パーティションデータがドライブの最後に移動します。
  • 完了したら、そのパーティションを元のサイズに戻します。
  • ディスクに複数の空のパーティションを作成した場合は、削除できます。
  • パーティションを元の順序に戻し、デフラグしたいパーティションをフルサイズに戻します。

最適化されました。

そして、あなたがubuntuをデフラグしない理由/デフラグしないことに興味がないことは知っていますが、とにかくデフラグの理由は不要ですへのリンクを投稿します。


縮小して右に移動した後、左に移動してから左に移動するのではなく、再び縮小するのはなぜですか?
ジェイソンC

また、左に成長するステップの後、データ自体が実際に左に移動したことに気づきました(gparted移動データによって証明され、その後ブロックデバイスの直接検査によって検証された)ので、それがバージョン/ファイルシステム依存の動作でない限り、縮小+再成長はスキップできます。1)縮小して右に移動、2)適用、3)左に拡大するだけで十分だと思われます。
ジェイソンC

最適化するパーティションを最後に移動するだけでは、必ずしも実際のHDの最後に移動するわけではありません。パーティションを左に最大サイズまで拡大すると、実際に最後のパーティションがハードドライブの一番最後に「移動」されます。
ジェームズ

右に動かすと、ハードドライブの最後に移動します。gparted GUIの上部にあるパーティションバーは、実際にはデータレイアウトの正確な表現です(少なくとも、OSから見える限り、フラッシュデバイスは、たとえばコントローラーの反対側の物理的な場所に論理的にマップしますが、典型的なHDD、それは正確です)。これは、パーティションテーブルの新しい開始位置を観察することで確認できます。:)
ジェイソンC

ああ、私たちは誤解しています。最後になるようにパーティションを並べ替えるつもりでした。私はパーティションをドライブの最後に移動することを意味しました、そしてそれもあなたが意図したことだと思います(それらを並べ替えることとは無関係にgpartedでドライブ上でパーティションを移動できます)。:)
ジェイソンC

3

Linuxでのext4ファイルシステムの最適化 この回答を追加して、一般的に行われている操作を実行するためのさまざまな組み込みLinuxツールを見つける方法を示します。君は

また、アンマウントせずにデフラグする場合にのみ、スーパーユーザーとして実行する必要があることに注意してください。

aproposコマンドを使用する

e4defrag -vc /path #verbose output with count

2

Ubuntu 14.04 LTSは、クリーンインストール(Win-Junkの上にない)にインストールされた場合、EXT4パーティションに(少なくともプライマリドライブを)配置します。

この場合、新しいシステムをセットアップしたか、古いシステムでフレッシュにフォーマットしてからクリーンインストールを実行した場合、デフォルトでは14.04 LTSでEXT4パーティションがあり/dev/sda1ます。

(今、ちょうどターミナル開くCTRL- - ALTTとタイプ:

sudo e4defrag -c /dev/sda1

「チェック」が完了し、断片化レポートが返されるまで、しばらくお待ちください。

OSドライブにE​​XT4パーティションがあることに自信がない場合は、ホームに移動してを入力しdf -Tます。sda *パーティションの設定を確認します(14.04LTSでこれを試してください。ハードドライブのセットアップ時に別のパーティションタイプを選択しない限り、EXT4が表示されます)。


少し話題から外れて、特に最終的な暴言で、質問に価値をほとんど追加しませんでした。
フェルナンドシルベイラ

同じコマンドで複数のパーティションを最適化できます:sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay

1

e2fsck -D /dev/sda1 ディレクトリを並べ替えてインデックスを再作成することでディレクトリを最適化します。これにより、通常は速度が向上します。完全なファイルシステムデフラグとは見なされない場合がありますが、すべてのシステムにe4defragがあるわけではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.