
数時間後、新しい大容量4TBハードドライブをフォーマットする予定です。私が知っている限り、直接フォーマットするとフォーマットされているように見えます。
10000rpm x 4GB DDR3 RAMでリアルタイムフォーマットすると、時間がかかることがあります。それでLinuxはこの概念を提案しました。ext4遅延初期化。
私はDebian GNU / Linux 'Stretch'を実行しており、カーネル4.9を使用しています。
[$] uname -a
Linux debian 4.9.0-1-amd64 #1 SMP Debian 4.9.2-2 (2017-01-12) x86_64 GNU/Linux
[$] lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.0 (stretch)
Release: 9.0
Codename: stretch
今Wikiによると、次のように言っています。
有効にされ、uninit_bg機能が有効になっている場合、inodeテーブルはmke2fsによって完全に初期化されません。これにより、ファイルシステムの初期化速度が大幅に向上しますが、ファイルシステムが最初にマウントされたときにカーネルがバックグラウンドでファイルシステムの初期化を完了する必要があります。このオプションの値を省略すると、遅延 inode テーブルのゼロ化を有効にするために、デフォルト値は 1 です。 ——トーマス・ケイン
今私のカーネルで上記の機能が有効になっているかどうかを知る方法はありますか?
更新 -
/boot/config-4.9.0-1-amd64
.によると、ファイルの長さは7865行です。
[$] cat /boot/config-4.9.0-1-amd64 | tail -n 1
7865 CONFIG_SBITMAP=y
grepを使用しても結果はありません。
[$] cat /boot/config-4.9.0-1-amd64 | grep LAZY
ext4もそうです。
[$] cat /boot/config-4.9.0-1-amd64 | grep EXT4
6895 CONFIG_EXT4_FS=m
6896 CONFIG_EXT4_USE_FOR_EXT2=y
6897 CONFIG_EXT4_FS_POSIX_ACL=y
6898 CONFIG_EXT4_FS_SECURITY=y
6899 CONFIG_EXT4_ENCRYPTION=y
6900 CONFIG_EXT4_FS_ENCRYPTION=y
6901 # CONFIG_EXT4_DEBUG is not set
誰でもどんなアイデアがありますか?
答え1
Googleでカーネルコンパイル文字列を確認してください(またはカーネルソースの「make menuconfig」を確認してください)。確かにCONFIG_EXT4_FS_で始まります。実際に実行中のカーネルに対するこれらのカーネルコンパイルフラグは/proc/config.gzで提供できます(ただし、それはカーネルコンパイルフラグでもあるため、システムで有効または無効になる可能性があります)。 boot/config-your-kernel-version (ディストリビューションではこれを提供する場合もありません)。
私が覚えている限り、これは古い(少なくとも5年前)機能なので、おそらくカーネルはこの機能をサポートします。
オンラインext4のサイズ変更は、非常に微調整された特定のmke4fs構成では機能しません(申し訳ありませんが、正確には何かを忘れました。特定のext4 fsフラグのために不可能です)。
答え2
私はこのext4機能に関するバグを調査してきました。私が知る限り、カーネルソースコード(linux 4.15.x)には "uninit_bg"という関数はありません。問題の主な機能は「lazy_itable_init」ですが、ext4ファイルシステムで焼きたてのようです。このコードにはいくつかの変更があり、コメントと文書が現実に追いつく必要があるかもしれません。
使用時に他の人が言ったようにオプションを追加mkfs
できます-E lazy_itable_init=0
。属性がファイルシステムのメタデータに保存されていないようです。遅延初期化を処理するために使用されるカーネルスレッドがトリガされるかどうかは設定されているかどうかlazy_itable_init
によって異なりますが、一度すべてのブロックがset ITABLE_ZEROEDフラグがFSに設定され、ファイルシステムが初期化され、それがすべてです。初期化方法はもはや関連しません。