Linux

重組我的文件系統

  • February 19, 2021

我想重組我的文件系統。我分配了我不使用的交換。我的/分區一直在溢出,因此我一直將大目錄移動到單獨的分區/mnt/nvme0n1p4。我突然想到,將所有這些目錄移回並從現在的位置/home掛載可能更聰明。/home``/mnt/nvme0n1p4

我也想/用現在的空間來擴展/nvme0n1p2

我不是每天都做這種事。所以我想我應該就我的計劃徵求一些回饋意見。

我的計劃是做以下事情:(我在實際執行我的計劃後添加了一些粗體註釋。)

  • 複製到的/home內容/mnt/nvme0n1p4
  • /mnt/nvme0n1p4將現在符號連結到 from的所有目錄複製/home到其正確位置/mnt/nvme0n1p4/me
  • sudo rm -rf /home/* <–在@raj 建議後編輯
  • sudo mount /dev/nvme0n1p4 /home
  • 更改以下行/etc/fstab
UUID=aaf7e7e2-d36b-4877-b862-612d403a15da /mnt/nvme0n1p4 ext4    defaults,noatime 0 2

UUID=aaf7e7e2-d36b-4877-b862-612d403a15da /home          ext4    defaults,noatime 0 2
  • 將內容備份//mnt/data. 以防萬一。
  • 使用 gparted 刪除[SWAP]並將其添加到/ <–對我來說很好
  • 消除

$$ SWAP $$從/etc/fstab<–我最初忘記了這一步。在引導過程中導致錯誤。所以我不得不從一個可啟動的 USB 上做到這一點。

  • 完成的?

一些系統資訊

me@mypc $ 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

me@mypc $ df   
Filesystem      Size  Used Avail Use% Mounted on
dev              16G     0   16G   0% /dev
run              16G  1,7M   16G   1% /run
/dev/nvme0n1p3   32G   29G  1,3G  96% /
tmpfs            16G  324M   16G   3% /dev/shm
tmpfs           4,0M     0  4,0M   0% /sys/fs/cgroup
tmpfs            16G   50M   16G   1% /tmp
/dev/sdb1       110G   26G   79G  25% /opt
/dev/nvme0n1p4  869G  412G  413G  50% /mnt/nvme0n1p4
/dev/nvme0n1p1  300M  312K  300M   1% /boot/efi
/dev/sda1       916G  113G  757G  13% /mnt/data
tmpfs           3,2G   56K  3,2G   1% /run/user/1000

me@mypc $ ls /mnt/nvme0n1p4 
docker   Documents   Downloads   home   lost+found   R   Repos  'VirtualBox VMs'   VMs

me@mypc $ ls -l ~/.
total 32
drwxr-xr-x 3 me me  4096  5 dec 10:38 bin
drwxr-xr-x 9 me me  4096 20 dec 21:48 CytoscapeConfiguration
lrwxrwxrwx 1 me me    10  3 nov 16:03 Data -&gt; /mnt/data/
lrwxrwxrwx 1 me me    25  4 nov 09:55 Documents -&gt; /mnt/nvme0n1p4/Documents/
lrwxrwxrwx 1 me me    24  8 nov 00:36 Downloads -&gt; /mnt/nvme0n1p4/Downloads
drwxr-xr-x 3 me me  4096 10 dec 23:16 igv
drwxr-xr-x 3 me me 12288 16 feb 15:57 Pictures
lrwxrwxrwx 1 me me    16 13 nov 09:41 R -&gt; /mnt/nvme0n1p4/R
lrwxrwxrwx 1 me me    20  9 nov 14:06 Repos -&gt; /mnt/nvme0n1p4/Repos
drwxr-xr-x 3 me me  4096  4 nov 08:14 snap
drwxr-xr-x 4 me me  4096 14 feb 20:22 tmp
lrwxrwxrwx 1 me me     9  3 nov 16:58 Unsorted -&gt; /mnt/tmp/

預期結果

me@mypc $ 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
├─nvme0n1p3 259:3    0    48G  0 part /
└─nvme0n1p4 259:4    0 883,2G  0 part /home

基本上看起來不錯,但是:

  • 在第 3 步中,而不是rm -rf /home,最好做rm -rf /home/*。您不應該刪除/home目錄本身,只刪除它的內容,因為您需要一個 /home目錄作為掛載點存在。如果您碰巧刪除了該目錄,則需要使用與先前目錄/home相同的所有權和權限重新創建它。/home
  • 執行步驟 3 和 4 時,您應該離開/home目錄,即。例如,您的目前目錄應該是//root。最好是直接登錄執行整個操作root,如果在您的系統中可以,這樣您根本不會使用該/home目錄。

我也不確定是否使用該分區之前的空間擴展根分區。(我猜您nvme0n1p2之前位於nvme0n1p3磁碟上)。雖然將分區和文件系統擴展到分區末尾沒有問題,但我不確定在分區開始之前擴展它是否同樣適用。我不確定 gparted/e2fstools 是否能夠將 inode 表和所有文件系統結構向後移動,朝向分區的新起點。也許有對這種變化更有經驗的人可以回答這個問題。

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