Partition

根分區空間不足

  • February 17, 2021

我的根分區達到了它的極限,這很煩人,因為大多數包管理器都會在我的根分區的某個地方安裝包。

我必須以某種方式解決這個問題,但我不確定最好的方法是什麼。我可以將一些分區重新格式化為更大的根分區。我想我有兩個選擇可以做到這一點,我可以:

  • 刪除nvme0n1p2( [SWAP]) 並將其與nvme0n1p3( /)合併
  • 分裂nvme0n1p4

但是合併nvme0n1p2nvme0n1p3導致失去我的 SWAP 分區(如果我的 RAM 用完,我偶爾會使用它)。但是我不經常使用它,所以我可以吐sdb(一個舊的 SSD)並將它的一部分用於 SWAP。

拆分nvme0n1p4需要將大量數據複製到sda(舊的且速度較慢的 HDD)。

當我寫這篇文章時,我想知道是否也可以選擇將我的 pacman 的預設安裝位置(我正在執行 Manjaro)移動到nvme0n1p4這也可能會解決很多空間問題。

但是,我沒有足夠的經驗來了解這會對我的系統造成什麼潛在問題。

我知道我還沒有問一個具體的問題。所以我想我的問題是:

  • 對於我的空間問題,最不可能破壞我的系統的最持久的解決方案是什麼?
  • 我是否錯過了一個很好的替代解決方案來解決我的問題?
$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931,5G  0 disk 
└─sda1        8:1    0 931,5G  0 part /mnt/data
sdb           8:16   0 111,8G  0 disk 
└─sdb1        8:17   0 111,8G  0 part /opt
nvme0n1     259:0    0 931,5G  0 disk 
├─nvme0n1p1 259:1    0   300M  0 part /boot/efi
├─nvme0n1p2 259:2    0    16G  0 part [SWAP]
├─nvme0n1p3 259:3    0    32G  0 part /
└─nvme0n1p4 259:4    0 883,2G  0 part /mnt/nvme0n1p4

$ df
Filesystem      Size  Used Avail Use% Mounted on
dev              16G     0   16G   0% /dev
run              16G  1,7M   16G   1% /run
/dev/nvme0n1p3   32G   30G  503M  99% /
tmpfs            16G  498M   16G   4% /dev/shm
tmpfs           4,0M     0  4,0M   0% /sys/fs/cgroup
tmpfs            16G   53M   16G   1% /tmp
/dev/sdb1       110G   26G   79G  25% /opt
/dev/nvme0n1p4  869G  419G  406G  51% /mnt/nvme0n1p4
/dev/nvme0n1p1  300M  312K  300M   1% /boot/efi
/dev/sda1       916G  113G  757G  13% /mnt/data
tmpfs           3,2G   60K  3,2G   1% /run/user/1000

一個簡單的解決方案是刪除你的交換,通過“合併”你的//swap分區(更像是刪除你的nvme0n1p2和擴展你的nvme0n1p3),然後最後在那裡創建一個交換文件。

現在,如果您只想使用 GUI 創建交換文件,您可以使用gnome-disks,一步一步:

  1. 點擊 gnome-disks 的左上角drive圖示。
  2. 創建一個New Disk Image...
  3. 設置交換文件的大小、名稱和放置位置,然後點擊Attach new Image...
  4. gnome-disks 現在應該讓您立即了解新創建的交換文件部分,該部分應標識為xx GB Loop Device. 然後,只需點擊“ Wheels”按鈕。
  5. 繼續Format Partition...
  6. 給你的交換分區一個標籤(例如“swap0”)。
  7. 檢查Erase女巫(使交換在驅動器上連續,以獲得更好的性能)。
  8. 選擇other作為分區類型。
  9. 點擊Next
  10. 選擇Linux Swap Partiton
  11. 然後,Next再一次。
  12. 並且,Format這將需要一些時間。
  13. 現在,再次點擊“ Wheels”按鈕。
  14. 這次繼續Edit mount options...
  15. 禁用User Session Defaults開關。
  16. 只需確保Mount at system startup已選中,Show in user interface未選中並且Identify As已設置為 on /dev/disk/by-uuid/xxx,以確保。
  17. 然後按OK
  18. 最後,點擊“ Play”按鈕進行掛載,大功告成!

長期以來,使用完全專用的交換分區越來越少。

另外,我不知道你有多少 GB 的 RAM 和 VRAM,但 16GB 的交換空間確實很大。如果您真的沒有使用那麼多交換,則應該減少該數量。

現在有一個技巧:如果您仍然想使用那麼多交換空間但只是不時使用,您可以先製作一個小交換文件,比如說 2GB 到 4GB,然後在您真正需要時創建第二個/或者乾脆把它放在有更多可用空間的其他地方(例如你的sda1/ mnt/data),讓它隨時可用。


有幾點需要考慮:

*A.*請注意,您真的不應該在 SSD 或任何基於快閃記憶體的驅動器上放置交換,因為它確實會縮短其使用壽命,因為交換畢竟是“假 RAM”(RAM 的 I/O 比任何儲存驅動器),並且由於較小的過度配置,較小的 SSD(通常低於 400GB 甚至低於 1025GB)的使用壽命低於較大的同類產品。

我的意思是,看看你每週寫多少 GB,只是瀏覽網頁、流媒體和觀看 Youtube 影片會寫很多(記憶體)。每週寫入 250GB 非常容易,即使對於奶奶來說也是如此。現在添加一個事實,即您可能是高級使用者(作為數據科學專業的學生,您做得很好,所以這意味著這是最糟糕的情況之一),並且現代較小的 SSD 在保修前僅被授予 100TB 寫入void(是的,void,請檢查產品的數據表),即使在達到“基於年的保修”之前,您也會很快達到這 100TB。

因此,請考慮在旋轉磁碟或一次性快閃記憶體(USB 密鑰、儲存卡等)上進行交換,只要它不是基於 USB 1.x 的,或者如果您真的需要它們仍然非常好,可能是 2.x快,因為這主要不是使基於快閃記憶體的驅動器快速執行的原始 GB/s,而是驅動器單元的訪問時間。

*B.*根據您放置交換的驅動器以及對它們進行分段的方式(例如,每個驅動器一個交換文件等),您甚至可以獲得比以往更快的交換。

*C.*你甚至可以使用交換文件休眠:https ://askubuntu.com/a/892410

D. gnome-disks是一個非常強大而直接的工具,它可以檢查您的驅動器的狀態(溫度、壽命、壞扇區等),設置一些驅動器設置(記憶體、待機時間等)等,還可以乾淨地解除安裝、彈出然後通電關閉您的設備(驅動器、USB 密鑰等)比沒有其他 GUI 工具更好。

引用自:https://unix.stackexchange.com/questions/634496