====== ext4 の初期化を早く終わらせる ======
===== 概要 =====
* Linux 標準となっている ext4 形式で初期化すると、比較的早く初期化が終わる。
* しかし、実際はきちんと初期化されておらず、初期化したディスクをマウントした時にバックグラウンドで走る ''ext4lazyinit'' プロセスがディスクに負荷をかけないようにゆっくりと実際の初期化作業をしている。
* これを知らなかった自分の経験上、''ext4lazyinit'' が実行されているディスクに、大量のデータを転送すると I/O エラーが発生する。多分、初期化が間に合ってなかったのだと思う。
* したがって、これを早く終わらせるためには、以下の 2 通りの方法がある。
- 初期化時に、実際の初期化を行う。
- マウント時に初期化を強制的に行う。
* このページでは、これらの方法を紹介する。
===== コマンド =====
==== 初期化時に、実際の初期化を行う ====
$ sudo mkfs.ext4 -E lazy_itable_init=0 /dev/sdX
* /dev/sdX は初期化したいディスクのデバイスファイル
==== マウント時に初期化を強制的に行う ====
上記の初期化時のオプションを付け忘れて初期化してしまった場合、こちらの方法を取ると良い。
$ sudo mount -t ext4 -o init_itable=0 /dev/sdX MOUNT_PATH
* ''MOUNT_PATH'' にはマウント先
* これでマウントすると、''iotop'' コマンド上でディスクアクセスが ''ext4lazyinit'' によって 100% 近くに張り付いている。''ext4lazyinit'' プロセスが消えたら初期化完了である。
===== 参考サイト =====
* [[https://fedetft.wordpress.com/2022/01/23/on-ext4-and-forcing-the-completion-of-lazy-initialization/ | On ext4 and forcing the completion of lazy initialization | fede.tft's Blog]]
* [[https://pyopyopyo.hatenablog.com/entry/2021/04/06/190000 | 大容量HDD/SDDを高速にフォーマットする方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -]]
{{tag>Linux サーバ}}