デフォルトでは、Linux システムをインストールすると、ルート パーティション (「/」) の下に /tmp ディレクトリが自動的に作成されます。場合によっては、/tmp ディレクトリを別のマウント ポイントまたはパーティションに完全に分離したい場合があります。特に、独立して管理したい場合や、/tmp の下に大量のデータを保存する必要がある場合。
ユーザーが /tmp ディレクトリの下に大量のデータをダンプして、ルート ファイルシステムがいっぱいになり、システムの多くの重要な機能が妨げられるケースを見てきました。 /tmp が別のマウント ポイントにある場合、この問題はまったく発生しない可能性があります。この投稿では、/tmp をルート ファイルシステムから別のマウント ポイントに移動する手順を段階的に説明します。
注意 :以下の手順はオンラインで行われますのでご注意ください。ただし、ルートファイルシステムの有効なバックアップを取っていることを確認してください。障害が発生した場合に備えてください。1. 既存の VG およびディスクで使用可能なスペースを表示します。既存のボリューム グループにスペースがない場合は、新しいディスクまたは新しいパーティションを追加します。以下のコマンドを使用して、システムに存在する使用可能なスペースとディスクを表示できます。
# vgdisplay # fdisk -l
2. LVM が使用する新しいディスクまたはディスク上のパーティションを初期化して、新しいマウント ポイントを作成します。この例では、sdc ディスク上のパーティションを使用しています。
# pvcreate /dev/sdc1
3. このパーティションを使用して新しいボリューム グループを作成します:
# vgcreate tmp_vg /dev/sdc1
4. 新しく作成されたボリューム グループ tmp_vg で使用可能な空き容量を確認します。
# vgdisplay tmp_vg
5. このボリューム グループに新しい論理ボリューム (tmp_lv) を作成します。私の場合、VG に 20GB の空き容量があります。 VG の空き容量に応じてサイズを調整できます。
# lvcreate -L 20G -n tmp_lv tmp_vg
6. /tmp のファイルシステムを作成します。
# mkfs.ext4 /dev/vg_tmp/lv_tmp
7. /tmp/ ディレクトリの内容をバックアップ ディレクトリにバックアップします。
# mkdir /tmp_bkp # rsync -avz /tmp/ /tmp_bkp
8. 新しく作成した /tmp ファイルシステムをマウントします:
# mount /dev/tmp_vg/tmp_lv /tmp/
この時点で、/tmp マウント ポイントまたはディレクトリに存在するデータは見つかりません。
9. バックアップ ディレクトリから新しくマウントされた /tmp にすべての内容をコピーします。
# rsync -avz /tmp_bkp/ /tmp/
変更を永続化する
上記の変更を行って、再起動後も保持されるようにします。このためには、/etc/fstab にファイル システム エントリが必要です。 ファイル。
1. まず、以下のコマンドで tmp_lv 論理ボリュームの UUID を見つけます:
# blkid
2. 上記のコマンドの UUID を使用して、以下のように作成して入力します。
# cat /etc/fstab UUID=[UUID-for-tmp_lv] /tmp ext4 defaults 0 0
[UUID-for-tmp_lv] を、先ほど起動した blkid コマンドの実際の UUID に置き換えます。
3. ここで /tmp をアンマウントし、「mount -a」コマンドでマウントしてみて、/etc/fstab に作成したエントリが正しいかどうかを確認してください。
# umount /tmp # mount -a ### (or mount /tmp)
4. また、新しい /tmp のアクセス権がまだ設定されていない場合は、必ず 1777 に設定してください。これは、/tmp マウント ポイントにスティッキー ビットを設定するために必要です。
# chmod 1777 /tmp