Filesystems
釋放掛載後無法訪問的分區上的未使用空間
最初我有一個 50GB 的磁碟,根 / 被安裝到它上面的 6 GB 分區。該分區的空間不足,因此我使用剩餘的可用空間(44 GB)創建了第二個分區。這是它最初的樣子
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
在根文件系統中,我有一個目錄 /opt,它使用了 3.4 GB 的空間,是我做大部分工作的地方,因此 /opt 將繼續增長。備份所有文件後,我將第二個分區掛載到 /opt
mount /dev/xvda2 /opt
這樣做之後,新的 /opt 是 0 GB,分區 1 仍然是 6 GB,我無法訪問原來在 /opt 中的 3.4 GB。
$ 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?為了將來參考,將新分區掛載到目前位於另一個分區內的目錄的正確方法是什麼?
當您在 上掛載另一個文件系統時
/opt
,無法通過該路徑訪問 的先前內容/opt
,但它不會消失。在 Linux 上,您可以通過將其掛載到其他地方來使其可用,這要歸功於mount --bind
.mkdir /whole-root mount --bind / /whole-root mv /whole-root/opt/* /opt/ umount /whole-root
當然還有另一種方法:將新分區臨時掛載到空目錄(
/mnt
傳統上用於此目的:短期掛載點),移動文件,然後解除安裝新分區並將其掛載到最終位置。