web-dev-qa-db-ja.com

マウント後にアクセスできないパーティションの未使用スペースを解放する

もともと私はルート/が6GBのパーティションにマウントされた50GBのディスクを持っていました。パーティションの空き容量が不足していたため、残りの空き領域(44 GB)を使用して2番目のパーティションを作成しました。元々はこんな感じでした

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
└─xvda1 202:1    0   6G  0 part /

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  6.0G   20K 100% /
devtmpfs         30G     0   30G   0% /dev
tmpfs            30G     0   30G   0% /dev/shm
tmpfs            30G  121M   30G   1% /run
tmpfs            30G     0   30G   0% /sys/fs/cgroup

ルートファイルシステム内に、3.4GBのスペースを使用するディレクトリ/ optがあり、ここで多くの作業を行っているため、/ optは増え続けます。すべてのファイルをバックアップした後、2番目のパーティションを/ optにマウントしました

mount /dev/xvda2 /opt

これを行った後、新しい/ optは0GBであり、パーティション1はまだ6 GBであり、元々/ optにあった3.4GBにアクセスする方法がありません。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      6.0G  6.0G   20K  100% /
devtmpfs         30G  6.1G   24G  21% /dev 
tmpfs            30G     0   30G   0% /dev/shm
tmpfs            30G  129M   30G   1% /run
tmpfs            30G     0   30G   0% /sys/fs/cgroup
/dev/xvda2       44G     0   44G   0% /opt

バックアップからファイルを復元しましたが、パーティション1で使用されていない3.4 GBを削除するにはどうすればよいですか?将来の参考のために、現在別のパーティション内にあるディレクトリに新しいパーティションをマウントする正しい方法は何ですか?

2
McLovin

/optに別のファイルシステムをマウントすると、そのパスを介して/optの以前のコンテンツにアクセスできなくなりますが、消えることはありません。 Linuxでは、mount --bindのおかげで、他の場所にマウントすることで利用できるようになります。

mkdir /whole-root
mount --bind / /whole-root
mv /whole-root/opt/* /opt/
umount /whole-root

もちろん、別の方法もあります。新しいパーティションを一時的に空のディレクトリにマウントし(/mntはこの目的で伝統的に使用されます:短期間のマウントポイント)、ファイルを移動してから、新しいパーティションをアンマウントしてマウントしますその最終的な場所で。