「NILFS2」の版間の差分
(ページの作成:「Category:File systems en:NILFS2 {{Related articles start}} {{Related|ファイルシステム}} {{Related articles end}} [https://nilfs.sourceforge.io/en/ NILFS2…」) |
細 (→ファイルシステムをリサイズする: style) |
||
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
| − | [[Category: |
+ | [[Category:ファイルシステム]] |
[[en:NILFS2]] |
[[en:NILFS2]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
| 143行目: | 143行目: | ||
マウント済み NILFS2 ファイルシステムは以下のコマンドでリサイズできます: |
マウント済み NILFS2 ファイルシステムは以下のコマンドでリサイズできます: |
||
| − | # nilfs-resize /dev/sdxY desired-size |
+ | # nilfs-resize /dev/sdxY ''desired-size'' |
{{ic|desired-size}} では単位接尾辞 {{ic|s}} (512バイトセクタ)、{{ic|K}} (キロバイト)、{{ic|M}} (メガバイト)、{{ic|G}} (ギガバイト)、{{ic|T}} (テラバイト) を使用できます。{{ic|desired-size}} が指定されなかった場合、デフォルトでパーティションのサイズが使用されます。 |
{{ic|desired-size}} では単位接尾辞 {{ic|s}} (512バイトセクタ)、{{ic|K}} (キロバイト)、{{ic|M}} (メガバイト)、{{ic|G}} (ギガバイト)、{{ic|T}} (テラバイト) を使用できます。{{ic|desired-size}} が指定されなかった場合、デフォルトでパーティションのサイズが使用されます。 |
||
2025年7月5日 (土) 00:45時点における最新版
関連記事
NILFS2 (New Implementation of a Log-structured File System) はログ構造化ファイルシステムです。ファイルシステム全体のバージョニングや連続的なスナップショットをサポートしており、数秒前に間違って上書きしたり壊してしまったりしたファイルでも復元することができます。
このファイルシステムは日本電信電話 (NTT) サイバースペース研究所と世界中のコミュニティによって開発されました。NILFS は GNU General Public License (GPL) の下でライセンスされました。
NILFS2 では連続的にスナップショットが作成されるため、ファイルシステムが自動的に全ファイルの過去のバージョンを保持するバージョニングファイルシステムとみなすことができます。
目次
NILFS2 ファイルシステムを作成する
この記事ではデバイスにパーティションがすでにセットアップされていると仮定しています。nilfs-utils をインストールしてください。mkfs.nilfs2 を使い、/dev/sdxY のように対象のパーティションを指定してフォーマットしてください:
# mkfs.nilfs2 -L mylabel /dev/sdxY
利用可能なオプションは mkfs.nilfs2(8) を参照してください。
ラベルを変更する
nilfs-tune コマンドはマウントされていないファイルシステムにのみ使用してください。
# nilfs-tune -L newlabel /dev/sdxY
マウントする
その後、ファイルシステムは手動あるいは他の方法でマウントできるようになります:
# mount /dev/sdxY /mnt/foo
マウントオプション
エラーハンドリング
errors=continue / remount-ro / panic は、ファイルシステムエラー時に NILFS2 が何をすべきかを指定します。continue はエラーを無視し、remount-ro はファイルシステムを読み取り専用でマウントし、panic はシステムを停止させます。
Discard
discard / nodiscard はそれぞれ TRIM を有効化/無効化します。
利用可能なオプションは mount.nilfs2(8) を参照してください。
スナップショット
NILFS2 には2種類のスナップショット (チェックポイントとスナップショット) があります。これらはそれぞれ cp、ss と表記されます。
NILFS2 は書き込み毎にチェックポイントを自動的に作成します。チェックポイントは、ファイルシステムが満タンになった時やユーザーが手動でガベージコレクションを発動させた時に領域を空けるために NILFS2 のガベージコレクタによって自動的に削除されうるスナップショットです。
スナップショットはチェックポイントから手動で変換する必要があり、自動的に削除されません。スナップショットはマウントすることができ、データを復元することができます。
スナップショットを一覧表示する
チェックポイントとスナップショットは以下のようにして一覧表示できます:
lscp /dev/sdxY
CNO DATE TIME MODE FLG BLKCNT ICNT
1 2025-04-14 21:35:06 cp - 10181423 554012
2 2025-04-14 22:17:38 cp - 10181423 554012
3 2025-04-14 22:18:22 cp - 10181423 554012
4 2025-04-14 22:28:56 cp - 10181423 554012
5 2025-04-14 22:39:59 cp - 10181423 554012
...
スナップショットのみを表示するには lscp に -s フラグを渡してください。利用可能なオプションは lscp(1) を参照してください。
チェックポイントをスナップショットに変換する
チェックポイントからデータを復元するには、先にチェックポイントをスナップショットに変換する必要があります。変換には chcp ユーティリティを使用してください:
# chcp ss /dev/sdxY checkpoint-number
checkpoint-number は lscp の CNO 列のチェックポイント番号です。
実行すると、lscp では以下のように表示されます:
4 2025-04-14 22:28:56 ss - 10181423 554012
スナップショットをチェックポイントに戻すには:
# chcp cp /dev/sdxY checkpoint-number
スナップショットを作成する
以下のようにしてチェックポイントを作成してください:
# mkcp /dev/sdxY
あるいはスナップショットを直接作成するには:
# mkcp --snapshot /dev/sdxY
スナップショットをマウントする
以下のコマンドはスナップショット checkpoint-number を読み取り専用で /mnt/snapshot にマウントします:
# mount -t nilfs2 -r -o cp=checkpoint-number /dev/sdxY /mnt/snapshot
スナップショットを削除する
チェックポイントを一つだけ削除するには:
# rmcp /dev/sdxY checkpoint-number
ある範囲のチェックポイントを一括で削除するには:
# rmcp /dev/sdxY start..end
start は開始チェックポイント番号、end は終点のチェックポイント番号です。(訳注: 削除範囲は [start, end] です。[start, end) ではありません。)
特定のチェックポイント及びそれより前のチェックポイントを全て削除するには:
# rmcp /dev/sdxY ..checkpoint-number
特定のチェックポイント及びそれより後のチェックポイントを全て削除するには:
# rmcp /dev/sdxY checkpoint-number..
詳細は rmcp(8) を参照してください。
ファイルシステムをクリーンアップする
マウント済みの NILFS2 ファイルシステムから古いチェックポイントをクリーンアップするには:
# nilfs-clean /dev/sdxY
ガベージコレクタに関する詳細は nilfs-clean(8) と nilfs_cleanerd(8) を参照してください。
ファイルシステムをリサイズする
nilfs-resize は NILFS2 ファイルシステムをリサイズします。
マウント済み NILFS2 ファイルシステムは以下のコマンドでリサイズできます:
# nilfs-resize /dev/sdxY desired-size
desired-size では単位接尾辞 s (512バイトセクタ)、K (キロバイト)、M (メガバイト)、G (ギガバイト)、T (テラバイト) を使用できます。desired-size が指定されなかった場合、デフォルトでパーティションのサイズが使用されます。
nilfs-resize は勝手にパーティションのサイズを変更しません。ファイルシステムを縮小した場合は後でパーティションを縮小する必要があり、逆にファイルシステムを拡張したい場合はあらかじめパーティションを拡張しておく必要があります。これは fdisk などで行えます。
詳細は nilfs-resize(8) を参照してください。