Linuxのdumpコマンドを徹底解説!ファイルシステムのバックアップとストレージ管理の基本
生徒
「Linux(リナックス)でサーバーのデータを丸ごと保存しておきたいのですが、初心者でもできる方法はありますか?」
先生
「それならdump(ダンプ)コマンドが便利ですよ。これはファイルシステム(ファイルシステム)という単位で、データをまるごとバックアップするためのツールです。」
生徒
「ダンプ、ですか?なんだか難しそうな名前ですね。普通のコピーとは違うんですか?」
先生
「普通のコピーはファイルを一つずつ写しますが、dumpはハードディスクの区画(パーティション)をそのまま記録するイメージです。仕組みを覚えれば、実はとても頼もしい味方になりますよ。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. dumpコマンドとは?
dump(ダンプ)コマンドは、Linuxにおいてext2/ext3/ext4といったファイルシステムの内容をバックアップするための専用コマンドです。読み方は、dump(ダンプ)と言います。dumpの語源は「投げ捨てる」や「一気に出力する」という意味があり、IT用語としてはメモリやディスクの内容をそのままファイルに書き出すことを指します。
このコマンドの最大の特徴は、個別のファイル単位ではなく、i-node(アイノード)というファイルシステムの管理情報レベルでデータを読み取ることです。これにより、ファイルの所有者情報やパーミッション(権限)を保持したまま、正確にバックアップを作成することが可能です。主にシステム管理者やサーバーエンジニアが、OSの重要なデータを保護するために利用する、伝統的で信頼性の高いストレージ管理ツールの一つです。
2. dumpとrestoreの関係
バックアップを取るのがdump(ダンプ)コマンドなら、そのバックアップからデータを元の状態に戻す(復元する)のがrestore(リストア)コマンドです。読み方は、restore(リストア)と言います。
dumpで作られたバックアップファイルは、そのままでは中身を読むことができません。特殊な形式で固められているため、必ずrestoreコマンドを使って展開する必要があります。例えるなら、dumpは「荷物を大きな箱に隙間なく詰め込む作業」で、restoreは「箱を開けて荷物を元の棚に並べ直す作業」といえるでしょう。この2つはペアで覚えるのがLinux運用の鉄則です。ストレージ管理において、バックアップだけ取って復元方法を知らないのは非常に危険なため、セットでの学習を推奨します。
3. ダンプレベル(0から9)の仕組み
dumpコマンドにはダンプレベルという概念があります。これは、バックアップの効率を上げるための賢い仕組みです。
- フルバックアップ(レベル0): ファイルシステム内のすべてのデータをバックアップします。
- 増分バックアップ(レベル1から9): 前回のバックアップから「変更された部分だけ」を保存します。
例えば、日曜日にレベル0でフルバックアップを取り、月曜日にレベル1、火曜日にレベル2と進めることで、毎日の作業時間を短縮し、保存先のストレージ容量を節約することができます。レベルの数字が小さいとき以降の変更を保存するというルールがあるため、効率的なスケジュールを組むことが可能です。これは商用サーバーの運用現場でも古くから使われている手法です。
4. 実際にdumpコマンドを使ってみる
それでは、実際のコマンドを見ていきましょう。dumpコマンドは通常、管理者権限が必要になります。まずは、指定したディレクトリ(パーティション)をファイルとしてバックアップする基本的な書き方です。ここでは「/dev/sdb1」というディスクの内容を「backup.dump」という名前で保存する例を紹介します。
オプションの「-0」はフルバックアップを意味し、「-u」はバックアップの記録を更新することを意味します。「-f」は出力先のファイル名を指定するオプションです。
dump -0uj -f /tmp/backup.dump /dev/sdb1
DUMP: Date of this level 0 dump: Wed Apr 1 10:00:00 2026
DUMP: Dumping /dev/sdb1 to /tmp/backup.dump
DUMP: Label: none
DUMP: Writing 1024 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 524288 blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: 524288 blocks on 1 volume(s)
DUMP: finished in 15 seconds
DUMP: DUMP IS DONE
5. バックアップの中身を確認する
バックアップを作成した後、本当に正しくデータが含まれているか不安になることがありますよね。restore(リストア)コマンドの「-t」オプションを使えば、実際に復元しなくても中身のファイル一覧を表示することができます。これを「コンテンツリストの表示」と呼びます。
大きなファイルを扱う前に、中身をチェックする癖をつけておくと、ストレージ管理のミスを防ぐことができます。初心者の方は、まずこの確認コマンドを覚えるのが上達の近道です。
restore -tf /tmp/backup.dump
Dump date: Wed Apr 1 10:00:00 2026
Dump content:
inst size rel name
2 1024 .
1234 5678 /etc/hosts
1235 9012 /var/www/index.html
6. 特定のファイルだけを復元する(インタラクティブモード)
「間違えて一つのファイルだけ消しちゃった!」という場合に、ディスク全体を復元するのは時間がもったいないですよね。そんな時はrestore(リストア)コマンドの「-i」オプション、つまりインタラクティブモード(対話モード)を使います。
このモードを使うと、バックアップファイルの中をまるで普通のディレクトリのように移動しながら、復元したいファイルだけをピックアップ(マーク)して取り出すことができます。読み方は、インタラクティブモード(タイワモード)と言います。
restore -if /tmp/backup.dump
restore > ls
.:
etc/ var/
restore > cd etc
restore > add hosts
restore > extract
You have read the restore volume
set owner/mode for '.'? [yn] n
restore > quit
7. /etc/dumpdatesファイルの重要性
dumpコマンドで「-u」オプションをつけて実行すると、/etc/dumpdates(エトセ・ダンプデイツ)というファイルにバックアップの履歴が書き込まれます。ここには「どのデバイスを」「いつ」「どのレベルで」バックアップしたかが記録されます。
Linuxシステムはこのファイルを参照して、増分バックアップの基準点を判断します。もしこのファイルを手動で消してしまうと、前回のバックアップがいつ行われたか分からなくなり、増分バックアップが正しく動作しなくなるので注意が必要です。ストレージ管理において、この設定ファイルの存在を知っておくことは非常に重要です。初心者のうちは、このファイルの中身をcat(キャット)コマンドで覗いてみるのも勉強になりますよ。
cat /etc/dumpdates
/dev/sdb1 0 Wed Apr 1 10:00:00 2026 +0900
/dev/sdb1 1 Thu Apr 2 10:00:00 2026 +0900
8. dumpコマンドを使う際の注意点
dump(ダンプ)コマンドは非常に強力ですが、いくつかの注意点があります。まず、最も重要なのは「マウントされているファイルシステムに対して実行する場合は注意が必要」という点です。データが書き込み中の状態でdumpを実行すると、バックアップデータが不整合(壊れた状態)になる可能性があります。
理想的には、ファイルシステムを読み取り専用(リードオンリー)で再マウントするか、システムをシングルユーザーモードにしてから実行するのが安全です。また、最近のLinuxで主流のXFS(エックスエフエス)ファイルシステムでは、dumpコマンドではなく、xfsdump(エックスエフエスダンプ)という専用のコマンドを使う必要があります。自分が使っているLinuxのストレージがどの形式(ファイルシステム)なのかを事前に確認することが、失敗しないための第一歩です。
9. 初心者がdumpコマンドを学ぶメリット
最近ではクラウドサービスやGUIのバックアップツールが普及していますが、なぜ今dump(ダンプ)コマンドを学ぶのでしょうか。それは、Linuxの根幹である「ファイルシステム」の構造を深く理解できるからです。i-node(アイノード)やブロック、パーティションといった概念は、トラブルシューティングの際に必ず役立つ知識です。
また、コマンドラインでの操作に慣れることで、自動実行スクリプト(シェルスクリプト)を組んでバックアップを完全自動化することも可能になります。エンジニアとしてのスキルアップを目指すなら、こうした伝統的なコマンドをマスターしておくことは、非常に大きな武器になるでしょう。まずは自分の練習用環境で、小さなパーティションを作成してdumpとrestoreの練習を繰り返してみてください。習得すれば、データの消失を恐れる必要がなくなりますよ。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxシステムにおけるデータ保護の要であるdump(ダンプ)コマンドと、対になるrestore(リストア)コマンドについて解説してきました。今回の内容を振り返ると、単なるコピー作業とは異なり、ファイルシステムの深層部であるi-node(アイノード)を基準としたバックアップがいかに強力であるかがお分かりいただけたかと思います。
dumpコマンドの重要ポイント再確認
バックアップ運用の現場で最も重要なのは、データの完全性と運用の効率化です。dumpコマンドは「ダンプレベル」という仕組みを導入することで、ストレージ容量を節約しながら、日々の変更分だけを確実に保存することを可能にしています。これにより、フルバックアップを毎回行うという膨大な時間的コストを大幅に削減できるのです。
| 機能・概念 | 解説とメリット |
|---|---|
| ファイルシステム単位 | ext2/ext3/ext4といったファイルシステムの構造そのものを保存するため、権限設定まで完全に復元可能。 |
| 増分バックアップ | レベル1から9を活用することで、前回のバックアップ以降に変更されたデータのみを抽出して保存。 |
| i-nodeベースの処理 | OSの管理情報レベルでデータを読み取るため、ファイル単位のコピーよりも高速かつ確実な処理が期待できる。 |
| /etc/dumpdates | バックアップ履歴を管理する重要なファイル。これがシステムの自動的な判断を支えている。 |
実務で役立つスクリプト例
サーバーエンジニアが日常業務でdumpコマンドを利用する際は、手動でコマンドを打つのではなく、シェルスクリプトなどを用いて自動化するのが一般的です。例えば、以下のような簡単なスクリプトを作成することで、特定のパーティションを定期的にバックアップする仕組みを構築できます。
#!/bin/bash
# バックアップ保存先ディレクトリ
BACKUP_DIR="/mnt/backup_storage"
# バックアップ対象デバイス
TARGET_DEV="/dev/sda1"
# 現在の日付を取得
DATE=$(date +%Y%m%d)
# フルバックアップ(レベル0)を実行する例
# -uオプションで /etc/dumpdates を更新し、履歴を残す
dump -0u -f ${BACKUP_DIR}/full_backup_${DATE}.dump ${TARGET_DEV}
echo "バックアップが完了しました:${DATE}"
このように、Linuxの標準機能を組み合わせることで、高価なバックアップソフトを導入せずとも、堅牢なデータ保護環境を構築することが可能です。また、restoreコマンドのインタラクティブモード(-i)を使いこなせば、特定のファイルだけをレスキューするという柔軟な対応もできるようになります。
これからのステップ:さらなるストレージ管理へ
本記事で学んだdumpとrestoreは、Linuxエンジニアとしての登竜門とも言える知識です。現在の主流がクラウドや仮想化環境に移行しても、背後で動いているファイルシステムの仕組みは共通しています。まずは自分の開発環境や仮想マシンを使って、実際にデータをバックアップし、一度中身を削除してからリストアするという「復元テスト」を繰り返し行ってみてください。この経験が、将来的なサーバーの不具合やデータ破損といったトラブル時に、冷静に対処できる自信へと繋がります。
Linuxの伝統的なツールをマスターすることは、最新技術の根本を理解することと同義です。dumpコマンドを通じたストレージ管理の基本を、ぜひあなたのスキルセットに加えてください。
生徒
「先生、dumpコマンドについて詳しく教えていただきありがとうございました!普通のコピーと違って、ファイルシステムの『i-node』という深い部分からバックアップを取っているからこそ、確実性が高いんですね。」
先生
「その通りです。表面的なファイル名だけでなく、Linuxがファイルを管理するためのメタデータまで含めて保存するのがdumpの強みですね。実際に試してみて、何か気になったところはありましたか?」
生徒
「はい、ダンプレベルの使い分けが面白いなと思いました。毎日フルバックアップを取ると容量が足りなくなりますが、レベル0、1、2と使い分けることで、必要なデータだけを効率よく守れるのが合理的です。でも、もしバックアップしたファイルの中身を忘れてしまったらどうすればいいんでしょう?」
先生
「いい質問ですね。その時はrestoreコマンドの『-t』オプションを思い出してください。実際に復元作業をしなくても、中身のリストを確認できます。中身を確認してから、必要なものだけを『-i』のインタラクティブモードで取り出すのが、プロのエンジニアのスマートなやり方ですよ。」
生徒
「なるほど、いきなり全部戻す必要はないんですね!あと、/etc/dumpdatesファイルを cat コマンドで確認してみたのですが、いつ何が行われたか一目で分かって感動しました。これがバックアップの家計簿みたいな役割をしているんですね。」
先生
「いい例えですね。その家計簿があるからこそ、システムは『次はレベルいくつでバックアップすべきか』を迷わずに判断できるんです。最後に一つアドバイスですが、バックアップは『取ること』よりも『戻せること』が重要です。たまには練習として、restoreの訓練も忘れないでくださいね。」
生徒
「分かりました!さっそくテスト用パーティションを作って、dumpとrestoreの練習をしてみます。これでデータの消失を恐れずにLinuxを使い倒せそうです!」