私はCentOS-8を仮想化ホストとして使用しています(したがって、あまりにも多くのアプリケーションをインストールするのを避けたい)。 1xドライブ、LVMファイルシステム
新しくインストールしました。./boot
、、、./boot/efi
./home
./
それぞれには独自のパーティションがあります。
/var
、、、および/tmp
を/srv
含むパーティションに再配置するには、どのツールとコマンドが必要ですか/home
?
答え1
これらのディレクトリを下にコピーして/home
(使用)シンボリックリンクを作成(使用)することでこれを行うことができますが、これは良い考えではありません。mv
ln -s
シンボリックリンクとして意図されていない最上位ディレクトリをシンボリックリンクすると、多くのアプリケーションがこの動作を予期しないため、デバッグしにくい問題が発生することがよくあります。たとえば、O_NOFOLLOW
ファイルを開くときにセキュリティ上の理由でアプリケーションを使用している場合、シンボリックリンクを作成してもアプリケーションは機能しません。私はこれが起こるいくつかの状況を見てきましたが、配布マネージャー(ソフトウェアの作者は言うまでもありません)は通常、この状況で発生する問題には興味がありません。なぜならサポートされていないからです。
/
一般に、、、、およびを1/home
つのパーティションに配置し、LVMを使用して拡張可能にするか、別々に必要なものに対して別々のパーティションを作成することをお勧めします。/var
/tmp
/srv
すでにLVMを使用していて、すでに使用されている同じボリュームグループの一部として追加の論理ボリュームを作成する場合は、ボリュームグループを見つけて次のように追加の論理ボリュームをsudo vgdisplay -c | cut -b3- | cut -d: -f1
作成できます。
SIZE=100m # for example
DIRNAME=/srv # for example
VOLGROUP=$(sudo vgdisplay -c | cut -b3- | cut -d: -f1)
sudo lvcreate -L $SIZE -n $(basename "$DIRNAME") $VOLGROUP
sudo mkfs.ext4 /dev/mapper/$VOLGROUP-$(basename "$DIRNAME")
sudo mount /dev/mapper/$VOLGROUP-$(basename "$DIRNAME") /mnt
sudo cp -a $DIRNAME/* $DIRNAME/.* /mnt
sudo umount /mnt
# Add the new /dev/mapper/$VOLGROUP-$DIRNAME device pointing to
# $DIRNAME to /etc/fstab
シングルユーザーモードでこれを実行してから再起動する必要があります。