回答:
このようにマウントされていても、ext2、ext3、またはext4ファイルシステムでfsck.ext2を安全に実行できます。
sudo fsck.ext2 -fn /dev/sdXY
ドライブがマウントされている場合、多くのエラーが出力されますが、-n引数はドライブに触れないように指示します。
$ sudo fsck.ext2 -fn /dev/sda1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Ubuntu_Rescue: 291595/1222992 files (0.2% non-contiguous), 1927790/4882432 blocks
sudo tune2fs -C 16000 /dev/sda1
を実行して再起動してください。
ファイルシステムの最新のextファミリーは、ファイルを割り当てる際にバランスと連続性を考慮します。ext3およびext4では、通常、ジャーナルエントリを順番に適用することにより、特にext4では、連続したブロックを増やすためにファイルシステムエクステントを事前に割り当てることにより、バランシングが行われます。特にシステムがいくつかのファイルに繰り返しアクセスしている場合、20%未満の断片化レベルを追いかけるのは時間の価値がないかもしれません。単一ディスクシステムの読み取り速度を上げるために、これらの戦術を追求することをお勧めします。
RAMの増加:ファイルシステムのキャッシュが増加します
ブロックサイズを増やす:1kから4kブロックサイズに移動することにより、ブロックサイズに近い、またはそれより大きいファイルの読み取りのパフォーマンスが向上します。
独創的な場合は、大きなファイルと小さなファイルをブロックサイズごとにパーティションに整理できます。写真、ビデオ、ソースコードを別々のディレクトリに保存した場合にのみこれを行うことができます。
hdparmやラップトップモードユーティリティを使用して先読み設定を増やします。
tarなどの線形方式でファイルシステムをバックアップおよび復元します
複数のディスクがあり、RAIDストライピングやLVMを使用している場合、ストライプサイズなど、他の考慮すべき要素があります。
はい、特定のfsck
呼び出しがあります(rootまたはsudoとして):
$ fsck /dev/sdXY
XとYをケースの正しいパラメーターに置き換えます(例:)/dev/sda1
。
取り付けられたパーティションでこれを実行しないでください!ファイルシステムに深刻なダメージを与える可能性があります。
Linuxとデフラグの詳細については、こちらの回答をご覧ください。
特にfsckを実行する必要はないが、ドライブの断片化を確認したいだけの場合は、次のスクリプト(ここから取得)がトリックを実行するはずです。
#!/usr/bin/perl -w
#this script search for frag on a fs
use strict;
#number of files
my $files = 0;
#number of fragment
my $fragments = 0;
#number of fragmented files
my $fragfiles = 0;
#search fs for all file
open (FILES, '-|', "find '$ARGV[0]' -xdev -type f -print0");
$/ = "\0";
while (defined (my $file = <FILES>)) {
open (FRAG, "-|", "filefrag", $file);
my $res = <FRAG>;
if ($res =~ m/.*:\s+(\d+) extents? found/) {
my $fragment = $1;
$fragments += $fragment;
if ($fragment > 1) {
$fragfiles++;
}
$files++;
} else {
print ("$res : not understand for $file.\n");
}
close (FRAG);
}
close (FILES);
print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n");
その後、問題のディレクトリ(またはマウントポイント)で実行できます。
$ frag_check.pl $HOME/
1.32410691664555% non contiguous files, 1.05380668862427 average fragments.
この情報を取得するには、e2defragなどのツールを使用できます。
Linuxファイルシステムの性質上、デフラグは通常不要であることに注意してください。
e4defrag -c
が、うまくいきませんでした。
-c
最後の引数としてオプションの後のExt3またはExt4 mointポイントをポイントします。そして...「機能しませんでした」?表示されるエラーは何ですか?