ディスクのフォーマット、マウント、「rsync
」を使ったバックアップ
1. ステップ1: 新しいディスクのフォーマット
ファイルシステムの旅の実践部分へようこそ!今日は、フォーマット、マウント、バックアップに関する前回の講義で学んだことをすべて組み合わせます。そして、もし上司のドキュメントが入ったUSBをうっかりフォーマットしてしまったら、どうやって修復できるかを確実に知ることができます。まあ、最悪の場合、別の職業に転職する準備ができるでしょう。
シナリオ
コンピュータに新しいディスクを追加したと想像してください。このディスクはまだ空っぽで、システムで使えるようにはなっていません。これからフォーマット作業を始めます。
手順:
1.1 接続されているデバイスを確認する
まず、新しいディスクがどこにあるのかを確認します。lsblk
コマンドを使いましょう:
lsblk
すべてが正しく接続されていれば、次のような出力が見えるはずです:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 50G 0 part /
├─sda2 8:2 0 50G 0 part /home
sdb 8:16 0 500G 0 disk
ここでsdb
が新しいディスクにあたります。このディスクにはまだパーティションがありません。
1.2 ディスクにファイルシステムを作成する
ファイルシステムとしてext4
が適しているとしましょう。このファイルシステムを作成するためにはmkfs
を使用します:
sudo mkfs.ext4 /dev/sdb
コマンドの実行後、システムはこのディスクを使用できるようになります。ただし、フォーマットはデバイス上のすべてのデータを消去するため注意してください。もしこの瞬間、上司のディスクを挿してフォーマットしようとしているなら、すぐに止めてください。今すぐ。
2. 手順 2: 新しいディスクのマウント
さあ、新しくフォーマットしたディスクをファイルシステムに接続しよう。
2.1 マウントポイントを作成する
ディスクを接続する場所が必要だよね。通常はフォルダを使うんだ。例えば、/mnt
にフォルダを作成しよう:
sudo mkdir /mnt/newdisk
2.2 ディスクをマウントする
ディスクをシステムに接続しよう:
sudo mount /dev/sdb /mnt/newdisk
すべてが正しく動作しているか確認するには、df
コマンドを使用してみて:
df -h
リストに/mnt/newdisk
とディスクが表示されるはずだよ。
2.3 自動マウントの設定
毎回ディスクを手動で設定するのが面倒だから、/etc/fstab
ファイルに追加しよう。最初にblkid
を使ってデバイスのUUIDを確認するんだ:
sudo blkid /dev/sdb
出力結果はこんな感じになるはず:
/dev/sdb: UUID="abcd-1234-efgh-5678" TYPE="ext4"
この行を/etc/fstab
に追加しよう:
UUID=abcd-1234-efgh-5678 /mnt/newdisk ext4 defaults 0 2
これでシステムを起動するたびにディスクが自動的にマウントされるようになるよ。
3. ステップ3: データのアーカイブ
仮に新しいディスクにフォルダ/mnt/newdisk/data
があり、バックアップする前にアーカイブ化して圧縮したいとしましょう。
3.1 tar
を使ったアーカイブの作成
data
フォルダをアーカイブしましょう:
tar -cvf data_backup.tar /mnt/newdisk/data
3.2 gzip
を使ったアーカイブの圧縮
作成したアーカイブを圧縮します:
gzip data_backup.tar
これでdata_backup.tar.gz
というファイルができます。サイズが小さく、移動が簡単です。
4. ステップ4: rsync
を使用したバックアップ
バックアップの準備ができました。データを他のサーバーやディスクの場所に移動するためにrsync
を使用します。
4.1 ローカルバックアップ
フォルダdata
を別のディレクトリにバックアップしたい場合は、次を実行します:
rsync -av /mnt/newdisk/data /mnt/backup/
キー:
-a
アーカイブモードを有効にし、アクセス権やファイル構造を保持します。-v
詳細な出力を有効にします。
4.2 リモートサーバーへのコピー
データをサーバーに転送する必要がある場合は、次を使用します:
rsync -av /mnt/newdisk/data username@remote_server:/backup/
username
をサーバー上のユーザー名に、remote_server
をサーバーのアドレスに置き換えるのを忘れないでね。
5. ステップ 5: scp
を使った簡単なバックアップ
時々、scp
を使うのが一番簡単だよね。例えば、アーカイブを直接サーバーに転送したい場合:
scp data_backup.tar.gz username@remote_server:/backup/
これで、ファイルdata_backup.tar.gz
がリモートサーバーのフォルダ/backup
にコピーされるよ。
6. ステップ6: 全プロセスの動作確認
こんな感じのステップを実行しました:
- 新しいディスクにファイルシステムを作成しました。
- ディスクをマウントして、自動マウントを設定しました。
- フォルダー内のデータをアーカイブし、圧縮しました。
rsync
とscp
を使ってバックアップを作成しました。
今、コピーしたデータが利用可能か確認してみましょう。ターゲットサーバーで data_backup.tar.gz
を解凍して試してください:
gunzip data_backup.tar.gz
tar -xvf data_backup.tar
データは元通り、生きてて無事です。息をつけてもOK。
7. 特徴と可能なエラー
device or resource busy
のようなメッセージがアンマウント中に表示された場合、デバイスがプロセスに使用されていないことを確認してください。そのためにはfuser
を使用します:fuser -m /mnt/newdisk
/etc/fstab
を間違えて設定すると、システムが起動しないことがあります。リカバリーモードを使用するか、事前に変更をテストしてください:sudo mount -a
rsync
を使ったバックアップの際、ディレクトリを同期させ、対象側の余分なデータを削除したい場合は、--delete
オプションを忘れないようにしてください。
これでディスクを自信を持って管理し、マウントし、データの安全性をバックアップで確保するための知識が身に付きました。そして一番大事なのは、新しいハードディスクをデスクに置いてそれをフォーマットしている理由を、重要そうな顔で説明できることです。😉
GO TO FULL VERSION